CentOS上Cacti配置監(jiān)控mysql
本文從工作環(huán)境介紹起,一步一步的介紹了如何在CentOS上安裝配置Cacti,并介紹了如何使用Cacti監(jiān)控mysql。在文章末尾還附上了常見故障排除。
一、準(zhǔn)備工作
環(huán)境:Centos 5.4 x86_64
所需軟件:
- http
- Php
- Php-mysql
- Php-snmp
- Mysql
- Perl-DBD-MySQL
- Php-pdo
- rrdtool
- Net-snmp
- Net-snmp-libs
- Net-snmp-utils
#下載相關(guān)軟件
cd /usr/local/src/ wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
二、環(huán)境介紹
主監(jiān)控機是Centos 5.4 x86_64
主監(jiān)控機IP=10.0.0.52
三、安裝配置
(1)在主監(jiān)控機上安裝apache+php+gd的web環(huán)境,推薦編譯安裝,不再贅述,本處方便起見用yum裝了
yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL
(2)在主監(jiān)控機上安裝rrdtool,rrdtool依賴的包過多,所以選擇增加源,然后用yum安裝
#增加源 vi /etc/yum.repos.d/CentOS-Base.repo #在文件末尾增加以下部分 [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt enabled=1 yum install rrdtool
(3)配置snmp
vi /etc/snmp/snmp.conf #將下邊這行中的default com2secnotConfigUser default public #改為127.0.0.1 com2secnotConfigUser 127.0.0.1 public #將下邊這行中的systemview access notConfigGroup "" any noauth exact systemview none none #改為all access notConfigGroup "" any noauth exact all none none #將下邊這行的注釋“#”號去掉 #view all included .1 80 #重啟snmpd服務(wù) service snmpd restart
(4)安裝cacti
#把解壓后的包移動到你的相應(yīng)的web目錄 tar xvf cacti-0.8.7e.tar.gz mv cacti-0.8.7e /var/www/html/cacti
(5)在數(shù)據(jù)庫中建庫、授權(quán)、導(dǎo)入數(shù)據(jù)庫結(jié)構(gòu)
#注意導(dǎo)入cacti.sql時該文件的路徑 mysql -p mysql> create database cacti; mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option; mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option; mysql> use cacti; mysql> source /var/www/html/cacti/cacti.sql; #配置cacti以連接數(shù)據(jù)庫 vi /var/www/html/cacti/include/config.php
(6)瀏覽器下配置
#用瀏覽器打開 http://10.0.0.52/cacti ,會顯示 cacti的安裝指南,設(shè)置好就不會再出現(xiàn)了。
#點擊 “Next”
#選擇“New Install”,點擊“Next”
#指定 rrdtool、 php、 snmp 工具的 Binary 文件路徑,確保所有的路徑都是顯示“ FOUND”,沒有 “NOT FOUND”的,點擊 Finish 完成安裝。
#Cacti 默認(rèn)的用戶名與密碼是 admin,輸入用戶名與密碼,點擊 login
#為了安全的原因,第一次登錄成功后,cacti 會強制要求你更改一個新的 password ,輸入新密碼并確認(rèn)密碼,點擊 save ,進(jìn)入 cacti 控制臺界面:
#點擊 graphs ,查看cacti 監(jiān)控本機的圖表:
(7)增加入一個計劃任務(wù),使得 cacti 每五分鐘生成一個監(jiān)控圖表。
crontab -e
#加入如下內(nèi)容。注意poller.php的路徑
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
#確保 /var/www/html/cacti/rra/目錄存在
#如果暫時未看到圖表,可以手工執(zhí)行,生成圖表
#php /var/www/html/cacti/poller.php > /dev/null 2>&1
(8)使用 Cacti 監(jiān)控 Linux 主機
#在被監(jiān)控的linux主機上安裝net-snmp
yum install net-snmp vi /etc/snmp/snmpd.conf
#更改以下部分
#將下邊這行中的default
com2secnotConfigUser default public
#改為10.0.0.52(cacti)服務(wù)器的地址)
com2secnotConfigUser 10.0.0.52 public
#將下邊這行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改為all
access notConfigGroup "" any noauth exact all none none
#將下邊這行的注釋“#”號去掉
#view all included .1 80 service snmpd restart
#p#
二、cacti監(jiān)控mysql
wget http://mysql-cacti-templates.googlecode.com/files/mysql-cacti-templates-1.1.2.tar.gz tar -xzvf mysql-cacti-templates-1.1.2.tar.gz cd mysql-cacti-templates-1.1.2 cp ss_get_mysql_stats.php /xok.la/cacti/scripts
可以看到里面有多個監(jiān)控項目,報告監(jiān)控apache和nginx.我這只測試mysql,mysql相關(guān)的就2個文件:
- 模板文件:cacti_host_template_x_db_server_ht_0.8.6i.xml
- 插件:ss_get_mysql_stats.php
修改ss_get_mysql_stats.php 文件 第30行
$mysql_user = 'cacti'; $mysql_pass = 'cacti'; $cache_dir = "var/www/html/cacti/cache/";
設(shè)置準(zhǔn)備監(jiān)控的數(shù)據(jù)庫的賬戶相關(guān)信息
mkdir /var/www/html/cacti/cache/ chmod 777 -R /var/www/html/cacti/cache/
默認(rèn)在獲取的數(shù)據(jù)/tmp/下,會有cacti不能讀取的情況。所以放在cacti目錄來。
二,創(chuàng)建監(jiān)控Mysql需要的賬戶以及權(quán)限
配置MySQL服務(wù)器,讓cacti所在機器能夠訪問MySQL服務(wù)器的狀態(tài)信息,必須擁有”process”權(quán)限。如果要監(jiān)控InnoDB狀態(tài),還必須有”SUPER”權(quán)限。
mysql> grant process,super on *.* to 'cacti'@'%' identified by 'cacti'; mysql> grant all privileges on cacti.* to cacti@"%" identified by "cacti";
三,模板導(dǎo)入
在cacti管理界面(Import Templates)導(dǎo)入cacti_host_template_x_db_server_ht_0.8.6i.xml。
四,添加設(shè)備
創(chuàng)建Graph。在Console選項卡下的左側(cè)菜單欄中選擇Devices,為要監(jiān)控的主機新建一個Devices或選擇已有Devices。
在Associated Graph Templates中添加想要監(jiān)控MySQL狀態(tài)的Graph Templates(如X MySQL Connections GT模板)。
并點擊最上面的Create Graphs for this Host鏈接,在Graph Templates的選擇框中選擇X MySQL Connections GT,然后點擊Create按鈕,出現(xiàn)以下WEB頁。

