服務器監控系統cacti

工作原理
Cacti可以從邏輯上分爲三個部分

  • 第一部分:被檢測的對象,也就是客戶端。
  • 第二部分:檢測平臺,也就是服務器端。
  • 第三部分:管理平臺。

Cacti採用了兩種結構實現功能,一種是C/S結構主要是實現服務器到客戶端監控另外一種就是B/S主要完成對Cacti平臺的管理,從下圖我們可以看出,管理端是在Web上對Cacti進行管理。

Cacti的工作過程。
首先通過LAMP平臺部署Cacti監控工具,之後通過客戶端的web登錄Cacti進行對其他客戶端的設置,可以從下圖看到Cacti採集數據時必須要使用SNMP協議來連接客戶端進而能夠採集數據,也就是說客戶端必須支持SNMP協議,監控之後通過RRDtool來生成圖表。
.

Cacti的工作結構
C/S模式,採集監測數據
B/S模式,管理監測平臺

.
測試LAMP平臺
cacti服務器監控系統與windows操作系統中的“性能監視器”屬於同一類,都是爲了監控cpu佔用,內存使用,運行進程數,磁盤空間,網卡流量等各種數據。
但不同的是,cacti不僅可以監控linux,也可以監控windows服務器,路由器,交換機等網絡設備,主要基於snmp協議來蒐集數據。

Cacti本身是一個web界面的軟件,通過調用net-snmp工具來採集檢測數據,並結合RRDtool(輪詢數據庫工具)記錄數據並繪製圖片,最終以web頁面展示給管理員用戶。cacti需要運行在lamp平臺上,配置簡單,直觀,而且支持插件和數據模板,可擴展其功能。
.
配置Cacti服務器

  • . 安裝各種支持軟件
    LAMP平臺、Net-SNMP、RRDtool
  • 部署並配置cacti套件
    部署源碼包、建立數據庫表、調整
    配置文件
  • 完成初始化安裝
    根據網頁安裝嚮導進行
  • 配置Cacti客戶機
    Linux被控主機的設置
    安裝net-snmp、lm_sensors包
    簡單配置snmpd,並啓動服務

使用Cacti的Web控制檯

  1. 登錄Web控制檯
  2. 添加被控設備/主機,設置監控項目
  3. 生成監測圖像
  4. 定期採集監測數據
  5. 查看監測結果

.
環境如下;
cacti:192.168.1.1
mysql:192.168.1.2
客戶端:192.168.1.3

服務器的配置
配置cacti需要LAMP環境之前的文章有介紹,本篇不做解釋

開啓httpd服務開啓mysql服務
[root@centos1 /]#  service httpd start
[root@centos1 /]# service mysqld start

.
需要開啓例外

[root@centos1 /]#  iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@centos1 /]#  iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

.

爲mysql設置一個密碼
[root@centos1 /]#  mysqladmin -u root -p password 'pwd123'

.

編寫一個php測試頁

[root@centos1 /]#  vim /var/www/html/text.php
<?php
phpinfo();
?>

.
[root@centos1 /]# service httpd restart
.
在瀏覽器訪問測試

服務器監控系統cacti
.
安裝net-snmp-utils軟件包
Cacti平臺通過snmp協議採集檢測數據,這些工具程序由net-snmp-utils軟件包提供,安裝方法如下。

[root@centos1 /]#  yum -y install net-snmp net-snmp-utils
.

[root@centos1 /]#  service snmpd start
[root@centos1 /]#  chkconfig snmpd on

.
安裝rrdtool軟件包
Rrdtool軟件包主要用於數據記錄和圖表繪製。
首先安裝依賴包:

[root@centos1 /]#  umount /dev/cdrom /media/
[root@centos1 /]#  mount /dev/cdrom /media/
[root@centos1 /]#  yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel
libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel
perl-CPAN perl per-devel

[root@centos1 /]#  cd /media/

.
裝rddtool源碼包:

[root@centos1 media]#  ls
[root@centos1 media]#   tar zxf rrdtool-1.4.8.tar.gz -C /root/
[root@centos1 /]#  cd /root/rrdtool-1.4.8/
[root@centos1 rrdtool-1.4.8]#  ./configure --prefix=/usr/local/ && make && make install

