CentOS下搭建cacti監控


1、cacti 監控軟件簡介php

1. cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,而後用rrdtool儲存和更新數據,當用戶須要查看數據的時候用rrdtool生成圖表呈現給用戶。所以,snmprrdtoolcacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。mysql

2. Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ipsnmp團體名、端口號、模板信息等變量linux

3. snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(RoundRobinArchive),它可以存儲的數據筆數在建立時就已經定義。web

2、搭建cacti 監控環境sql

1、搭建環境介紹:數據庫




服務端瀏覽器

CentOS服務器

*.*.*.*網絡

客戶端dom

任意網絡設備

192.168.1.110

二、關閉iptables和SElinux

[root@localhost configs]# iptables -F
[root@localhost configs]# setenforce 0

3cacti 服務端操做:

[root@localhost/]# yum install  epel-release   //安裝epel擴展源,爲下面安裝cacti作準備

[root@localhost/]# yum install -y  httpd php php-mysql mysql mysql-server mysql-devel php-gd  libjpeg libjpeg-devel libpng libpng-devel  //安裝cacti相關的php、mysql軟件

[root@localhost/]# yum install -y cacti  net-snmp  net-snmp-utils  rrdtool  //安裝cactinet-snmprrdtool

 

這裏cacti的安裝能夠用yum 直接安裝,也能夠本身經過wget 下載tar.gz相關安裝包下載,惟一的區別是yum安裝,在配置cacti.conf文件時,yum是自動生成的,只須要修改裏面相應的參數,下面配置會有說明,這裏簡單的說下經過解壓包安裝時怎麼來手動配置cacti.conf文件。

首先先說明下,若是沒有配置cacti.conf文件,咱們在進入cacti的安裝嚮導時會報錯,URL不正確之類信息。

因此這是必須配置的,網上的文章十有八九都是抄襲,沒有這塊的說明,有的也說的不詳細,主要前期本身在這一塊也是折騰了很久,so特此說明一下:

下面說下如何配置手動配置cacti.conf文件

進入到[root@localhost/]# cd /etc/httpd/conf.d/目錄下

手動重建cacti.conf文件

[root@localhost/]# vi cacti.conf 

Alias /cacti/ "/usr/share/cacti/"


<Directory "/usr/share/cacti">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

而後保存退出

這樣配置之後就能夠進入cacti安裝嚮導了。


啓動服務:

[root@localhost/]# /etc/init.d/mysqld start

[root@localhost/]# /etc/init.d/httpd start

[root@localhost/]# /etc/init.d/snmpd start

 

更改httpd配置文件:

[root@localhost/]# vi /etc/httpd/conf.d/cacti.conf  //將配置文件的"Deny from all" 改成  "Allow from all"

[root@localhost/]# /etc/init.d/httpd restart

 

導入數據建立cacti庫:

[root@localhost/]# mysql -uroot -e "create database cacti"

[root@localhost/]# mysql -uroot -e "grant all on cacti.* to 'cacti'@'127.0.0.1' identified by 'cacti';"

[root@localhost/]# mysql -uroot  cacti < /usr/share/doc/cacti-1.1.19/cacti.sql 

 

編輯cacti配置文件:

[root@localhost/]# vi /usr/share/cacti/include/config.php

$database_type ="mysql"; 數據庫名稱

$database_default= "cacti";數據庫名稱

$database_hostname= "127.0.0.1";主機名稱

$database_username= "cacti";數據庫用戶名

$database_password= "cacti";數據庫密碼

$database_port ="3306";

$database_ssl =false;

*注意*:這塊的信息必須和數據用戶信息、密碼對應,負責會報錯:

+---------------------------------------+
| query                                 |
+---------------------------------------+
| User: 'cacti'@'127.0.0.1';            |
| User: 'root'@'127.0.0.1';             |
| User: ''@'localhost';                 |
| User: 'cactiuser'@'localhost';        |
| User: 'root'@'localhost';             |
| User: ''@'localhost.localdomain';     |
| User: 'root'@'localhost.localdomain'; |
+---------------------------------------+

 

$database_type ="mysql"; 數據庫名稱

$database_default= "cacti";數據庫名稱

$database_hostname= "127.0.0.1";主機名稱

$database_username= "cacti";數據庫用戶名

$database_password= "cacti";數據庫密碼

$database_port ="3306";

$database_ssl =false;

 

