cacti+nagios_巨菜版
最近又有需求要部署cacti做監控,當然主要是方便檢視。其實機器不多的話直接看/var/log/sa/裡面的更方便。
部署過程經歷了整整三天,遇到了許多的問題。在群友和baigoogledu的幫助下2010-7-28 17:30終於成功了。
本來想把nagios一起搞上去,但是由於時間緊迫就放下了,不過已經配置好介面了。
這是我目前為止我做過的第二複雜的系統,下面分享一下我的心得。
參考連結:
http://hi.baidu.com/9812658/blog/item/3aaa0b750e524317b051b913.html
http://slien.blog.51cto.com/626289/121929
http://blog.sina.com.cn/s/blog_4e424e2101000b5x.html
http://www.joecen.com/article/cacti/cactifaq/
http://forums.cacti.net/about26540.html&highlight=npc
http://hi.baidu.com/9812658/blog/item/3aaa0b750e524317b051b913.html
http://slien.blog.51cto.com/626289/121929
http://blog.sina.com.cn/s/blog_4e424e2101000b5x.html
http://www.joecen.com/article/cacti/cactifaq/
http://forums.cacti.net/about26540.html&highlight=npc
一、LAMP環境準備
由於cacti與nagios都是基於web的,所以在安裝前要搭建好環境。
1. 安裝apache,原始碼或rpm都可以,沒有特殊要求。(我的環境中是原始碼裝的)
2. 安裝mysql,原始碼或rpm都可以,沒有特殊要求。(我的環境中是rpm裝的)
3. 安裝php,需要注意安裝5.2以上以便支援json(連nagios時需要用到);編譯安裝的話注意要有–enable-sockets不然cacti不能安裝。
能裝新版php的源:
[utterramblings]
name=Jason`s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
由於cacti與nagios都是基於web的,所以在安裝前要搭建好環境。
1. 安裝apache,原始碼或rpm都可以,沒有特殊要求。(我的環境中是原始碼裝的)
2. 安裝mysql,原始碼或rpm都可以,沒有特殊要求。(我的環境中是rpm裝的)
3. 安裝php,需要注意安裝5.2以上以便支援json(連nagios時需要用到);編譯安裝的話注意要有–enable-sockets不然cacti不能安裝。
能裝新版php的源:
[utterramblings]
name=Jason`s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
二、安裝cacti(我做的是原始碼安裝的)
1. 安裝rrdtool
rrdtool本來我也想原始碼裝的,但是發現很複雜,庫也要補很多。因為時間緊就放棄了,改成用rpmforge的源裝了。
#rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
#yum install rrdtool
2. 安裝net-snmp
#yum install net-snmp*
#vi /etc/snmp/snmpd.conf 修改配置檔案:
com2sec notConfigUser 0.0.0.0/0 public
access notConfigGroup “” any noauth exact all none none
view all included .1 80
第一行是開啟一個rocommunity名叫public並可以從任何地方訪問,後兩行和snmp提取cpu記憶體資訊有關。
3. 安裝cacti
#tar zxvf cacti-0.8.7g.tar.gz
#mv cacti-0.8.7g /usr/local/apache/cacti
#useradd -s /sbin/nologin cacti
#passwd cacti
#chown -R cacti:cacti /usr/local/apache/cacti
4. 安裝cacti-spine(以前好像叫cactid,現在叫spine了,用C寫的獲取snmp資訊的程式。)
#tar zxvf cacti-spine-0.8.7g.tar.gz && cd cacti-spine-0.8.7g
#./configure –prefix=/usr/local/cacti-spine –with-mysql=/lamp/database/mysql
(有的文章說加–with-snmp=,但是我寫了就報錯,不寫也成了。)
1. 安裝rrdtool
rrdtool本來我也想原始碼裝的,但是發現很複雜,庫也要補很多。因為時間緊就放棄了,改成用rpmforge的源裝了。
#rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
#yum install rrdtool
2. 安裝net-snmp
#yum install net-snmp*
#vi /etc/snmp/snmpd.conf 修改配置檔案:
com2sec notConfigUser 0.0.0.0/0 public
access notConfigGroup “” any noauth exact all none none
view all included .1 80
第一行是開啟一個rocommunity名叫public並可以從任何地方訪問,後兩行和snmp提取cpu記憶體資訊有關。
3. 安裝cacti
#tar zxvf cacti-0.8.7g.tar.gz
#mv cacti-0.8.7g /usr/local/apache/cacti
#useradd -s /sbin/nologin cacti
#passwd cacti
#chown -R cacti:cacti /usr/local/apache/cacti
4. 安裝cacti-spine(以前好像叫cactid,現在叫spine了,用C寫的獲取snmp資訊的程式。)
#tar zxvf cacti-spine-0.8.7g.tar.gz && cd cacti-spine-0.8.7g
#./configure –prefix=/usr/local/cacti-spine –with-mysql=/lamp/database/mysql
(有的文章說加–with-snmp=,但是我寫了就報錯,不寫也成了。)
#make && make install
5. 安裝cacti-plugin(為以後加外掛做準備)
#tar zvxf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
#cd cacti-plugin-arch
#mv cacti-plugin-0.8.7g-PA-v2.8.diff /usr/local/apache/cacti
#patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
6. 建立資料庫和使用者
#mysql -uroot -p
mysql> create database cacti;
mysql> grant all on cacti.* to `cacti`@`localhost` identified by `xxx`;
mysql> flush privileges;
mysql> use cacti;
mysql> source /usr/local/apache/cacti/cacti.sql
mysql> source /home/soft/cacti+nagios/cacti-plugin-arch/pa.sql
7. 修改cacti-spine的配置檔案
#vi /usr/local/cacti-spine/etc/spine.conf 修改資料庫、使用者名稱、密碼。
8. 修改httpd.conf 記得重啟apache
Alias /cacti /lamp/cacti
<Directory /lamp/cacti>
DirectoryIndex index.php
AllowOverride none
order deny,allow
deny from all
Allow from 127.0.0.1 192.168.0.0/24
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
9. 配置cacti的config.php配置檔案
#vi /usr/local/apache/cacti/include/config.php 修改資料庫、使用者名稱、密碼。
$plugins = array();
$plugins[] = `npc`;
$url_path = “/cacti/”;
前兩行是裝了cacti-plugin之後才有的,那麼寫是方便以後上nagios。第三行那麼寫就行了,具體原因看
5. 安裝cacti-plugin(為以後加外掛做準備)
#tar zvxf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
#cd cacti-plugin-arch
#mv cacti-plugin-0.8.7g-PA-v2.8.diff /usr/local/apache/cacti
#patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
6. 建立資料庫和使用者
#mysql -uroot -p
mysql> create database cacti;
mysql> grant all on cacti.* to `cacti`@`localhost` identified by `xxx`;
mysql> flush privileges;
mysql> use cacti;
mysql> source /usr/local/apache/cacti/cacti.sql
mysql> source /home/soft/cacti+nagios/cacti-plugin-arch/pa.sql
7. 修改cacti-spine的配置檔案
#vi /usr/local/cacti-spine/etc/spine.conf 修改資料庫、使用者名稱、密碼。
8. 修改httpd.conf 記得重啟apache
Alias /cacti /lamp/cacti
<Directory /lamp/cacti>
DirectoryIndex index.php
AllowOverride none
order deny,allow
deny from all
Allow from 127.0.0.1 192.168.0.0/24
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
9. 配置cacti的config.php配置檔案
#vi /usr/local/apache/cacti/include/config.php 修改資料庫、使用者名稱、密碼。
$plugins = array();
$plugins[] = `npc`;
$url_path = “/cacti/”;
前兩行是裝了cacti-plugin之後才有的,那麼寫是方便以後上nagios。第三行那麼寫就行了,具體原因看
幫助。
10.配置cacti自動收集snmp資訊
#vi /etc/crontab
*/5 * * * * root /usr/local/php/bin/php /usr/local/apache/cacti/poller.php > /dev/null 2>&1
聽說第一次不用cacti使用者執行的話,以後就不能寫了,我是用cacti使用者執行一次之後才寫到crontab的。
11.訪問cacti頁面
http://IP/cacti
10.配置cacti自動收集snmp資訊
#vi /etc/crontab
*/5 * * * * root /usr/local/php/bin/php /usr/local/apache/cacti/poller.php > /dev/null 2>&1
聽說第一次不用cacti使用者執行的話,以後就不能寫了,我是用cacti使用者執行一次之後才寫到crontab的。
11.訪問cacti頁面
http://IP/cacti
之後就不多寫了,參考連結裡面非常具體了。
常遇到問題的是:rrdtools資料庫 rra許可權 rrdtools版本 snmp資料獲取 cacti裡seting配置。
我遇到的主要問題就是有圖無資料,後來發現時crontab寫錯了,沒有自動執行導致的。