1、準備工做php
環境:Centos 5.4 x86_64html
所需軟件:mysql
http Php Php-mysql Php-snmp Mysql Perl-DBD-MySQL Php-pdo rrdtool Net-snmp Net-snmp-libs Net-snmp-utils
下載相關軟件linux
cd /usr/local/src/ wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
2、環境介紹nginx
主監控機是Centos 5.4 x86_64
主監控機IP=10.0.0.52web
3、安裝配置sql
(1)在主監控機上安裝apache+php+gd的web環境,推薦編譯安裝,再也不贅述,本處方便起見用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)在主監控機上安裝rrdtool,rrdtool依賴的包過多,因此選擇增長源,而後用yum安裝apache
增長源centos
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服務
service snmpd restart
(4)安裝cacti
把解壓後的包移動到你的相應的web目錄
tar xvf cacti-0.8.7e.tar.gz mv cacti-0.8.7e /var/www/html/cacti
(5)在數據庫中建庫、受權、導入數據庫結構
注意導入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以鏈接數據庫
vi /var/www/html/cacti/include/config.php
(6)瀏覽器下配置
用瀏覽器打開 http://10.0.0.52/cacti ,會顯示 cacti的安裝指南,設置好就不會再出現了。
點擊 「Next」
選擇「New Install」,點擊「Next」
指定 rrdtool、 php、 snmp 工具的 Binary 文件路徑,確保全部的路徑都是顯示「 FOUND」,沒有 「NOT FOUND」的,點擊 Finish 完成安裝。
Cacti 默認的用戶名與密碼是 admin,輸入用戶名與密碼,點擊 login
爲了安全的緣由,第一次登陸成功後,cacti 會強制要求你更改一個新的 password ,輸入新密碼並確認密碼,點擊 save ,進入 cacti 控制檯界面:
點擊 graphs ,查看cacti 監控本機的圖表:
(7)增長入一個計劃任務,使得 cacti 每五分鐘生成一個監控圖表。
crontab -e
加入以下內容。注意poller.php的路徑
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
確保 /var/www/html/cacti/rra/目錄存在
若是暫時未看到圖表,能夠手工執行,生成圖表
php /var/www/html/cacti/poller.php > /dev/null 2>&1
(8)使用 Cacti 監控 Linux 主機
在被監控的linux主機上安裝net-snmp
yum install net-snmp
vi /etc/snmp/snmpd.conf
更改如下部分
將下邊這行中的default
com2secnotConfigUser default public
改成10.0.0.52(cacti)服務器的地址)
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
4、配置cacti監控mysql
(一)安裝並配置mysql-cacti模板
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
能夠看到裏面有多個監控項目,報告監控apache和nginx.我這隻測試mysql,mysql相關的就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/";
設置準備監控的數據庫的帳戶相關信息
mkdir /var/www/html/cacti/cache/ chmod 777 -R /var/www/html/cacti/cache/
默認在獲取的數據/tmp/下,會有cacti不能讀取的狀況。因此放在cacti目錄來。
(二)建立監控Mysql須要的帳戶以及權限
配置MySQL服務器,讓cacti所在機器可以訪問MySQL服務器的狀態信息,必須擁有」process」權限。若是要監控InnoDB狀態,還必須有」SUPER」權限。
mysql> grant process,super on *.* to 'cacti'@'%' identified by 'cacti'; mysql> grant all privileges on cacti.* to cacti@"%" identified by "cacti";
(三)模板導入
在cacti管理界面(Import Templates)導入cacti_host_template_x_db_server_ht_0.8.6i.xml。
(四)添加設備
建立Graph。在Console選項卡下的左側菜單欄中選擇Devices,爲要監控的主機新建一個Devices或選擇已有Devices。
在Associated Graph Templates中添加想要監控MySQL狀態的Graph Templates(如X MySQL Connections GT模板)。
並點擊最上面的Create Graphs for this Host連接,在Graph Templates的選擇框中選擇X MySQL Connections GT,而後點擊Create按鈕,出現如下WEB頁。
5、常見故障排除
安裝完畢在瀏覽器上沒法看到數據的png圖片。看apache的log
若是出現:
========================
[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:解決辦法:關閉selinux,便可解決問題。
PS:以上沒法獲取數據圖大多和poller.php,cmd.php權限有關。
當cacti 有圖沒有數據時,並且狀態爲nan的錯誤
PS:這個極可能是snmp的問題,執行如下命令,沒有獲得如圖的結果。就說明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:被監控主機沒法得到snmp信息,還有多是對方主機snmp版本和當前主機的snmp版本不一致致使的。
PS:rrdtools版本要一致,特別是在升級cacti時候。版本不一致,可能rra數據格式不一樣。就沒法處理。
排錯思路
1,查看log下的日誌文件。通常那裏會有提示
2,測試SNMP是否是工做正常 snmpwalk -v 2c -c public hostIP if正常的話會出現一些數據。不正常會出現一些錯誤,也會有對應的錯誤提示。
3,自動運行poller.php沒有。有沒有加入cacti的的用戶。。有沒有給cacti用戶寫入rra/ log/的權限。。
4,crontab –u cactiuser –e 爲cactiuser加上自動運行poller.php的任務:*/5 * * * * root /usr/local/bin/php /usr/local/share/cacti/poller.php /dev/null 2>&1
5分鐘刷新一次數據。你也能夠根據須要還設置。
5。把cacti目錄裏的cmd.php和poller.php文件加下運行的權限。
轉自:http://www.unixwind.com/09/05/620.html