#p#
常見故障排除
安裝完畢在瀏覽器上無法看到數(shù)據(jù)的png圖片。看apache的log
如果出現(xiàn):
========================
[Thu Feb 09 15:12:24 2006] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico ERROR: opening '/var/www/html/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
PS:解決辦法:關(guān)閉selinux,即可解決問題。
PS:以上無法獲取數(shù)據(jù)圖大多和poller.php,cmd.php權(quán)限有關(guān)。
當(dāng)cacti 有圖沒有數(shù)據(jù)時,而且狀態(tài)為nan的錯誤
PS:這個很可能是snmp的問題,執(zhí)行以下命令,沒有得到如圖的結(jié)果。就說明snmp不支持64位MIB庫。重新編譯安裝snmp
# snmpwalk -c public -v 2c 127.0.0.1 IF-MIB::ifHCInOctets IF-MIB::ifHCInOctets.1 = Counter64: 7437357 IF-MIB::ifHCInOctets.2 = Counter64: 353773IF-MIB::ifHCInOctets.3 = Counter64: 0
PS:被監(jiān)控主機無法獲得snmp信息,還有可能是對方主機snmp版本和當(dāng)前主機的snmp版本不一致導(dǎo)致的。
PS:rrdtools版本要一致,特別是在升級cacti時候。版本不一致,可能rra數(shù)據(jù)格式不同。就無法處理。
排錯思路
1,查看log下的日志文件。一般那里會有提示
2,測試SNMP是不是工作正常 snmpwalk -v 2c -c public hostIP if正常的話會出現(xiàn)一些數(shù)據(jù)。不正常會出現(xiàn)一些錯誤,也會有對應(yīng)的錯誤提示。
3,自動運行poller.php沒有。有沒有加入cacti的的用戶。。有沒有給cacti用戶寫入rra/ log/的權(quán)限。。
4,crontab –u cactiuser –e 為cactiuser加上自動運行poller.php的任務(wù):*/5 * * * * root /usr/local/bin/php /usr/local/share/cacti/poller.php /dev/null 2>&1
5分鐘刷新一次數(shù)據(jù)。你也可以根據(jù)需要還設(shè)置。
5。把cacti目錄里的cmd.php和poller.php文件加下運行的權(quán)限。
原文:http://www.unixwind.com/09/05/620.html
【編輯推薦】