Cacti是一款使用PHP語言開打的性能與流量監測工具,監測的對象能夠是linux或windows服務器,也能夠是路由器,交換機等網絡設備,主要基於SNMP(簡單網絡管理協議)蒐集CPU佔用,內存佔用,運行進程數,磁盤空間,網卡流量等各類數據。php
Cacti自己只是一個Web界面的管理軟件,經過調用Net-SNMP工具來採集監測數據,並結合RRDtool(輪詢數據庫工具)記錄數據並繪製圖片。html
注意:Cacti監測系統的搭建須要LAMP環境的支持,所以在搭建Cacti環境以前須要先將LAMP環境搭建好,還有本文的系統使用rhel6.0的系統,參考時注意本身系統的版本。mysql
服務器端配置(主控端-Cacti)linux
1、構建支持Cacti的LAMP平臺web
在此使用系統光盤中的rpm格式的包,並使用yum進行安裝,相關軟件包以下。sql
[root@localhost /]#yum -y install httpd數據庫
[root@localhost /]#yum -y install mysql mysql-server mysql-connector*vim
[root@localhost /]#yum -y install php php-mysql php-pdo perl-DBD* unixODBC-*windows
上述分別是安裝http mysql和php,也就是LAMP平臺。
瀏覽器
2、安裝net-snmp-utils軟件包
Cacti平臺經過SNMP協議採集監測數據,所以須要用到snmpget,snmpwalk等SNMP數據採集工具,以下:使用yum一併安裝。
[root@localhost /]#yum -y install net-snmp* lm_sensors
3、安裝RRDtool軟件包
[root@localhost /]#tar zxf rrdtool-1.4.5.tar.bz
[root@localhost /]#cd rrdtool-1.4.5
[root@localhost rrdtool-1.4.5]#./configure --prefix=/usr/local
[root@localhost rrdtool-1.4.5]#make && make install
4、部署Cacti源碼包
將下載好的Cacti源碼包釋放至Web服務器的網頁目錄。
[root@localhost /]#tar zxf cacti-0.8.7g.tar.bz
[root@localhost /]#mv cacti-0.8.7g/ /var/www/html/cacti
5、添加一個程序用戶,用來讀取檢測的數據。
[root@localhost /]#useradd runct
[root@localhost /]#cd /var/www/html/cacti
[root@localhost cacti]#chown -R root:root ./
[root@localhost cacti]#chown -R runct:runct rra/ log/
6、創建數據庫,並導入表。
先建立用於Cacti檢測平臺的數據庫,並受權一個數據庫用戶,而後使用cacti源碼目錄下的cacti.sql腳本,導入預設的各類數據表。以下圖所示:
須要先啓動mysqld服務,而後登錄mysq進行建立數據庫操做。
[root@localhost cacti]#mysql -u root -p
Mysql>create database cactidb default character set utf8;
Mysql>grant all on cactidb.* to cactiuser@'localhost' identified by '123.qwe';
Mysql>exit
[root@localhost cacti]#mysql -u cactiuser -p cactidb < cacti.sql
7、調整Cacti配置文件
Cacti的配置文件位於源碼目錄中的include/文件下,名爲config.php。要是Cacti系統可以正確訪問並使用數據庫,必須修改config.php文件,確保數據庫鏈接參數真確無誤。修改以下:
[root@localhost cacti]#vim /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "lcoalhost";
$database_username = "cactiuser";
$database_password = "123.qwe";
$database_port = "3306";
$database_ssl = false;
$url_path = "/";
除此以外,爲了在檢測圖像中正確顯示中文,須要使用Cacti系統識別本機的中文語言環境。須要修改「/lib/functions.php」文件。修改以下:
[root@localhost /]#vim /var/www/html/cacti/lib/functions.php
<?php
Setlocale(LC_CTYPE,"zh_CN.UTF-8");
......//省略部份內容
8、修改httpd服務的主配置文件,設置好網站根目錄,自動索引頁,默認字符集等相關參數,而後啓動http服務。修改以下:
[root@localhost /]#vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/cacti"
<Directory "/var/www/html/cacti">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Directory Index index.php index.html
AddDefaultCharset UTF-8
[root@localhost /]#service httpd start
9、初始化安裝Cacti系統
在瀏覽器中訪問Cacti服務器的Web服務,根據提示進行cacti初始化的安裝操做。以下圖所示:在瀏覽器中輸入「http://cacti服務器的地址」根據提示選擇「next」進行下一步安裝,Cacti初始化安裝時會檢測安裝環境,安裝完成後,會出現Cacti登錄界面,默認用戶名,密碼都是「admin」,初次登錄會提示更改密碼。
客戶端配置(被控端-SNMPD)
不管是交換機,路由器,仍是Linux系統或windows系統,只要正確支持SNMP協議,並容許Cacti服務器採集數據,就可以進行集中檢測了。做者在此分別使用Linux系統和Windows系統來演示客戶端的配置操做。
1、Linux客戶端
在linux客戶端,須要安裝net-snmp、lm_sensors等軟件包,並修改snmpd.conf配置文件,啓動snmpd服務便可。snmpd.conf配置文件修改以下:
[root@localhost \]#vim /etc/snmp/snmpd.conf
......//省略部份內容
41com2sec notConfiguser 192.168.1.1 Public
62 access notConfigGroup "" any noauth exact all none none
85 view all included .1
2、windows客戶端
windows客戶端須要安裝SNMP服務
安裝完成之後,經過「服務器管理器」修改「SNMP Service」服務的屬性,指定受權地址(即cacti服務器的地址),共同體名等(即Public)。
使用Cacti檢測客戶端主機
1、添加被監控端主機
單擊導航欄中「Management」下的「Devices」連接,能夠管理被控制端設備或主機。經過右上角的「Add」連接,能夠打開添加新設備的頁面。
建立新的被監控設備之後,將自動鏈接目標執行SNMP查詢,若查詢成功則能夠繼續後面的檢測項目設置,不然應檢測被控端的SNMP設置,網絡鏈接,防火牆限制,共同體名等相關因素以排除故障。成功鏈接被控端後會看到「Save Sucessful」的提示信息,頁面下方可看到默認檢測項目,管理員可根據須要檢測的項目進行勾選。
2、生成檢測圖像
單擊導航欄中「Create」下的「New Graphs」連接,進入圖像建立頁面,選擇指定被監控主機或設備,並選擇其中最須要的圖像條目。
單擊導航欄中「Management」下的「Graph Trees」連接,在單擊「Default Tree」,能夠對默認的圖像檢測樹進行管理。咱們能夠單擊右邊的「Add」連接,將剛纔建立的圖像添加至檢測樹彙總。
3、按期採集檢測數據
Cacti系統經過「poller.php」頁面來採集檢測數據,須要使用php程序解釋執行。爲了得到持續穩定的數據,應結合計劃任務按期進行採集。
[root@localhost /]#su - runct //切換爲數據採集帳戶
[runct@localhost /]#php /var/www/html/cacti/poller.php //手動執行數據採集
[runct@localhost /]#crontab -e //設置計劃任務
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &> /dev/null
[runct@localhost /]#exit
[root@localhost /]#service crond start
[root@localhost /]#chkconfig crond on
4、查看檢測結果
單擊Cacti管理控制檯左上方的「graphs」標籤,而後展開左側欄的「Default Tree」樹,選擇被監控主機後便可看到個項檢測圖像。
添加Monitor、Thold插件
Cacti檢測系統支持插件擴展,容許自定義圖像模板和數據查詢,從而可以靈活知足更加多樣化的檢測需求。下面經過安裝及使用Monitor、Thold插件,介紹擴展Cacti檢測系統功能的基本方法。
1、安裝Monitor和Thold插件
將下載好的插件包解壓到/var/www/html/cacti/plugins目錄下便可。
[root@localhost /]#tar zxf monitor-0.8.2.tar.gz -C /var/www/html/cacti/plugins
[root@localhost /]#tar zxf thold-0.4.3.tar.gz -C /var/www/html/cacti/plugins
2、調整cacti配置以識別插件
在cacti系統的web控制檯中,單擊導航欄中的「Utilites」下的「User Management」連接,修改admin用戶的屬性,選中「Plugin Management」項,單擊「Save」保存便可。
刷新cacti控制檯頁面,左側導航欄中「configuration」下將多出一個「Plugin Management」連接。單擊此連接進入插件管理頁面,經過「Actions」列的按鈕可依次加載Monitor、Settings、Thold插件,並啓用Thold插件。
使用狀態監視插件——Monitor
單擊導航欄中「configuration」下的「setings」連接,切換至「Misc」頁面並選中「Show lcon Legend」以顯示圖例,將視圖「View」設爲「Tiles」。
若不但願某個設備被Monitor插件檢測,則能夠修改被監控主機屬性,取消選中的「Monitor Host」便可。
使用閾值告警插件——Thold
1、設置接收告警郵件的郵箱地址
單擊導航欄中的「ConfigUration」下的「Settings」連接,切換至「Thresholds」頁面,選中「Dead Host Notifications」以便宕機或恢復時發送通知,同時應在「Dead hosts Notifications Email」外指定告警郵箱地址。
2、設置SMTP發信、DNS服務器等參數。
單擊導航欄中的「ConfigUration」下的「Settings」連接,切換至「Mail/DNS」頁面,將「Mail Services」設爲「SMTP」,並填寫實際可用的發信地址,SMTP服務器,SMTP認證用戶和密碼,以及DNS服務器地址等信息。
3、設置須要報警的檢測項目
單擊導航欄中「Templates」下的「Threshold Templates」鏈接,切換至預警模板設置頁面,單擊「Add」能夠添加預警項,數據模板應與被控設備使用的模板想匹配。
在設置各類檢測模板時,告警閾值的默認計量單位以下:CPU使用率爲百分比(不含%),網卡流量爲Byte/S,硬盤空間爲KB,內存佔用爲KB。
4、爲被控主機啓用閾值告警
單擊導航欄中「Create」下的「New Graphs」鏈接,選擇指定的被控主機,而後單擊右上方的「Auto-create thresholds」鏈接,將會自動建立可用的閾值告警項目。
5、查看,管理閾值警告。
單擊導航欄中「Management」下的「Thresholds」鏈接,能夠對以啓用的閾值告警項進行管理(查看,添加,刪除等);或者經過cacti管理頁面上方的「Thold」選項卡,能夠查看閾值告警狀況,達到告警條件的檢測項將以紅色顯示。