Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網路流量監測圖形分析工具。Cacti是通過 snmpget來擷取資料,使用 RRDtool繪畫圖形,而且你完全可以不需要瞭解RRDtool複雜的參數。它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模板,功能非常強大完善。介面友好。軟體 Cacti 的發展是基於讓 RRDTool 使用者更方便使用該軟體,除了基本的 Snmp 流量跟系統資訊監控外,Cacti 也可外掛 Scripts 及加上 Templates 來作出各式各樣的監控圖。
cacti是用php語言實現的一個軟體,它的主要功能是用snmp服務擷取資料,然後用rrdtool儲存和更新資料,當使用者需要查看資料的時候用rrdtool組建圖表呈現給使用者。因此,snmp和rrdtool是cacti的關鍵。Snmp關係著資料的收集,rrdtool關係著資料存放區和圖表的產生。
Mysql配合PHP程式儲存一些變數資料並對變數資料進行調用,如:主機名稱、主機ip、snmp團體名、連接埠號碼、模板資訊等變數。
snmp抓到資料不是儲存在mysql中,而是存在rrdtool產生的rrd檔案中(在cacti根目錄的rra檔案夾下)。rrdtool對資料的更新和儲存就是對rrd檔案的處理,rrd檔案是大小固定的檔案檔案(Round Robin Archive),它能夠儲存的資料筆數在建立時就已經定義。關於RRDTool的知識請參閱RRDTool教學。
前期準備工作:
Cacti官網:http://www.cacti.net/download_cacti.php
找到Linux/Unix in tar.gz format串連表徵圖,
: http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
: http://www.cacti.net/downloads/spine/cacti-spine-0.8.8b.tar.gz
net-snmp-develmysqlmysql-developenssl-devel
準備所需要的軟體包
Apache http://www.apache.org/
Mysql http://www.mysql.com/
Php http://www.php.net
Rrdtool http://oss.oetiker.ch/rrdtool/
Net-snmp http://www.net-snmp.org/
Cacti http://www.cacti.net/
其中apache、mysql、php通過yum安裝
下面簡述安裝過程:
一、安裝RRDTool和SNMP
1 安裝RRDTool
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.8.tar.gz
也chkconfig失敗
2 安裝snmp支援工具
可以yum安裝,也可以源碼安裝,比如
Wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6.2.1/net-snmp-5.6.2.1.tar.gz/download
yum -y install net-snmp
3 安裝LAMP
[root@cacti ~]# yum -y install httpd mysql-server php php-mysql mysql-devel
[root@cacti ~]# chkconfig httpd on
[root@cacti ~]# chkconfig mysqld on
[root@cacti ~]# /etc/init.d/httpd start
[root@cacti ~]# /etc/init.d/mysqld start
啟動完httpd之後,可以開啟 http://10.xx.1.xx/,介面如下:
二、然後下載cacti
下載當前最新版 wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8b.tar.gz
和cacti-spine,http://www.cacti.net/downloads/spine/
下載當前最新版 cacti-spine,wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8b.tar.gz
三、開始安裝cacti-spine
1,建立cacti使用者
[root@squid-2 ~]# useradd -m cacti
[root@squid-2 ~]# passwd cacti
密碼:cacti
2,首先安裝幾個編譯cacti-spine需要的devel包:
3,安裝gcc和libtool
4,下載cactid並解壓:
5,安裝好以後,我們需要再配置一下:
vim /etc/spine.conf
6,啟動一下看看
#/usr/local/spine/bin/spine
一般顯示
SPINE: Using spine config file [/etc/spine.conf]
7,建立mysql帳號:
mysql> set names utf8;
登入mysql,刪除掉’’@localhost以及’’@hostname這2個使用者名稱為空白串的mysql帳號,就OK了。
[cacti@squid-2 ~]$ /usr/local/spine/bin/spine
找到正在啟動並執行mysql.sock的路徑,做一個軟串連:
[root@mysqlvm2 bin]# find / -name mysql.sock
再次啟動,有報錯如下:
[root@mysqlvm2 bin]# /usr/local/spine/bin/spine
需要匯入預設的cacti.sql,解壓縮.tar.gz,獲得cacti.sql
[cacti@squid-2 cacti-0.8.8b] tar -xvf cacti-0.8.8b.tar.gz
啟動成功了。
8,最後,等cacti安裝完之後在cacti的web配置介面選擇setting
四、我們開始安裝正主cacti
1 配置
解壓並放到apache文檔目錄(/var/www/html)
cd /var/www/html/
vim /var/www/html/cacti/include/config.php
2添加計劃任務(使cacti每5分鐘獲得一次資料)
3 資料庫配置
在前面的第三步已經配置好了,建立資料庫cacti以及使用者。
4 測試,建立一個login.jsp檔案
[root@mysqlvm2 cacti]# vim login.php
simple demo
<?php
phpinfo();
?>
如所示:
開啟網址頁面:
啟動完httpd之後,可以開啟 http://10.xx.1.xx/,介面如下:
遇到的小問題,開啟index.php是空頁面,如下所示:
去查看日誌,日誌沒有任何資訊:
問題在哪裡呢?
找到apache的設定檔httpd.conf
[root@mysqlvm2 www]# vim /etc/httpd/conf/httpd.conf
逐個查看log資訊,在ssl_error_log裡面發現錯誤資訊:
[root@mysqlvm2 httpd]# tail -f ssl_error_log