Cacti是一款使用PHP語言開打的性能與流量監測工具,監測的對象可以是linux或windows伺服器,也可以是路由器,交換機等網絡裝置,主要基于SNMP(簡單網絡管理協定)搜集CPU占用,記憶體占用,運作程序數,磁盤空間,網卡流量等各種資料。
Cacti本身隻是一個Web界面的管理軟體,通過調用Net-SNMP工具來采集監測資料,并結合RRDtool(輪詢資料庫工具)記錄資料并繪制圖檔。
注意:Cacti監測系統的搭建需要LAMP環境的支援,是以在搭建Cacti環境之前需要先将LAMP環境搭建好,還有本文的系統使用rhel6.0的系統,參考時注意自己系統的版本。
伺服器端配置(主要端-Cacti)
1、建構支援Cacti的LAMP平台
在此使用系統CD光牒中的rpm格式的包,并使用yum進行安裝,相關軟體包如下。
[root@localhost/]#yum-yinstallhttpd
[root@localhost/]#yum-yinstallmysqlmysql-servermysql-connector*
[root@localhost/]#yum-yinstallphpphp-mysqlphp-pdoperl-DBD*unixODBC-*
上述分别是安裝httpmysql和php,也就是LAMP平台。
2、安裝net-snmp-utils軟體包
Cacti平台通過SNMP協定采集監測資料,是以需要用到snmpget,snmpwalk等SNMP資料采集工具,如下:使用yum一并安裝。
[root@localhost/]#yum-yinstallnet-snmp*lm_sensors
3、安裝RRDtool軟體包
[root@localhost/]#tarzxfrrdtool-1.4.5.tar.bz
[root@localhost/]#cdrrdtool-1.4.5
[[email protected]]#./configure--prefix=/usr/local
[[email protected]]#make&&makeinstall
4、部署Cacti源碼包
将下載下傳好的Cacti源碼包釋放至Web伺服器的網頁目錄。
[root@localhost/]#tarzxfcacti-0.8.7g.tar.bz
[root@localhost/]#mvcacti-0.8.7g//var/www/html/cacti
5、添加一個程式使用者,用來讀取檢測的資料。
[root@localhost/]#useraddrunct
[root@localhost/]#cd/var/www/html/cacti
[root@localhostcacti]#chown-Rroot:root./
[root@localhostcacti]#chown-Rrunct:runctrra/log/
6、建立資料庫,并導入表。
先建立用于Cacti檢測平台的資料庫,并授權一個資料庫使用者,然後使用cacti源碼目錄下的cacti.sql腳本,導入預設的各種資料表。如下圖所示:
需要先啟動mysqld服務,然後登陸mysq進行建立資料庫操作。
[root@localhostcacti]#mysql-uroot-p
Mysql>createdatabasecactidbdefaultcharactersetutf8;
Mysql>grantalloncactidb.*tocactiuser@'localhost'identifiedby'123.qwe';
Mysql>exit
[root@localhostcacti]#mysql-ucactiuser-pcactidb<cacti.sql
7、調整Cacti配置檔案
Cacti的配置檔案位于源碼目錄中的include/檔案下,名為config.php。要是Cacti系統能夠正确通路并使用資料庫,必須修改config.php檔案,確定資料庫連接配接參數真确無誤。修改如下:
[root@localhostcacti]#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">
OptionsIndexesFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>
DirectoryIndexindex.phpindex.html
AddDefaultCharsetUTF-8
[root@localhost/]#servicehttpdstart
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
41com2secnotConfiguser192.168.1.1Public
62accessnotConfigGroup""anynoauthexactallnonenone
85viewallincluded.1
2、windows用戶端
windows用戶端需要安裝SNMP服務
安裝完成以後,通過“伺服器管理器”修改“SNMPService”服務的屬性,指定授權位址(即cacti伺服器的位址),共同體名等(即Public)。
使用Cacti檢測用戶端主機
1、添加被監控端主機
單擊導航欄中“Management”下的“Devices”連結,可以管理被控制端裝置或主機。通過右上角的“Add”連結,可以打開添加新裝置的頁面。
建立新的被監控裝置以後,将自動連接配接目标執行SNMP查詢,若查詢成功則可以繼續後面的檢測項目設定,否則應檢測被控端的SNMP設定,網絡連接配接,防火牆限制,共同體名等相關因素以排除故障。成功連接配接被控端後會看到“SaveSucessful”的提示資訊,頁面下方可看到預設檢測項目,管理者可根據需要檢測的項目進行勾選。
2、生成檢測圖像
單擊導航欄中“Create”下的“NewGraphs”連結,進入圖像建立頁面,選擇指定被監控主機或裝置,并選擇其中最需要的圖像條目。
單擊導航欄中“Management”下的“GraphTrees”連結,在單擊“DefaultTree”,可以對預設的圖像檢測樹進行管理。我們可以單擊右邊的“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/]#servicecrondstart
[root@localhost/]#chkconfigcrondon
4、檢視檢測結果
單擊Cacti管理控制台左上方的“graphs”标簽,然後展開左側欄的“DefaultTree”樹,選擇被監控主機後即可看到個項檢測圖像。
添加Monitor、Thold插件
Cacti檢測系統支援插件擴充,允許自定義圖像模闆和資料查詢,進而能夠靈活滿足更加多樣化的檢測需求。下面通過安裝及使用Monitor、Thold插件,介紹擴充Cacti檢測系統功能的基本方法。
1、安裝Monitor和Thold插件
将下載下傳好的插件包解壓到/var/www/html/cacti/plugins目錄下即可。
[root@localhost/]#tarzxfmonitor-0.8.2.tar.gz-C/var/www/html/cacti/plugins
[root@localhost/]#tarzxfthold-0.4.3.tar.gz-C/var/www/html/cacti/plugins
2、調整cacti配置以識别插件
在cacti系統的web控制台中,單擊導航欄中的“Utilites”下的“UserManagement”連結,修改admin使用者的屬性,選中“PluginManagement”項,單擊“Save”儲存即可。
重新整理cacti控制台頁面,左側導航欄中“configuration”下将多出一個“PluginManagement”連結。單擊此連結進入插件管理頁面,通過“Actions”列的按鈕可依次加載Monitor、Settings、Thold插件,并啟用Thold插件。
使用狀态監視插件——Monitor
單擊導航欄中“configuration”下的“setings”連結,切換至“Misc”頁面并選中“ShowlconLegend”以顯示圖例,将視圖“View”設為“Tiles”。
若不希望某個裝置被Monitor插件檢測,則可以修改被監控主機屬性,取消選中的“MonitorHost”即可。
使用門檻值告警插件——Thold
1、設定接收告警郵件的郵箱位址
單擊導航欄中的“ConfigUration”下的“Settings”連結,切換至“Thresholds”頁面,選中“DeadHostNotifications”以便當機或恢複時發送通知,同時應在“DeadhostsNotificationsEmail”外指定告警郵箱位址。
2、設定SMTP發信、DNS伺服器等參數。
單擊導航欄中的“ConfigUration”下的“Settings”連結,切換至“Mail/DNS”頁面,将“MailServices”設為“SMTP”,并填寫實際可用的發信位址,SMTP伺服器,SMTP認證使用者和密碼,以及DNS伺服器位址等資訊。
3、設定需要報警的檢測項目
單擊導航欄中“Templates”下的“ThresholdTemplates”連接配接,切換至預警模闆設定頁面,單擊“Add”可以添加預警項,資料模闆應與被控裝置使用的模闆想比對。
在設定各種檢測模闆時,告警門檻值的預設計量機關如下:CPU使用率為百分比(不含%),網卡流量為Byte/S,硬碟空間為KB,記憶體占用為KB。
4、為被控主機啟用門檻值告警
單擊導航欄中“Create”下的“NewGraphs”連接配接,選擇指定的被控主機,然後單擊右上方的“Auto-createthresholds”連接配接,将會自動建立可用的門檻值告警項目。
5、檢視,管理門檻值警告。
單擊導航欄中“Management”下的“Thresholds”連接配接,可以對以啟用的門檻值告警項進行管理(檢視,添加,删除等);或者通過cacti管理頁面上方的“Thold”頁籤,可以檢視門檻值告警情況,達到告警條件的檢測項将以紅色顯示。