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写错了,没有自动执行导致的。
本文转自 sharkyan 51CTO博客,原文链接:http://blog.51cto.com/sharkyan/362129,如需转载请自行联系原作者