close
CentOS 6.5 安裝 Cacti 0.8.8b 流量監控主機
同事執行專案的時候,需要監測客戶的流量以及硬體使用狀況,因此跟著建立了一台來監控辦公室內的設備,
事先提醒的是,所有被監控的Server,需安裝SNMP服務,並在服務內容裡選取安全性,設定public唯讀,
安裝完後,請記得要先重開機,以下的設定檔才會正常出現,遠端重開機指令 shutdown /r /t 1
(如下)
CentOS 6.5 minimal 進行安裝
SETP.1 安裝 cacti 會使用到的套件
# yum install php* mysql* rrdtool* net-snmp*
freetype-devel libpng-devel libart_lgpl-devel httpd*
(因段落需要 請從net-snmp* 後面接上freetype)
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。
1. crod排程中的cacti使用者一定要有權限可以寫入 rra、log、rrd。
2. 在/etc/cron.d/cacti 權限需要為root。
STEP.9 更改時區
vim /etc/php.ini
SETP.10 登入cacti
http://Server/cacti
登入請使用New install,並會確認目前所有設定檔的位置Next
預設帳號密碼: admin / admin,第一次登入會強制更換密碼
如果安裝後,有改變位置的話,請記得去設定檔進行修改,
此例為將cacti資料夾搬至/volume底下
vim /etc/httpd/conf/httpd.conf
修改
DocumentRoot "/volume"
<Directory "/volume">
/etc/cron.d/cacti
改為
*/5 * * * * cacti php /volume/cacti/poller.php &>/dev/null
排程:
vi /etc/passwd
修改cacti的執行位置,指到新搬遷的路徑後,重啟crond服務
權限擁有者改為:
cacti/log
cacti/rra
改為cacti
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
1 .Ans: check complete installation "php*"
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
1 .Ans: check complete installation "php*"
2. 这个是由于poller.php执行时间超长导致的,一般情况下,根据CRON里面的设置,是300s执行一次poller,但如果你一台cacti上主动去取值的设备太多,可能导致在300s内无法完全更新,在下一次更新的时候,polloer.php会判断当前是否有Poller在执行,于是就有了上面的log。。。
Ans:執行php poller.php 跑出300秒過長時,請去修改
/etc/cron.d/cacti
改為
*/1 * * * * cacti php /volume/cacti/poller.php &>/dev/null
再執行 php poller.php 幾次後,去網頁上看圖表是否有正常跑出。
SNMP Error
1.確認cacti的主機能ping被監控的主機。
2.若能ping通,確認被監控的煮雞是否有裝SNMPD服務
ps -ef | grep snmp
or service snmpd restart
3. 到監控server 上,root登入
snmpwalk -c public -v 2c 192.168.100.64 -->此ip為被監控的主機ip
有圖無數據?
進入/cacti/rra/,選定rrd檔來讀取(下面指令),看內容是-nan or 有值但很小 所以圖變動太小看不出來
rrdtool fetch vs10_hdd_used_20.rrd AVERAGE
全站熱搜
留言列表