Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網路流量監測圖形分析工具。Cacti是通過 snmpget來擷取資料,使用 RRDtool繪畫圖形,而且你完全可以不需要瞭解RRDtool複雜的參數。它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模板,功能非常強大完善。介面友好。軟體 Cacti 的發展是基於讓 RRDTool 使用者更方便使用該軟體,除了基本的 Snmp 流量跟系統資訊監控外,Cacti 也可外掛Scripts 及加上 Templates 來作出各式各樣的監控圖。
安裝cacti的準備條件:
wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz
wget https://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz
LAMP環境,並且要開啟gd庫的支援,lamp環境的安裝這裡不再給出
mysql-cacti-templates並不是必須的,只是為了後面方便示範第三方模板時候使用
一.安裝snmp服務
[root@test1 ~]# yum install net-snmp*
[root@test1 ~]# chkconfig snmpd on
[root@test1 ~]# service snmpd restart
[root@test1 ~]# vi /etc/snmp/snmpd.conf
修改如下內容:
41行下的 com2sec notConfigUser default public
com2sec notConfigUser 127.0.0.1 public
62行下的access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none
85行下的#view all included .1 80
view all included .1 80
[root@test1 ~]# service snmpd restart
二.安裝rrdtool
[root@test1 ~]# tar xf rrdtool-1.4.7.tar.gz
[root@test1 ~]# cd rrdtool-1.4.7
[root@test1 rrdtool-1.4.7]# ./configure --prefix =/usr/local/rrdtool
[root@test1 rrdtool-1.4.7]# make && make install
三.安裝cacti
[root@test1 ~]# tar xf cacti-0.8.8b.tar.gz -C /usr/local/apache/htdocs
[root@test1 ~]# cd /usr/local/apache/htdocs
[root@test1 ~]# cd /usr/local/apache/htdocs
[root@test1 ~]# mv cacti-0.8.8b cacti
進入資料庫中建立一個cacti的資料庫:
mysql> create database cacti;
mysql> grant all on cacti.* to cacti@localhost identified by 'cacti';
mysql> grant all on cacti.* to cacti@127.0.0.1 identified by 'cacti';
mysql> flush privileges;
編輯/etc/crontab,加入如下內如:
*/1 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php &> /dev/null
修改cacti的目錄許可權:
[root@test1 cacti]# chown -R root.root cacti/
匯入cacti資料庫:
[root@test1 cacti]# /usr/local/mysql/bin/mysql -ucacti -p cacti < cacti.sql
編輯cacti設定檔,改成如下內容:
[root@test1 cacti]# cd include
[root@test1 cacti]# vi config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
在瀏覽器中輸入以下地址:http://192.168.1.145/cacti/install/index.php,就會看到cacti的安裝了,點擊next會發現預設情況下cacti的路徑和php的路徑是不正確的,只需要把路徑改了就可以。rrdtool改成:/usr/local/rrdtool/bin/rrdtool;php改成:/usr/local/php/bin/php
弄好點擊下一步,就可以來到cacti的登陸介面了,預設的cacti的登陸使用者和密碼為:admin admin,輸入完成以後會提示我們修改新的密碼,直接改成你需要的密碼即可,然後執行/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php,多執行幾次,再進入cacti開啟graphs可以看到圖片已經出來。
安裝過程中可能遇到的問題:
1.執行/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php報時間錯誤,這是因為php.ini中沒有設定時間,在php.ini中加入date.timezone = "Asia/Shanghai"
2.流量圖出來不到,rra檔案下沒有檔案。這種原因可能很多,首先檢查運行cacti的使用者進程是否對rra目錄具有相應的許可權;執行snmpwalk -v 2c -c public yourIP if看到是否有相應的資訊返回;檢查settings中的相應配置是否正確。
cacti的預設情況下的模板和映像是很有限的,基本的流量監控操作也很簡單。但是大多數情況下,我們需要的流量監控不止這點點,所以需要安裝第三方模板,這裡以mysql為例來安裝一個第三方的模組監控
[root@test1 ~]# wget https://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz
[root@test1 ~]# tar –xvf better-cacti-templates-1.1.8.tar.gz
[root@test1 ~]# cd better-cacti-templates-1.1.8
[root@test1 better-cacti-templates-1.1.8]# cp scripts/ss_get_mysql_stats.php /usr/local/apache/htdocs/cacti/scripts/
[root@test1 better-cacti-templates-1.1.8]# cd /usr/local/apache/htdocs/cacti/scripts/
[root@test1 scripts]# vi ss_get_mysql_stats.php
修改
$mysql_user = 'cactiuser';
$mysql_pass = 'cactiuser';
為
$mysql_user = 'cacti';
$mysql_pass = 'cacti';
再次進入cacti的管理介面的Import Templates下匯入/better-cacti-templates-1.1.8/templates/cacti_host_template_x_mysql_server_ht_0.8.6i-sver1.1.8.xml,然後在device裝置下就可以看到許多新的模板圖了。在被監控主機上執行:grant all on *.* to 'cacti'@'%' identified by 'cacti';flush privileges;以後,其餘的操作就給普通的操作一樣。