存在用戶名密碼不匹配的,參照一下修改:

查看MYSQL數據庫中全部用戶:

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
+---------------------------------------+
| query                                 |
+---------------------------------------+
| User: 'cacti'@'127.0.0.1';            |
| User: 'root'@'127.0.0.1';             |
| User: ''@'localhost';                 |
| User: 'cactiuser'@'localhost';        |
| User: 'root'@'localhost';             |
| User: ''@'localhost.localdomain';     |
| User: 'root'@'localhost.localdomain'; |
+---------------------------------------+

修改密碼,刷新權限:

mysql> grant all on cacti.* to 'cacti'@'127.0.0.1' identified by '321321';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)重啓mysql httpd服務:



在安裝cacti時,有一段報錯

1

ERROR: Your Cacti database login account does not have access to the MySQL TimeZone database. Please provide the Cacti database account "select" access to the "time_zone_name" table in the "mysql" database, and populate MySQL's TimeZone information before proceeding.

解決辦法:登陸mysql,執行如下內容



mysql> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'cactiwhsir';

mysql> flush privileges;

而後發現又報錯


ERROR: Your MySQL TimeZone database is not populated. Please populate this database before proceeding.


解決辦法:登陸mysql,執行如下內容

mysql_tzinfo_to_sql /usr/share/zoneinfo/Asia/Shanghai Shanghai | mysql -u root -p mysql

 

調整httpd配置,將cacti源碼目錄做爲網站根目錄

Vi/etc/httpd/conf/httpd.conf

# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/usr/share/cacti/"

 

wKioL1ej6w-QugILAADMUjwvt4w032.png-wh_50

3web訪問cacti並安裝

http://ip/cact

 

wKioL1ej6xDwCL32AAImWnyzFBE467.png-wh_50

wKiom1ej6xCgZkTEAADW9eFfTjY937.png-wh_50

wKioL1ej6xGymgduAAK2dNSDim8566.png-wh_50


上面三步按照系統默認步驟點擊;

wKiom1ej6xGhNrPHAADAOQDM8DE463.png-wh_50

第一次進入cacti輸入管理密碼時賬號和密碼均爲admin,輸入後系統默認要求用戶強制更改密碼;

 

wKioL1ej6xLiZWHEAADWh0S3QQs520.png-wh_50

4、執行poller.php, 生成圖形,加入計劃任務

[root@localhost/]# /usr/bin/php /usr/share/cacti/poller.php

OK u:0.01 s:0.02 r:0.67

OK u:0.01 s:0.02 r:0.67

OK u:0.01 s:0.02 r:0.71

OK u:0.01 s:0.02 r:0.71

OK u:0.01 s:0.02 r:0.78

OK u:0.01 s:0.02 r:0.78

OK u:0.01 s:0.02 r:0.84

OK u:0.01 s:0.02 r:0.84

OK u:0.01 s:0.02 r:1.00

OK u:0.01 s:0.02 r:1.00

06/17/2015 02:53:39 AM - SYSTEM STATS: Time:1.2623 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5

[root@localhost/]# crontab -e //加入cron服務,讓圖片上的流量定時變更

*/5 * * * *  /usr/bin/php /usr/share/cacti/poller.php

 

5、如下是在客戶端:

[root@hpf-linux mysql]# yum install -y net-snmp lm_sensors

[root@hpf-linux/]# vi /etc/snmp/snmpd.conf //修改syslocation以及syscontact, 其中syslocation 能夠寫監控客戶機的ipsyscontact寫管理員郵箱

syslocation 192.168.1.110

syscontact Root aming@linux.com

同時在配置文件內按如下修改,若不修改則會形成在添加網卡檢測時會沒法找到網卡選項;

view   systemview    included   .1.3.6.1.2.1.1

修改成:

view   systemview    included   .1.3.6.1.2.1

[root@hpf-linux/]# /etc/init.d/snmpd start

正在啓動 snmpd                                           [肯定]

 

6、瀏覽器下配置cacti 檢測

進入瀏覽器登陸cacti管理後臺,點console , 再點New Graphs在右上角點」Create New Host「

wKiom1ej6xPjCOCJAAFeVRoChHo354.png-wh_50

Description  寫監控客戶機的名字或自定義

Hostname   寫被監控客戶機ip

Host Template ucd/net  SNMP Host

SNMP Version Version 2

點右下角的create 

wKioL1ej6xbh7m1iAAZy3CoK-EM316.png-wh_50

