CentOS6 支持Cacti0.8.7g及以下版本。
CenOS7支持Cacti0.8.8及以上版本。請按照版本安裝不然出錯的概率將大大提高。
目錄
Cacti簡介
本章結構
常見平臺
常見的服務器監控軟件
cacti,流量與性能監測爲主----http://www.cacti.net/
nagios,服務與性能監測爲主---http://www.nagios.org/
其他相關工具
RRDtool,輪詢數據工具
SNMP原理
類別 |
標號 |
所包含的信息 |
system |
(1) |
主機或路由器的操作系統 |
interfaces |
(2) |
各種網絡接口及它們的測定通信量 |
address transiation |
(3) |
地址轉換(例如ARP映射) |
ip |
(4) |
internet軟件(IP分組統計) |
icmp |
(5) |
ICMP軟件(已收到ICMP消息的統計) |
tcp |
(6) |
TCP軟件(算法、參數和統計) |
udp |
(7) |
UDP軟件(UDP通信量統計) |
egp |
(8) |
EGP軟件(外部網關協議通信量統計) |
cacti的工作結構
C/S模式,採集監控數據
B/S模式,管理監測平臺
環境部署
環境:主機A和主機B的操作系統爲CentOS6.6 x86_64,最小化安裝,均關閉SELINUX和防火牆,主機A作爲監控端,主機B作爲被進口歐冠端,IP地址分別爲192.168.131.138和192。168.131.139。
配置Cacti
部署cacti運行環境
# yum -y install httpd mysql mysql-server mysql-devel php php-mysql
# yum -y install zlib freetype libjpeg fontconfig libxml2 gd php-gd
# yum -y install rrdtool
# yum -y install net-snmp net-snmp-utils
# service httpd start
# chkconfig httpd on
# service mysqld start
# chkconfig mysqld on
# service snmpd start
# chkconfig snmpd on
安裝cacti
#wget https://cacti.net/downloads/cacti-0.8.7g.tar.gz
# tar xf cacti-0.8.7g.tar.gz -C /var/www/html/
# cd /var/www/html/
# mv cacti-0.8.7g/ cacti
# vim cacti/include/config.php
# mysql
mysql> create database cacti; //創建數據庫cacti
mysql> grant all on cacti.* to 'cactiuser'@'localhost' identified by '123456'; //授權用戶cactiuser@localhost對數據庫cacti的所有權限及密碼
mysql> flush privileges; //刷新緩存,刷新權限。
mysql>use cacti; //變更數據庫
mysql>source /var/www/html/cacti/cacti.sql; //導入cacti數據庫文件
mysql> exit
*【重要提示】如果用yum安裝mysql可能會更新到mariadb 5.5以上版本,導入cacti.sql會報錯誤。
請使用
# cd /var/www/html/cacti/
# mysql -u cactiuser -p cacti < cacti.sql
Enter password:
/
/
輸入密碼
來導入表。
如果導入時出現
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 9的錯誤,原因:cacti.sql文件是在MySQL5.0或5.1編寫的。如果在5.5和5.6上面導入會報錯。 解決方法:1、用vim打開cacti.sql;
2、用命令 :%s/TYPE=MyISAM/ENGINE=MyISAM/g
批量查找替換,將數據庫文件內的所有TYPE=MyISAM修改爲ENGINE=MyISAM,保存退出;
3、重新導入cacti.sql即可。
# chown -R root:root /var/www/html/cacti/
# useradd cacti
# chown -R cacti:cacti /var/www/html/cacti/log/
# chown -R cacti:cacti /var/www/html/cacti/rra/
# mysql cacti
在瀏覽器輸入http://192.168.131.138/cacti/install/,進入cacti安裝嚮導
配置被監控端
# yum install –y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl
# vim /etc/snmp/snmpd.conf
com2sec notConfigUser 192.168.131.138 public123
access notConfigGroup "" any noauth exact all none none
view all included .1 80
# service snmpd start
配置服務器端
# vim /etc/snmp/snmpd.conf
# service snmpd restart
配置監控
在cacti web界面
點擊"Devices"à"add"
添加圖像樹
監控端操作
# /usr/bin/php /var/www/html/cacti/poller.php #開始同步數據
# crontab –e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php
設置crond任務,使其每隔5分鐘執行一次
# chkconfig crond on
圖像顯示出來了
安裝Spine(輪循方式比cmd.php更快)
cd /usr/src/
wget https://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
tar zxf cacti-spine-0.8.7g.tar.gz
cd cacti-spine-0.8.7g
./configure
make
make install
修改配置文件
cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
vi /etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser ###修改密碼
DB_Port 3306
DB_PreG 0
測試是否正常
/usr/local/spine/bin/spine
SPINE: Using spine config file [../etc/spine.conf]
SPINE: Version 0.8.8a starting
SPINE: Time: 3.8489 s, Threads: 4, Hosts: 21
更改頁面輪詢方式爲spine
console>>settings>>poller>>poller type更換爲spine然後保存。
在cacti裏設置spine路徑
Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path
/usr/local/spine/bin/spine
出錯 :
全部完成後發現沒有圖形了,也沒有數據,查看cacti的日誌如下:
2017-02-16 14:33:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
2017-02-16 14:34:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
分析:
1.檢查路徑是否寫錯
2.spine 是否有可執行權限
3.在系統裏單獨運行下 spine 看是否有問題(一切正常,如下)
[root@bogon cacti]# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 1.0.1 starting
SPINE: Time: 0.3066 s, Threads: 4, Devices: 5
4.最終原因:
cacti是使用 poller.php 調用 spine的,這裏問題是poller.php 無法調用spine(無法訪問spine所在的目錄)
將spine程序複製到 poller.php文件的同目錄
cp spine /var/www/html/cacti/spine再將Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path
改爲/var/www/html/cacti/spine 即可
注意其配置文件也要移動 cp /usr/local/spine/etc/spine.conf /etc/ (否則報下面錯誤)
繼續出錯:
沒有任何圖像產生,查看cacti日誌
POLLER: Poller[1] Maximum runtime of 58 seconds exceeded. Exiting.剛開始分析是監控機器太多,線程無法在一分鐘內掃描所有機器,在Poller設置裏增加線程數
問題依舊……仔細查看Settings -> Paths -> Alternate Poller Path 裏的設置選項,上面我們將spine這個程序
cp spine /var/www/html/cacti/spine 放到/var裏執行,所以程序找不到它的配置文件了!!!
解決:cp /usr/local/spine/etc/spine.conf /etc/查看日誌,正常工作
2017-02-16 14:55:03 - SYSTEM STATS: Time:1.5972 Method:spine Processes:2 Threads:4 Hosts:6 HostsPerProcess:3 DataSources:10 RRDsProcessed:7
插件配置
cacti不僅把所統計的流量以圖像顯示出來,而且還能通過插件使得cacti的功能得到進一步的提升。Cacti插件是對cacti的擴展,要使用cacti插件必須先擴展cacti架構,來支持插件。爲了讓cacti能夠使用插件,必須先給cacti安裝一個補丁->Plugin Architecture。由於對應不同的cacti的版本,都會有相應的PA。所以在安裝PA的時候,一定要選擇正確的版本。在cactiusers.org你會找到不同的插件和PA。
PA 與cacti版本的關係:PA 1.0 = cacti 0.8.6i
PA 1.1 = cacti 0.8.6i et 0.8.6j
PA 2.0 = cacti 0.8.7b
PA 2.2 = cacti 0.8.7c
PA 2.4 = cacti 0.8.7d
PA 2.5 = cacti 0.8.7ePA 2.8 =cacti 0.8.7g
cacti-plugin
用於擴展cacti架構,從而支持cacti插件
下載地址:http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
settings
用於郵件報警
下載地址:http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz
用圖形方式顯示設備狀態
下載地址:http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz
用於設備異常預警,閾值報警
下載地址:http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz
可以把網絡拓撲顯示出來
下載地址:http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
cacti-plugin安裝
備份cacti的web目錄和數據庫,以便在安裝過程中出現錯誤後能及時恢復。
mkdir /root/cactibak
cd /var/www/html/
tar -zcf /root/cactibak/cacti-bak.tar.gz cacti
mysql -ucactiadm -pfuzj123 -B cacti_db > /root/cactibak/cacti-bak.sql
ls /root/cactibak
安裝cacti-plugin
cd /usr/src
wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar zxf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch/
cp cacti-plugin-0.8.7g-PA-v2.8.diff /var/www/html/cacti/
cp pa.sql /var/www/html/cacti/
cd /var/www/html/cacti/
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -ucactiuser -pcactiuser cacti < pa.sql //-u 用戶名 -p密碼 數據庫
#編輯global.php
vim include/global.php
修改下面內容:
$database_type = "mysql";
$database_default = "cacti_db";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
修改完之後,下面打開瀏覽器對Cacti進行配置
注意:如果無法打開瀏覽器多是因爲URL 不正確照成的。如果你訪問cacti 的URL 爲
http://ip/,那麼在config.php(vim /var/www/html/cacti/include/config.php) 文件中則爲$url_path ="/"; ;如果訪問cacti 的URL 爲http://192.16.254.248/cacti,則$url_path = "/cacti/";
打開"Console→ User Management→admin"然後在"Realm Permissions"選項卡中勾選"Plugin Management",然後點擊Save 進行保存。打開瀏覽器,http://localhost 對 cacti 進行配置
這個時候我們就可以在Console→Configuration 選項卡下多了一個Plugin Management
選項卡,到此cacti 架構擴展完成
settings安裝和使用
cd /usr/src/
wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz
mv plugin\:settings-v0.71-1.tgz settings-v0.71-1.tar
tar xf settings-v0.71-1.tar
cp -fr settings /var/www/html/cacti/plugins/
點擊Console---> Plugin Management,我們看到多了一個settings 插件,然後點擊藍色箭頭啓
用即可,下圖爲啓用後settings 插件,啓用後箭頭爲紅色
打開Console------Settings------Mail/DNS
按照上圖進行配置,然後點擊保存,最後點擊右上角 send a Test Email.查看測試是否成功。看到success之後表示成功。
附:中文版配置頁面的。用於配置參考
monitor安裝和使用
cd /usr/src/
wget http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz
mv plugin\:monitor-v1.2-1.tgz monitor-v1.2-1.tar
tar xf monitor-v1.2-1.tar
cp -fr monitor /var/www/html/cacti/plugins/
打開“Console -> Plugin Management”點擊藍色箭頭啓用即可,下圖爲已經啓用的Monitor
插件
然後回到控制檯,發現多了一個“Monitor”選項卡
打開“Console -> Settings”,發現多了一個“Misc”選項卡
thold的安裝和使用
cd /usr/src/
wget http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz
mv plugin\:thold-v0.5.0.tgz thold-v0.5.0.tar
tar xf thold-v0.5.0.tar
cp -fr thold /var/www/html/cacti/plugins/
thold 插件不需要在cacti 配置文件config.php 中添加,我們之間來到瀏覽器設置就可以
打開“Console ->Plugin Management”點擊藍色箭頭啓用即可,下圖爲已經啓用的thold
回到控制檯,我們會發現多了一個“thold”選項
打開“Console -> Settings”,發現多了一個“Alerting/Thold”選項卡
打開“Console ------Settings------Alerting/Thold”
設置報警的收件郵箱和發件郵箱(需要和之前在settings中設置的一樣)
附:中文界面圖,供參考
weathermap的安裝和使用
cd /usr/src/
wget http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
unzip php-weathermap-0.96a.zip
cp -fr weathermap /var/www/html/cacti/plugins/
chmod -R 777 /var/www/html/cacti/plugins/weathermap
打開“Console -> Plugin Management”啓用weathermap
點擊“Console -> User Management ->admin”勾選下面選項