2014年3月25日 星期二

CentOS 6.5 安裝 Cacti 0.8.8b 流量監控主機

近期在執行專案的時候,需要監測客戶的流量以及硬體使用狀況,所以架設了 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中文研究站

沒有留言:

張貼留言