天天看點

監控服務--Cacti監控服務–Cacti

監控服務–Cacti

Cacti簡介

Cacti是一套基于PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。它通過snmpget來擷取資料,使用 RRDtool繪畫圖形,以監控流量和性能為主。Cacti主要是提供了一個監控的架構,真正資料收集的是SNMP,資料展示的是TTDTOOL,Cacti的延時是比較大的,預設5分鐘重新整理一次。

Cacti架構:

監控服務--Cacti監控服務–Cacti

Cacti原理

1.構造

1)Snmp

Simple Network Management Protocal(簡單網絡管理協定):采集資料

原理:在每個被監控的主機或節點上都運作一個agent,用來收集這個節點的所有相關資訊,同時監聽snmp的port(161)。

安裝:分為監控機和被監控機:監控機安裝net-snmp-utils,被監控端安裝net-snmp

SNMP工作方式:

監控服務--Cacti監控服務–Cacti

SNMP監控資料類型的選擇(OID)

監控服務--Cacti監控服務–Cacti

舉個例子:我如果要收集系統資訊,我需要在配置檔案寫OID即 .1.3.6.1.6,這是一個樹狀圖結構,需要一層一層來定位,收集的資訊類型需要自己來定義

2)RRDTool

RRDTool:資料存儲和繪圖

工作方式:

監控服務--Cacti監控服務–Cacti

3)MySQL

MySQL:儲存對應模闆和主機的對應資訊

2.工作原理

snmp協定定時采集資料,儲存到rrd,當使用者需要檢視某個主機對應的監控資訊的時候可以在MySQL中尋找對應的主機ip等資訊,然後在指令rrd繪制出圖形

3.監控對象

網絡流量、CPU使用率、硬碟的使用情況等

監控服務搭建

監控服務端

安裝lAMP環境,這裡沒有必要使用源碼安裝,因為僅僅是内部使用,并發并不高

1.安裝LAMP環境

yum -y install httpd mysql mysql-server mysql-devel libxml2-devel mysql-connector-odbc perl-DBD-MySQL unixODBC php php-mysql php-pdo  #軟體和Cacti的依賴
 
 service httpd start && chkconfig httpd on  #開啟apache,設定開機自啟
 service mysqld start && chkconfig mysqld on  #開啟mysql,設定開機自啟
 mysqladmin -uroot password 123  #初始化密碼
           

2.安裝SNMP

yum -y install  net-snmp net-snmp-utils net-snmp-libs lm_sensors  #SNMP
           

3.安裝RRDTOOL

注意:安裝rrdtool,報錯再安裝依賴
tar -zxf rrdtool-1.4.5.tar.gz
tar zxvf cgilib-0.5.tar.gz
$ cd cgilib-0.5  
$ make
$ cp libcgi.a /usr/local/lib
$ cp cgi.h /usr/include

$ yum -y  install libart_lgpl-devel

$ yum -y install pango-devel* cairo-devel* libart_lgpl-devel
./configure --prefix=/usr/local  #編譯安裝,安裝編譯的時候會報錯,然後再安裝依賴
#安裝依賴
tar zxvf cgilib-0.5.tar.gz
cd cgilib-0.5  
make
cp libcgi.a /usr/local/lib
cp cgi.h /usr/include
yum -y install pango-devel* cairo-devel* libart_lgpl-devel
#重新安裝RRDTOOL
cd ../rrdtool		
./configure --prefix=/usr/local && make && make install  #重新編譯安裝
           

4.部署 cacti

tar -zxf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g/ /var/www/html/cacti  #将解壓後的cacti放到apache的網頁根目錄下
cd /var/www/html/cacti

#打7個更新檔
patch -p1 -N < ~/data_source_deactivate.patch  #注意data_source_deactivate.patch的路徑
patching file lib/api_data_source.php  #打更新檔成功

patch -p1 -N < ~/graph_list_view.patch
patching file graph_view.php

patch -p1 -N <~/html_output.patch
patching file lib/html_form.php
patching file lib/data_query.php
patching file data_sources.php
patching file graphs.php

patch -p1 -N <~/ldap_group_authenication.patch
patching file lib/ldap.php

patch -p1 -N <~/script_server_command_line_parse.patch
patching file script_server.php

patch -p1 -N <~/ping.patch
patching file lib/ping.php

patch -p1 -N <~/poller_interval.patch
patching file lib/database.php
patching file poller.php
           

5.建立使用者修改權限

useradd runct  #cacti的預設管理使用者
chown -R root.root /var/www/html/cacti/  #将屬性修改為root
chown -R runct.runct /var/www/html/cacti/rra/ /var/www/html/cacti/log/ #修改這兩個目錄權限為runct,友善調用,rra存放圖檔,
           

