Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。它經過 snmpget來獲取數據,使用 RRDtool繪畫圖形,並且你徹底能夠不須要了解RRDtool複雜的參數。它提供了很是強大的數據和用戶管理功能,能夠指定每個用戶能查看樹狀結 構、host以及任何一張圖,還能夠與LDAP結合進行用戶驗證,同時也能本身增長模板,功能很是強大完善。php
下圖是cacti運行的主界面mysql
Cacti 架構圖:linux
環境:LNMP(安裝參考官網:www.lnmp.org)web
Cacit 運行環境須要PHP + Mysql + rrdtool 以及snmp 工具的支持。sql
1、準備工做
環境:LNMP(www.lnmp.org)
所需軟件:
rrdtool
Net-snmp
Net-snmp-libs
Net-snmp-utils
下載相關軟件(先作第二步驟的(2)步驟,下面的添加源安裝yum直接用yum安裝以上軟件包)
2、安裝配置
(1)、在主監控機上安裝net-snmp net-snmp-libs net-snmp-utils net-snmp-devel
yum -y install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel
(2)在主監控機上安裝rrdtool,rrdtool依賴的包過多,因此選擇增長源,而後用yum安裝
#增長源
vi /etc/yum.repos.d/CentOS-Base.repo
#在文件末尾增長如下部分
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
yum -y install rrdtool
(3)配置snmp
vi /etc/snmp/snmpd.conf
#將下邊這行中的default
com2sec notConfigUser default public
#改成127.0.0.1
com2sec notConfigUser 127.0.0.1 public
#將下邊這行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改成all
access notConfigGroup "" any noauth exact all none none
#將下邊這行的註釋「#」號去掉
#view all included .1 80
#重啓snmpd服務
service snmpd restart
(4)安裝cacti
#把解壓後的包移動到你的相應的web目錄
tar xvf cacti-0.8.7e-cn-utf8.tar.gz
mv cacti-0.8.7e-cn-utf8 /data0/htdocs/blog/cacti
(5)在數據庫中建庫、受權、導入數據庫結構
批量轉換sql文件內的TYPE爲ENGINE
sed -in-place -e 's/TYPE/ENGINE/g' /data0/htdocs/blog/cacti/cacti.sql
#注意導入cacti.sql時該文件的路徑
#mysql -uroot -p
mysql>create database cacti default character set utf8;
mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON cacti.* TO cacti@localhost IDENTIFIED BY 'cacti';
mysql>flush privileges;
mysql>use cacti
mysql>\. /data0/htdocs/blog/cacti/cacti.sql //導入sql
mysql> \q
#配置cacti以鏈接數據庫
vi /data0/htdocs/blog/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
(6)瀏覽器下配置
#用瀏覽器打開 http://ip/cacti ,會顯示 cacti的安裝指南,設置好就不會再出現了。
#點擊 「Next」
#選擇「New Install」,點擊「Next」
#指定 rrdtool、 php、 snmp 工具的 Binary 文件路徑,確保全部的路徑都是顯示「 FOUND」,沒有 「NOT FOUND」的,點擊 Finish 完成安裝。
(PHP路徑:/usr/local/php/bin/php)
#Cacti 默認的用戶名與密碼是 admin,輸入用戶名與密碼,點擊 login
#爲了安全的緣由,第一次登陸成功後,cacti 會強制要求你更改一個新的 password ,輸入新密碼並確認密碼
(6)瀏覽器下配置
#用瀏覽器打開 http://ip/cacti ,會顯示 cacti的安裝指南,設置好就不會再出現了。
#點擊 「Next」
#選擇「New Install」,點擊「Next」
#指定 rrdtool、 php、 snmp 工具的 Binary 文件路徑,確保全部的路徑都是顯示「 FOUND」,沒有 「NOT FOUND」的,點擊 Finish 完成安裝。
#Cacti 默認的用戶名與密碼是 admin,輸入用戶名與密碼,點擊 login
#爲了安全的緣由,第一次登陸成功後,cacti 會強制要求你更改一個新的 password ,輸入新密碼並確認密碼,點擊 save ,進入 cacti 控制檯界面:
#點擊 graphs ,查看cacti 監控本機的圖表:
(7)增長入一個計劃任務,使得 cacti 每五分鐘生成一個監控圖表。
crontab -e
#加入以下內容。注意poller.php的路徑
*/5 * * * * /usr/local/php/bin/php /data0/htdocs/blog/cacti/poller.php > /dev/null 2>&1
#確保 /data0/htdocs/blog/cacti/rra/目錄存在
#若是暫時未看到圖表,能夠手工執行,生成圖表
# /usr/local/php/bin/php /data0/htdocs/blog/cacti/poller.php > /dev/null 2>&1
(8)字體在圖形中顯示不正常的解決方法
下載並安裝cjkuni-fonts中文字體,字體名ukai.ttf,下載地址
http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz
(若是wget不到,複製地址用迅雷下載)
#tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
#cd ttf-arphic-ukai-0.1.20060928/
#cp ukai.ttf /usr/share/fonts/ukai.ttf
安裝完成後注意在"設置"中更改下面兩個必改項. 常規->RRDTool應用程序版本 改成1.2.x,默認爲1.0.x.不改可能圖像不能正常顯示出來.
路徑->RRDTool默認字體路徑 改成上面安裝的ukai.ttf的文件路徑,如/usr/share/fonts/ukai.ttf
(9)使用 Cacti 監控 Linux 主機
#在被監控的linux主機上安裝net-snmp
yum install net-snmp
vi /etc/snmp/snmpd.conf
#更改如下部分
#將下邊這行中的default
com2secnotConfigUser default public
#改成10.0.0.52(cacti)服務器的地址)
com2secnotConfigUser 10.0.0.52 public
#將下邊這行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改成all
access notConfigGroup "" any noauth exact all none none
#將下邊這行的註釋「#」號去掉
#view all included .1 80
service snmpd restart
(10)若是出現問題請注意一下snmp協議的版本,都用version 1是一種解決方法
若是都用version 1,須要把全部監控機和被監控機的snmpd.conf改一下
#vi /etc/snmp/snmpd.conf
#將下邊這行
view systemview included .1.3.6.1.2.1.1
#改成
view systemview included .1.3.6.1.2.1數據庫