出現snmp的介紹信息後,點右上角的」CreateGraphs for this Host「;

wKiom1ej6xfRvtI2AAIM-vpfDq4169.png-wh_50

在下面框中選擇要監控的硬件信息或者網卡,好比選擇eth0,eth1, 在最右側小方塊裏打對勾,而後點右下角的create;

wKiom1ej6xnia3mjAAVcebrbFlQ424.png-wh_50

Graph Types: 再選擇 Graph Template Based,在下面的框中,選擇你要監控的項目,好比Unix- Load Average,在右側小方塊中打對勾,而後點右下角的createwKioL1ej6xvjSpzmAANZjyCnIck420.png-wh_50

 點左側的Graph Trees ,選中」DefaultTree「,點右上角的Add;

 

wKiom1ej6xvBxA-TAADOZZ1m_oE141.png-wh_50

Tree Item Type 選擇 」Host「,Host 選擇咱們剛剛增長的那個機器ip,點右下角的create;

點左上角的Graphs按鈕 ,在左側能夠看到,Defaut Tree下面已經增長了咱們剛剛添加的主機,圖形一開始不會那麼快出來,要等一小會才能夠。

 

wKiom1ej6xzQURdUAAFuj3sPolc181.png-wh_50

********************************************************************************************************

不出圖,主機狀態爲unkonwn,snmp等其餘信息都正常

多是時間問題引發的,這時候能夠看看cacti的日誌,注意看開始時間和結束時間(這是因爲系統每過10分鐘會和時間服務器同步一次時間)。

這樣會致使數據庫記錄poller的執行時間出問題

這時候查看下poller的始終時間,始終時間必定要正確這樣會致使poller進程中止工做,直到系統時間超過了start_time,poller進程纔回開始工做,圖像才能出來!這裏要特別說明下:不能簡單地修改數據庫poller_time表裏的時間,由於數據庫裏面還有好多表也記錄了採集各類數據的時間。

wKioL1gS0JuDaIGAAAAVzjSHs38035.png-wh_50

因此解決辦法有兩個:
1 等系統時間超過start_time(過了下午12點10),一切恢復正常(若是你有耐心 )。
2 若是如今系統的時間不正確先把系統時間修改正確,而後刪除/usr/share/cacti/rra下面的全部文件,最後強制執行poller程序從新生成/usr/share/cacti/rra下面的全部文件。操做過程以下:

[root@zz cacti]# rm -rf /usr/share/cacti/rra/*

[root@zz cacti]# /usr/bin/php /usr/share/cacti/poller.php --force
OK u:0.00 s:0.00 r:0.05
OK u:0.00 s:0.00 r:0.05
OK u:0.00 s:0.00 r:0.07
OK u:0.00 s:0.00 r:0.07
OK u:0.00 s:0.00 r:0.11
OK u:0.00 s:0.00 r:0.11
OK u:0.00 s:0.00 r:0.17
OK u:0.00 s:0.00 r:0.17
OK u:0.00 s:0.00 r:0.27
OK u:0.00 s:0.00 r:0.27
OK u:0.00 s:0.00 r:0.29
OK u:0.00 s:0.00 r:0.29
OK u:0.00 s:0.00 r:0.30
OK u:0.00 s:0.00 r:0.30
OK u:0.00 s:0.01 r:0.31
OK u:0.00 s:0.01 r:0.32
OK u:0.00 s:0.01 r:0.34
OK u:0.00 s:0.01 r:0.34
10/28/2016 11:58:02 AM - SYSTEM STATS: Time:0.4926 Method:cmd.php Processes:1 Threads:N/A Hosts:4 HostsPerProcess:4 DataSources:13 RRDsProcessed:9
10/28/2016 11:58:02 AM - WEATHERMAP: Poller[0] Weathermap 0.97a starting - Normal logging mode. Turn on DEBUG in Cacti for more information

10/28/2016 11:58:02 AM - WEATHERMAP: Poller[0] STATS: Weathermap 0.97a run complete - Fri, 28 Oct 16 11:58:02 +0800: 0 maps were run in 0 seconds with 0 warnings.

注意必定要先刪除usr/share/cacti/rra/下的全部文件在執行

/usr/bin/php /usr/share/cacti/poller.php --force,否則有些rra會報時間錯誤!等一會久違的圖像就出來啦...

相關文章
相關標籤/搜索