Liunx運維監控_shark巨菜_cacti篇
原題: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
一、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(我做的是源碼安裝的)
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。第三行那麼寫就行了,具體原因看幫助。
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寫錯了,沒有自動執行導致的。