2012-12-11

Apache,php,mysql,phpmyadmin+cacti,rrdtool,spine ON Centos 6.3

就在十月中旬,我一台拿來只跑cacti的1U server的硬碟掛了…
本來想說掛了就掛了,反正當初也只是為了讓自己監控方便才架的,結果卻有人認為「有監控的話那系統網路等同有人負責」…沒事有事就叫我「沒上班的日子看一下系統跟網路是否異常,然後還可以應付資安評鑑」。


一整個不爽

但我不得不說,cacti是一個系統兼網路管理人員的好工具。

好啦,進正題。

-----

環境:Centos 6.3 x86/2G DDR2/500G HDD
YUM-repo:epel/rpmforge/remi(被動)



我centos當初安裝是用「Basic server」的選擇,所以,系統預設只有645個套件安全,沒有什麼其他無關緊要的東西。

看我以前的文章就知道我很懶,所以我懶的一個個compile,所以使用yum…

yum install httpd httpd-devel php php-ZendFramework-Db-Adapter-Pdo-Mysql phpMyAdmin mysql mysql-devel mysql-server mysql-libs cacti cacti-spine rrdtool rrdtool-php rrdtool-devel
有一些是在這環境習慣加上的,因為我是個程式開發者。

apache
比較簡單的就是確定php有沒有載入

看要不要bind 80 port到0.0.0.0

把indexs拿掉(在<directory /var/www/html>)

把index.php、index.htm加入首頁判斷
php
主要是timezone="Asia/Taipei"加入到php.ini
mysql
先設定root的密碼:mysqladmin -u root password NEW_PASSWORD
phpMyAdmin
沒什麼特別,頭三個有安裝好的話,其實上執行http://localhost/phpmyadmin/就正常了…phpmyadmin跟cacti用yum安裝的話會自動產生給apache的conf,放在/etc/httpd/conf.d/
cacti
yum安裝cacti的話,它會自動幫你建立系統帳戶cacti給它用

建立mysql帳戶與db給cacti用…這個部份我是用phpmyadmin建的

導入cacti的資料庫到mysql…用phpmyadmin做很快…yum安裝cacti的話,cacti.sql是放在/usr/share/doc/cacti.0.8.8a/

yum安裝cacti的話,它會自己把poller.php放在/usr/cron.d/…只不過,預設會把poller.php的crond給註解掉,要把#拿掉…

yum安裝cacti的話,它會自己把logrotate寫到/etc/logrotate.d/…預設的方式也不錯,但可以參考http://www.chenjunlu.com/2011/06/how-to-rotate-the-cacti-logs-file/
『# keep two weeks of versions online
rotate 14
# rotate the log each day
daily
# compress the logs
compress
# create new file with the correct user/group attributes
create 644 cacti cacti
# add a YYYYMMDD extension instead of a number
dateext』

小優化cacti,可參考http://www.chenjunlu.com/2011/05/tips-for-improving-the-performance-of-cacti-server/
把cacti的db加上index,個人覺得這個優化最棒。
CREATE INDEX `data_template_data_id` ON `data_input_data` (`data_template_data_id`);
CREATE INDEX `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);
CREATE INDEX `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);
CREATE INDEX `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);
CREATE INDEX `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);
CREATE INDEX `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);
CREATE INDEX `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);
CREATE INDEX `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);
CREATE INDEX host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);
CREATE INDEX host_id_snmp_port ON poller_item (host_id,snmp_port);
CREATE INDEX data_source_path ON data_template_data (data_source_path);
spine
這是用來取代cacti預設的cmd.php…效能上比較優

yum安裝完後,spine的執行檔會放在/usr/bin/,config放在/etc/spine.conf

首先,編輯spine.conf,把資料填一填(記住,除非你的dbname、username、password剛好都跟spine.conf預設的一樣,不然你一定要改,否則cacti不會起作用)

進入cacti-web,setting/paths,找到[Alternate Poller Path],『Spine Poller File Path』填入/usr/bin/spine
setting/paths,找到[Structured RRD Path],『Structured RRA Path(/host_id/local_data_id.rrd)』打勾…這是依host_id來分類rrd畫出的圖,有目錄劃分感覺上就很比較好
setting/Poller,找到[Poller Type],把原來的cmd.php改為『spine』,然後[Poller Interval]、[Cron Interval]可以選『Every Minute』…

沒有留言: