天天看点

cacti+nagios_巨菜版

cacti+nagios_巨菜版

    最近又有需求要部署cacti做监控,当然主要是方便查看。其实机器不多的话直接看/var/log/sa/里面的更方便。

    部署过程经历了整整三天,遇到了许多的问题。在群友和baigoogledu的帮助下2010-7-28 17:30终于成功了。

    本来想把nagios一起搞上去,但是由于时间紧迫就放下了,不过已经配置好接口了。

    这是我目前为止我做过的第二复杂的系统,下面分享一下我的心得。

参考链接:

<a href="http://hi.baidu.com/9812658/blog/item/3aaa0b750e524317b051b913.html">http://hi.baidu.com/9812658/blog/item/3aaa0b750e524317b051b913.html</a>

<a href="http://slien.blog.51cto.com/626289/121929">http://slien.blog.51cto.com/626289/121929</a>

<a href="http://blog.sina.com.cn/s/blog_4e424e2101000b5x.html">http://blog.sina.com.cn/s/blog_4e424e2101000b5x.html</a>

<a href="http://www.joecen.com/article/cacti/cactifaq/">http://www.joecen.com/article/cacti/cactifaq/</a>

<a href="http://forums.cacti.net/about26540.html&amp;highlight=npc">http://forums.cacti.net/about26540.html&amp;highlight=npc</a>

一、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 &amp;&amp; cd cacti-spine-0.8.7g

#./configure --prefix=/usr/local/cacti-spine  --with-mysql=/lamp/database/mysql

(有的文章说加--with-snmp=,但是我写了就报错,不写也成了。)

#make &amp;&amp; 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 &lt; cacti-plugin-0.8.7g-PA-v2.8.diff

6. 创建数据库和用户

#mysql -uroot -p

mysql&gt; create database cacti;

mysql&gt; flush privileges;

mysql&gt; use cacti;

mysql&gt; source /usr/local/apache/cacti/cacti.sql

mysql&gt; 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

&lt;Directory /lamp/cacti&gt;

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

&lt;/Directory&gt;

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 &gt; /dev/null 2&gt;&amp;1

听说第一次不用cacti用户执行的话,以后就不能写了,我是用cacti用户执行一次之后才写到crontab的。

11.访问cacti页面

<a href="http://ip/cacti">http://IP/cacti</a>

之后就不多写了,参考链接里面非常具体了。

常遇到问题的是:rrdtools数据库 rra权限 rrdtools版本 snmp数据获取 cacti里seting配置。

我遇到的主要问题就是有图无数据,后来发现时crontab写错了,没有自动执行导致的。

本文转自 sharkyan 51CTO博客,原文链接:http://blog.51cto.com/sharkyan/362129,如需转载请自行联系原作者