.
部署cacti,設置數據庫連接
部署cacti源碼包(將下載的cacti源碼包釋放到web服務器的網頁目錄)

[root@centos1 /]#  cd /media/
[root@centos1 media]#  tar zxf cacti-0.8.8b.tar.gz -C /usr/src/
[root@centos1 media]#  cd /usr/src/
[root@centos1 src]#  mv cacti-0.8.8b/ /var/www/html/cacti

.
添加一個用來讀寫檢測數據的用戶賬戶,並調整目錄的屬主,以便正常讀取及寫入數據。

[root@centos1 src]#  useradd cacti
[root@centos1 src]#  chown -R cacti:cacti /var/www/html/cacti

.
建立數據庫,表結構(創建用於cacti監測平臺的數據庫,並授權一個數據庫用戶cacti,然後使用cacti源碼目錄下的cacti.sql腳本,導入預設的各種數據表)

[root@centos1 /]#  mysql -u root -p

mysql> CREATE DATABASE cacti DEFAULT CHARACTER SET utf8;

mysql> FRANT all ON cacti.* TO 'cacti'@'localhost' IDENTIFDED BY 'cacti';
[root@centos1 /]#  cd /var/www/html/cacti/
[root@centos1 /]#  mysql -u cacti -p cacti < cacti.sql 
[root@centos1 /]#  mysql -u cacti -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti              |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
mysql> use cacti;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
........
+---------------------------+
52 rows in set (0.00 sec)

.
調整cacti配置文件

[root@centos1 /]#  vim include/config.php 

$database_type = "mysql";       //指定連接的類型
$database_default = "cacti";        //連接的庫
$database_hostname = "localhost";   //登陸源
$database_username = "cacti";       //用戶名
$database_password = "cacti";       //用戶密碼
$database_port = "3306";        /連接的端口
$database_ssl = false;          //不啓用ssl

/*
   Edit this to point to the default URL of your Cacti install
   ex: if your cacti install as at http://serverip/cacti/ this
   would be set to /cacti/
*/
$url_path = "/";            //指定cacti的根目錄這個目錄是cacti的文件目錄下,所以後面還需要修改httpd支配文件
[root@centos1 /]#  vim /etc/httpd/conf/httpd.conf 

[root@centos1 cacti]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/cacti"  //292行
<Directory "/var/www/html/cacti">   //317行
    Options Indexes none        //331行
     AllowOverride None     //338行
    Order allow,deny        //343行
    Allow from all          //344行
</Directory>                //346行
DirectoryIndex  index.php  index.html index.html.var //402行
AddDefaultCharset UTF-8         //759行
[root@centos1 /]#  service httpd restart
[root@centos1 /]#  netstat -anpt | grep 80
tcp 0   0 0.0.0.0:58052
tcp 0   0 :::80

.

服務器配置完成
.
(客戶端)
初始化cacti系統
在瀏覽器中輸入http://192.168.1.1,然後根據提示安裝。

服務器監控系統cacti
.
服務器監控系統cacti
111
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.

.

到此爲止服務器配置完成了,下面開始配置一臺linux客戶端(mysql主192.168.1.2),然後使用cacti監控客戶端。

配置客戶端(被控端snmpd)
無論是路由器、交換機、還是linux或windows服務器,只要正確支持SNMP協議,並允許Client服務器採集數據,就能夠對其進行監測。下面僅介紹在linux服務器中啓用SNMP支持並設置共同體名的簡單方法。
ps:共同體名,值的是一種驗證機制,所有的client都必須使用同一個共同體名,就像我們之前學習的hsrp的組一樣,只有組號相同才能是一個組的,這裏也是如此,只有共同體名相同的時候,Cacti才能通過這個共同體名對client進行監控。
需要安裝net-snmp、lm_sensors軟件包,然後通過修改其配置文件/etc/snmp/snmpd.conf,並啓動snmpd服務,並建立規則,默認監聽UDP的161號端口。

.
(mysql主)
.

[root@centos1 /]#   yum -y install net-snmp lm_sensors
[root@centos1 /]#  vim /etc/yum.repos.d/index.repo

com2sec notConfigUser  192.168.1.1       public     //41行
access  notConfigGroup ""      any       noauth    exact all none none      //62行
view all    included  .1               80       //85行