6.建立mysql授權使用者,導入初始化資料

mysql -u root -p  #登入mysql
mysql> create database cactidb default character set utf8;  #建立cactidb資料庫
mysql> grant all on cactidb.* to 'cactiuser'@'localhost' identified by '123';  #為cactidb建立授權使用者
mysql> exit  #退出mysql
mysql -u cactiuser -p cactidb < /var/www/html/cacti.sql #導入初始化資料
           

7.修改cacti配置檔案

vim /var/www/html/cacti/include/config.php
$database_type = "mysql";   #這裡php連接配接mysql的資訊要和在mysql建立的庫資訊相對應
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "123";
$database_port = "3306";
           

8.修改apache配置檔案

vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/cacti"  #修改預設首頁
<Directory "/var/www/html/cacti">  #定義修改後的預設首頁
options None  #關閉特殊權限
DirectoryIndex index.php index.html  #預設為index.php,增加php預設首頁
AddDefaultCharset utf-8  #修改字元集

service httpd restart  #重新開機apache
           

用戶端

1.安裝SNMP

yum -y install  net-snmp net-snmp-utils net-snmp-libs lm_sensors  #安裝SNMP
vim /etc/snmp/snmpd.conf 
40 #       sec.name  source          community
41 com2sec notConfigUser  default       public  #這是預設設定的組,隻有在一個組内才能擷取資料,可以修改也可以不修改

54 #       name           incl/excl     subtree         mask(optional)
55 view    systemview    included   .1.3.6.1.2.1.1
56 view    systemview    included   .1.3.6.1.2.1.25.1.1  #這是聲明的OID,允許擷取那種資訊
view all included .1.  80 #自己聲明(view)一個名字叫all,.1.表示允許通路資訊的範圍,都允許通路

62 access  notConfigGroup ""      any       noauth    exact  all none none  #放行通道,all為上邊聲明的名稱
           

2.啟動SNMP

service snmpd start #啟動snmp
chkconfig snmpd on  #設定開啟自啟
           

浏覽器通路

http://192.168.66.11/install
           

第一步:添加監控主機

監控服務--Cacti監控服務–Cacti

第二步:添加監控主機資訊

監控服務--Cacti監控服務–Cacti

第三步:為監控主機建立監控圖像

監控服務--Cacti監控服務–Cacti

第四步:選擇圖像内容

監控服務--Cacti監控服務–Cacti

第五步:添加倒挂樹形

監控服務--Cacti監控服務–Cacti
監控服務--Cacti監控服務–Cacti
監控服務--Cacti監控服務–Cacti
監控服務--Cacti監控服務–Cacti

到了這一步以後,已經有了監控資源的監控項目,但是還沒有生成監控圖像,是以,我們需要讓監控服務端執行擷取監控資料的指令、

是以執行:

重新整理浏覽器頁面

監控服務--Cacti監控服務–Cacti

發現監控的圖像生成了

然後将擷取資料的指令寫入定時任務即可

*/5 * * * * /usr/bin/php  /var/www/html/cacti/poller.php &>/dev/null
service crond restart 
           

監控伺服器添加插件

添加插件管理器
首先要添加插件管理器
tar -zxf /root/cacti-plugin-0.8.7g-PA-v2.8.tar.gz  #解壓插件管理器的壓縮包
mysql -u cactiuser -p cactidb < /root/cacti-plugin-arch/pa.sql  #将插件資訊導入mysql
cd /var/www/html/cacti
patch -p1 -N < /root/cacti-plugin/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff  #打更新檔,插件管理器已經添加成功
           

浏覽器操作:

第一步

監控服務--Cacti監控服務–Cacti

第二步

監控服務--Cacti監控服務–Cacti

第三步

監控服務--Cacti監控服務–Cacti

到此為止插件管理器已經添加完畢

安裝完插件管理以後會增加兩個檔案

cd /var/www/html/cacti/
ll | grep plugins 
drwxr-xr-x 2 root  root    4096 12月 27 03:11 plugins  #添加插件的目錄
-rw-r--r-- 1 root  root   25848 12月 27 03:11 plugins.php  #插件的網頁檔案
           
添加插件
tar xf monitor-0.8.2.tar.gz -C /var/www/html/cacti/plugins  #将插件解壓到插件管理器的目錄下
cd !$ && ls
index.php  monitor  #monitor為插件解壓後的目錄
cd monitor
mysql -uroot -p cactidb < monitor.sql  #将插件的資料導入到cactidb的資料庫中
           

浏覽器檢視插件是否安裝成功

監控服務--Cacti監控服務–Cacti

由此可見插件已經安裝成功,所有的插件都是這麼安裝

繼續閱讀