監控服務–Cacti
Cacti簡介
Cacti是一套基于PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。它通過snmpget來擷取資料,使用 RRDtool繪畫圖形,以監控流量和性能為主。Cacti主要是提供了一個監控的架構,真正資料收集的是SNMP,資料展示的是TTDTOOL,Cacti的延時是比較大的,預設5分鐘重新整理一次。
Cacti架構:
Cacti原理
1.構造
1)Snmp
Simple Network Management Protocal(簡單網絡管理協定):采集資料
原理:在每個被監控的主機或節點上都運作一個agent,用來收集這個節點的所有相關資訊,同時監聽snmp的port(161)。
安裝:分為監控機和被監控機:監控機安裝net-snmp-utils,被監控端安裝net-snmp
SNMP工作方式:
SNMP監控資料類型的選擇(OID)
舉個例子:我如果要收集系統資訊,我需要在配置檔案寫OID即 .1.3.6.1.6,這是一個樹狀圖結構,需要一層一層來定位,收集的資訊類型需要自己來定義
2)RRDTool
RRDTool:資料存儲和繪圖
工作方式:
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
第一步:添加監控主機
第二步:添加監控主機資訊
第三步:為監控主機建立監控圖像
第四步:選擇圖像内容
第五步:添加倒挂樹形
到了這一步以後,已經有了監控資源的監控項目,但是還沒有生成監控圖像,是以,我們需要讓監控服務端執行擷取監控資料的指令、
是以執行:
重新整理浏覽器頁面
發現監控的圖像生成了
然後将擷取資料的指令寫入定時任務即可
*/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 #打更新檔,插件管理器已經添加成功
浏覽器操作:
第一步
第二步
第三步
到此為止插件管理器已經添加完畢
安裝完插件管理以後會增加兩個檔案
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的資料庫中
浏覽器檢視插件是否安裝成功
由此可見插件已經安裝成功,所有的插件都是這麼安裝