近期在執行專案的時候,需要監測客戶的流量以及硬體使用狀況,所以架設了 cacti 主機來進行監控
於CentOS 6.5 minimal 進行安裝
SETP.1 安裝 cacti 會使用到的套件
shell# yum install php* mysql* rrdtool* net-snmp* freetype-devel libpng-devel libart_lgpl-devel httpd*
SETP.2 安裝 rpmforge-release 套件庫、cacti
從rpmforge 下載cacti,因為在yum官方套件並沒有 cacti
詳細可參考 CentOS 6.5 安裝 RPMforge 非官方套件庫
shell# yum –enablerepo=rpmforge install cacti
SETP.3 Mysql設定
1. 啟動mysqld
shell# service mysqld start
shell# chkconfig mysqld on
2. 設定mysql root密碼
shell# mysqladmin -u root password ‘password’
3. 建立 cacti 資料庫
mysqladmin -u root -p create cacti
4. 匯入 cacti 資料,安裝預設匯入檔
shell# mysql -u root -p -A cacti < /var/www/cacti/cacti.sql
5. 建立 cacti 資料庫的使用者
#進入mysql
shell# mysql -u root -p
#建立使用者
mysql> grant all on cacti.* to cactiuser@localhost identified by “password”;
#權限生效
mysql> flush privileges;
6. 修改php連結mysql的設定檔
shell# vim /var/www/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cactiuser“;
$database_password = “password“;
$database_port = “3306”;
$database_ssl = false;
SETP.4 Apache設定
1. 啟動 apache
shell# service httpd start
shell# chkconfig httpd on
2. cacti.conf 設定檔
shell# vim /etc/httpd/conf.d/cacti.conf
#設定可連apache權限,自行斟酌資安的部分
#deny from all
allow from all
3. reload設定檔
shell# service httpd reload
SETP.5 iptables 設定
shell# vim /etc/sysconfig/iptables
#加入以下
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m udp -p udp –dport 161 -j ACCEPT
shell# service iptables restart
SETP.6 snmp 設定 – Server端
shell# vim /etc/snmp/snmpd.conf
#加入以下紅色字
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view all included .1 80
access notConfigGroup “” any noauth prefix all all all
Note: public 代表與client端community的資訊,須符合。
SETP.7 cacti 排程權限,預設5分鐘執行一次,如果權限設定錯誤會無法畫出圖
shell# /etc/cron.d/cacti
*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null
可以看到是使用 cacti 執行poller.php,但預設poller.php的權限是root,將cacti 權限加入
shell# chown cacti.cacti /var/www/cacti/poller.php
SETP.8 目錄及檔案權限
權限是最容易造成無法正確畫出圖,以及數據產生nan的問題。
1. crod排程中的cacti使用者一定要有權限可以寫入 rra、log、rrd。
2. 在/etc/cron.d/cacti 權限需要為root。
SETP.9 登入cacti
http://Server/cacti
登入請使用New install,並會確認目前所有設定檔的位置Next
預設帳號密碼: admin / admin,第一次登入會強制更換密碼
debug測試&檢測:
1. 可以切到cacti 去執行 /usr/bin/php poller.php,大多是權限錯誤造成的問題。
2. cat /var/log/cron,檢查排程是否有正常執行
/var/log/cron
1. (CRON) ERROR chdir failed (/var/www/cacti): No such file or directory
Ans: check /etc/passwd , cacti home directory is ok , and restart crond.
/var/log/http/error.log
1. [Tue Mar 25 02:38:31 2014] [error] [client 192.168.121.99] File does not exist: /var/www/html/cacti
Ans: please check “cacti.conf” & “httpd.conf” directory , default cacti install directory at “/var/www/cacti”
2. http 403 : You don’t have permission to access /cacti on this server.
Ans: check “cacti.conf” permmission config , deny and allow.
3. http 404 : Cannot connect to MySQL ………name in ‘include/config.php’
Ans: mysql database connect error , check “/var/www/cacti/include/config.php” login is ok.
4. http 404 : The page cannot be found
Ans: check database table is ok , “mysql -u root -p -A cacti < /var/www/cacti/cacti.sql“
5. date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
Ans: setting /etc/php.ini , date.timezone = “Asia/Taipei”
6. SYSTEM STATS: Time:17.7057 Method:cmd.php Processes:1 Threads:N/A Hosts:3 HostsPerProcess:3 DataSources:3 RRDsProcessed:2
Ans: check complete installation “php*”
參考資料:
http://blog.pmail.idv.tw/?p=8081
cacti官網
cacti中文研究站