構建cacti監測系統


 Cacti是一款使用PHP語言開打的性能與流量監測工具,監測的對象能夠是linuxwindows服務器,也能夠是路由器,交換機等網絡設備,主要基於SNMP(簡單網絡管理協議)蒐集CPU佔用,內存佔用,運行進程數,磁盤空間,網卡流量等各類數據。php

 Cacti自己只是一個Web界面的管理軟件,經過調用Net-SNMP工具來採集監測數據,並結合RRDtool(輪詢數據庫工具)記錄數據並繪製圖片。html

注意:Cacti監測系統的搭建須要LAMP環境的支持,所以在搭建Cacti環境以前須要先將LAMP環境搭建好,還有本文的系統使用rhel6.0的系統,參考時注意本身系統的版本。mysql

服務器端配置(主控端-Cacti)linux

1、構建支持CactiLAMP平臺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 mysqlphp,也就是LAMP平臺。
瀏覽器

2、安裝net-snmp-utils軟件包

 Cacti平臺經過SNMP協議採集監測數據,所以須要用到snmpgetsnmpwalkSNMP數據採集工具,以下:使用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系統來演示客戶端的配置操做。

1Linux客戶端

linux客戶端,須要安裝net-snmplm_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

2windows客戶端

        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」樹,選擇被監控主機後便可看到個項檢測圖像。

添加MonitorThold插件

        Cacti檢測系統支持插件擴展,容許自定義圖像模板和數據查詢,從而可以靈活知足更加多樣化的檢測需求。下面經過安裝及使用MonitorThold插件,介紹擴展Cacti檢測系統功能的基本方法。

1、安裝MonitorThold插件

將下載好的插件包解壓到/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」列的按鈕可依次加載MonitorSettingsThold插件,並啓用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」選項卡,能夠查看閾值告警狀況,達到告警條件的檢測項將以紅色顯示。

相關文章
相關標籤/搜索