.
第41行 192.168.1.1指的是Cacti的服務器IP(默認是default),表示允許其查詢本機數據,public指的就是共同體名,用來識別及驗證
第62行 all表示開放所有的SNMP查詢權限(默認是 SystemView)
第85行 去掉註釋之後,以便支持各種查詢。
啓動服務

[root@centos1 /]#  service snmpd start
[root@centos1 /]#  netstat -anpt | grep "snmpd"
[root@centos1 /]#  netstat -anpu | grep "snmpd"

.

開例外
[root@centos1 /]#  iptables -I INPUT -p udp --dport 161 -j ACCEPT

.
使用cacti的web控制檯(下面以5個部分說明)

  • 登錄Web控制檯
  • 添加被控設備/主機,設置監控項目
  • 生成監測圖像
  • 定期採集監測數據
  • 查看監測結果
    .
    登錄web控制檯
    在瀏覽器中輸入http://192.168.1.1,輸入用戶名和密碼登錄,默認都是admin

.
服務器監控系統cacti
.
服務器監控系統cacti

添加被控設備/主機,設置監控項目
單擊導航欄中的“management(管理)”下的“devices(設備)”,可以管理被控設備或主機。點擊devices---Add

服務器監控系統cacti

服務器監控系統cacti

.
服務器監控系統cacti
.

然後單擊右下角的“create”創建,將自動連接目標執行snmp查詢

設置要監測的項目
成功連接被控端後會看到save successful提示,如下圖:

服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
生成檢測圖像
創建圖像
單擊導航欄中create下的new graphs(圖表),選擇被控端,選中最需要的圖像條目,最後單擊下方的create按鈕完成創建。
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti

添加圖像至監測樹
單擊導航欄中的management下的graph trees,在單擊default tree就可以對默認的圖像監測樹進行管理。單擊右側的add,可以向監測樹種添加“樹項目”,完成之後點擊create,並點擊save保存。

服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti

定期採集監測數據
Cacti系統通過poller.php頁面採集監測數據,可以結合計劃任務定期採集(默認的刷新間隔是5分鐘)
執行完成之後,會出現很多的提示信息,一般情況下是指時區不正確,建議將時區改爲Asia/Chongqing
由於是php報的錯誤,所以通過php.ini主配置文件解決這個問題

[root@centos1 cacti]# vim /etc/php.ini
date.timezone = Asia/Chongqing   //946行去掉註釋
[root@centos1 /]#  crontab -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php 
.
[root@centos1 /]#  crontab -u cacti -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null

.

刷新
[root@centos1 /]#  /usr/bin/php /var/www/html/cacti/poller.php 

查看監測結果
單擊cacti管理控制檯左上方的graphs標籤,然後展開左側的default tree樹,選擇被控主機後即可看到各監測圖像。

服務器監控系統cacti

安裝percona-mysql-monitor插件
Cacti工具默認的模板只能監控機器的cpu,內存和磁盤等信息,如果想要監控mysql,就需要安裝插件,操作如下。
解壓縮軟件到目標位置

[root@centos1 /]#  umount /dev/cdrom /media/
[root@centos1 /]#  mount /dev/cdrom /media/
[root@centos1 /]#  cd /media/
[root@centos1 /]#  ls
[root@centos1 /]#  tar zxf percona-monitoring-plugins-1.1.4.tar.gz -C /usr/src/
[root@centos1 /]#  cd /usr/src/percona-monitoring-plugins-1.1.4/
[root@centos1 /]#  ls
[root@centos1 /]#  cd cacti/scripts/
[root@centos1 /]#  cp ss_get_mysql_stats.php /var/www/html/cacti/script

.
在mysql數據庫授權用戶

[root@centos1 /]# mysql -u root -p
mysql> grant process , super on *.* to cactiuser@'192.168.1.1' identified by 'cactiuser';
.
[root@centos1 /]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
.

爲設備添加項目
在Cacti管理界面中進行添加,點擊Consose——Import Templates——選擇文件, 將宿主機下的壓縮目錄解壓到一個文件夾內,選擇解壓後的cacti\templat目錄下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最後單擊import導入。

服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.
服務器監控系統cacti
.

服務器監控系統cacti

[root@centos1 /]#  /usr/bin/php /var/www/html/cacti/poller.php 
[root@centos1 /]#  /usr/bin/php /var/www/html/cacti/poller.php --force
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章