案例1:部署Cacti監控平臺 案例2:構建Cacti監測系統
1 案例1:部署Cacti監控平臺
1.1 問題php
本案例要求部署一臺Cacti監控主機,並安裝相關監控組件,爲進一步執行具體的監控任務作準備:html
安裝net-snmp、net-snmp-utils 安裝LAMP及相關依賴軟件包 部署Cacti監控平臺 初始化監控頁面
1.2 方案mysql
使用1臺RHEL7虛擬機,安裝部署LAMP環境、Cacti及相關的snmp組件包,配置數據庫並對Cacti監控平臺進行初始化操做。
1.3 步驟web
實現此案例須要按照以下步驟進行。sql
步驟一:準備基礎軟件包數據庫
1)安裝LAMP環境apache
Cacti監控須要經過Web頁面展現出來,而且還須要使用MySQL來存儲一些變量數據,所以須要先爲Cacti準備基礎LAMP環境。由於Cacti監控其餘主機數據時使用的是snmp協議,因此還須要安裝net-snmp和net-snmp-utils軟件包。vim
[root@svr5 ~]# yum -y install httpd php php-mysql php-ldap \ >php-xml mysql mysql-server net-snmp net-snmp-utils lm_sensors [root@svr5 ~]# service httpd start;chkconfig httpd on //啓動httpd服務 [root@svr5 ~]# service mysqld start;chkconfig mysqld on //啓動mysqld服務 [root@svr5 ~]# mysqladmin -u root password '111' //設置數據庫管理員密碼
2)源碼安裝RRDTool安全
Cacti監控的數據存儲和繪圖功能主要依賴於該軟件,若是沒有該軟件則Cacti沒法存儲監控數據並繪製出監控圖像。服務器
[root@svr5 ~]# tar zxf rrdtool-1.4.5.tar.gz [root@svr5 ~]# cd rrdtool-1.4.5 [root@svr5 rrdtool-1.4.5]# ./configure --prefix=/usr/local [root@svr5 rrdtool-1.4.5]# make && make install
步驟二:部署Cacti套件
1)解壓部署Cacti軟件包
Cacti是由PHP開發的Web頁面套件,PHP代碼經過使用snmp協議來得到監控數據,並代用RRDTool存儲數據和繪製監控圖像,因此在安裝完成基礎LAMP環境後,首先須要作的就是將Cacti軟件包解壓放置在Web服務器的網頁根路徑下。
[root@svr5 ~]# tar zxf cacti-0.8.7g.tar.gz [root@svr5 ~]# mv cacti-0.8.7g/ /var/www/html/cacti [root@svr5 ~]# cd /var/www/html/cacti [root@svr5 cacti]# useradd cactiuser [root@svr5 cacti]# chown -R root.root ./ [root@svr5 cacti]# chown -R cactiuser.cactiuser rra/ log/
2)建立數據庫並初始化
Cacti須要使用MySQL來存儲部分動態數據,這裏還須要給Cacti建立一個數據庫,並使用Cacti提早準備好的數據文件,對數據庫進行初始化。
[root@svr5 cacti]# mysql -u root -p Enter password: //密碼爲前面初始化的密碼 mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8; //建立數據庫 mysql> GRANT all ON cactidb.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'pwd123'; //建立帳戶並賦權 mysql> QUIT [root@svr5 cacti]# mysql -u cactiuser -p cactidb < cacti.sql //初始化數據庫
3)修改Cacti的PHP源碼文件,指定數據庫名稱及相關帳戶信息。
[root@svr5 ~]# cd /var/www/html/cacti [root@svr5 cacti]# vim include/config.php <?php $database_default = "cactidb"; //設置數據庫名稱 $database_username = "cactiuser"; //設置帳戶名稱 $database_password = "pwd123"; //設置密碼 …… ?> [root@localhost cacti]# vi lib/functions.php <?php setlocale(LC_CTYPE,"zh_CN.UTF-8"); //定義語言 ……
4)調整http配置文件,從新定義根路徑
httpd配置文件使用DocumentRoot "/var/www/html"語句來定義網站頁面根路徑,默認路徑爲/var/www/html/,這裏須要修改成/var/www/html/cacti。
[root@svr5 ~]# vim /etc/httpd/conf/httpd.conf .. .. DocumentRoot "/var/www/html/cacti" .. ..
5)訪問Cacti監控頁面,並進行初始化設置
第一次登陸Cacti須要進行一些簡單的初始化操做,主要是設置幾個主要的依賴程序的存儲位置。
2 案例2:構建Cacti監測系統
2.1 問題
沿用練習一,爲監控客戶端主機安裝net-snmp並設置監控權限,並經過調整Cacti服務端配置,實現如下目標:
主機192.168.1.200上搭建Cacti系統 監測網關、網站、郵件三臺Linux服務器 監控被監控端的CPU負載、網絡流量、磁盤空間 發郵件給root@localhost
2.2 方案
準備4臺Linux虛擬機,1臺部署Cacti監控系統,3臺做爲服務器同時也是被監控的對象,拓撲結構如圖-1所示。
圖-1
實驗沿用練習一的成果,cacti監控平臺已經部署完畢,目前須要給全部被監控節點安裝net-snmp,並經過修改配置文件設置監控權限。
2.3 步驟
實現此案例須要按照以下步驟進行。
步驟一:被監控主機設置
注意:因爲全部被監控主機均容許cacti監控服務器從本機提取監控數據,所以全部被監控主機都須要作以下操做,下面以網關服務器爲例。
1)安裝net-snmp軟件
Cacti監控其餘主機是經過簡單網絡管理協議(SNMP)收集被監控端數據信息,所以被監控端服務器都須要安裝net-snmp以及lm_sensors。lm_sensors軟件能夠幫助咱們來監控硬件信息如CPU的工做電壓等數據。
[root@router ~]# yum -y install net-snmp lm_sensors
2)修改snmp配置文件
SNMP配置文件主要包括四個部份內容須要修改,第一步映射通信名稱到安全用戶名稱,第二步將用戶加入到組中,第三步爲組賦予訪問視圖的權限,第四步定義all視圖。主配置文件設置完成後重啓服務便可經過客戶端訪問該服務器得到系統信息,SNMP使用的端口號爲UDP 161端口以及TCP 199端口。
[root@router ~]# vim /etc/snmp/snmpd.conf …… com2sec notConfigUser 192.168.1.200 public //社區名稱映射爲安全名稱 group notConfigGroup v1 notConfigUser //將帳戶加入組 group notConfigGroup v2c notConfigUser access notConfigGroup "" any noauth exact all none none //賦予notConfigGroup組對all視圖的訪問權限 view all included .1 80 //定義all視圖及相關權限 …… [root@router ~]# service snmpd start;chkconfig snmpd on
3)查看SNMP服務運行狀態,設置防火牆
默認SNMP監聽udp的161端口和tcp的199端口,經過netstat命令能夠查看該端口的監聽狀態,設置防火牆規則容許這兩個端口的入站數據。
[root@router ~]# netstat -anpu | grep "snmpd" udp 0 0 0.0.0.0:161 0.0.0.0:* 16452/snmpd [root@router ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT [root@router ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT [root@router ~]# service iptables save
步驟二:設置Cacti監控服務器
注意:本練習案例要求將3臺被監控端主機均加入到Cacti系統,這裏以Web服務器爲例添加監控對象並生成監控圖像。其它監控節點作相關操做便可。
1)添加監控主機
登陸Web控制檯(http://192.168.1.200),默認的管理帳號、密碼爲 admin,首次登陸時要求強制重設密碼。添加被監控端主機時須要設置目標地址,並正確選擇主機模板、設置社區名稱。
登陸Web控制檯後,進入Devices菜單後點擊Add添加被監控主機,如圖-2所示。此時系統會要求填寫相關表單信息,須要填寫的項目參數描述見表-1,填寫完所需項目表單後點擊右下角的Create便可建立新的設備主機,同時在下方會出現圖形模版以及數據查詢模版,管理員能夠根據實際須要繼續添加須要監控的參數對象,肯定後點擊Save保存全部設置,效果如圖-3所示。
/
圖-2
表-1 項目參數描述表
圖-3
2)建立監控圖像
經過以上操做,設備主機以及須要監控的性能指標已經建立完成,下面須要經過New Graphs菜單爲Web服務器建立圖形。進入新建圖形界面後在Host列表中選擇上一步添加的設備主機,並在須要監控的性能模版後點選對勾,設置完成後選擇Create爲被監控設備添加圖形,如圖-4所示。
圖-4
3)建立監控圖像樹
Cacti監控系統最終經過樹狀列表來查看被監控主機性能圖形,咱們能夠建立多棵圖形樹,在每棵圖形樹下能夠插入多個設備主機的圖形信息。Cacti初始狀態有一個名爲Default的圖形樹,本案例中咱們將建立一棵新的圖形樹,並將被監控端主機的圖形添加進來。經過點擊Graph Trees菜單打開圖形樹的設置界面。選擇Add能夠添加新的圖形樹,如圖-5所示,提示輸入Name(圖形樹名稱)後點擊Create(建立),本案例設置名稱爲Web,此時在Graph Trees界面中會出現Default與Web兩棵圖形樹。點擊進入Web樹中,選擇Add按鈕添加上一步操做中建立的圖形,如圖-6所示。
圖-5
圖-6
4)監控服務器按期收集被監控端主機信息
Cacti監控服務器須要經過SNMP收集數據信息並最終生成圖形窗口,在Cacti軟件包中已經自帶了這麼一個用於收集數據的PHP腳本,默認Cacti系統須要每五分鐘收集一次數據,管理員能夠經過計劃任務實現每五分鐘執行該腳本,也能夠手動執行該腳本當即同步數據。
5)查看監控頁面效果
最後,經過Cacti平臺的graphs選項卡進入圖形窗口,該窗口將以樹狀顯示,案例中咱們建立了一棵名爲Web的圖形樹,並在Web樹下添加了3臺被監控主機的圖形,最終查看效果如圖-7所示。
[root@cacti ~]# crontab -e */5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php
圖-7
步驟三:實現郵件報警機制
1)安裝插件補丁
[root@cacti ~]# tar -xzf cacti-plugin-0.8.7g-PA-v2.9.tar.gz [root@cacti ~]# mv cacti-plugin-arch /var/www/html/cacti/ [root@cacti ~]# cd /var/www/html/cacti [root@cacti cacti]# patch \ > -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff //打補丁 [root@cacti cacti-plugin-arch]# pwd /var/www/html/cacti/cacti-plugin-arch [root@cacti cacti-plugin-arch]# mysql –u cactiuser –ppwd123 cactidb <pa.sql //插入數據庫
2)修改配置文件,正確設置數據庫信息
[root@cacti cacti]# vim /var/www/html/cacti/include/global.php $database_type = "mysql" $database_default = "cactidb" $database_hostname = "localhost" $database_username = "cactiuser" $database_password = "pwd123" $database_port = "3306" [root@cacti cacti]# vim /var/www/html/cacti/include/config.php $url_path = "/cacti/"
3)修改權限
默認admin帳戶並無開啓插件功能,須要點擊"User Management"菜單,在刷新出來的頁面中找到"admin"帳戶,如圖-8所示。點擊進入admin帳戶設置頁面。在"Realm Permissions"選項卡下找到"Plugin Management"並點選對勾賦予帳戶插件管理權限,如圖-9所示。
圖-8
圖-9
4)安裝郵件報警插件
插件便是PHP源代碼文件,解壓後複製到Cacti目錄下便可。
[root@cacti ~]# tar -xzf thold-v0.4.9-3.tgz [root@cacti ~]# tar -xzf setting-v0.71-1.tgz [root@cacti ~]# tar –xzf monior-v1.3-1.tgz [root@cacti ~]# mv monitor settings thold /var/www/html/cacti/plugins
刷新Web控制檯查看Plugin Management頁面內容如圖-10所示。下一步還須要點擊插件名稱左邊的圖標(向下的箭頭)進行安裝。
圖-10
5)啓用Thold插件
首先須要定義報警郵件列表,點擊"Notification Lists",在刷新出的頁面中點擊「Add"按鈕,在彈出的頁面中填寫報警通知的郵件帳戶列表,如圖-11所示。
圖-11
其次,還須要設置發送郵件的服務器,效果如圖-12所示。
圖-12
6)使用Thold監控具體對象參數
監控web服務器的/boot空間,若是該分區的已用空間已達到80M以上,那麼將發送郵件報警。
點擊"Thresholds",在彈出的頁面中選擇"Add"按鈕添加被監控主機及監控圖像,具體報警參數設置如圖-13至圖-15所示。
圖-14
圖-15
7)驗證
在web服務上向/boot分區寫入較大的文件,使得該分區已用空間超過80%,測試報警是否正確工做。