CentOS 5.9 下安装配置cacti

距离第一次安装cacti也快一年了吧,中间也陆陆续续的搞过几次,可是当我想再次去配置的时候,还是发现错误百出,可见记忆是一个多么不靠谱的东西,因此有了这篇博客。

一:安装配置cacti

1 安装配置本机snmp相关服务

a 安装
yum -y install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils
b 配置
41行,将default修改为cacti监控服务器ip地址
com2sec notConfigUser  cacti_server_ip public
将其中62行的systemview改为all即可,并启用85行
access  notConfigGroup ""      any       noauth    exact  all none none
view all    included  .1                               80
c 启动snmpd
/etc/init.d/snmpd start
注意:
  在被监控端只需要安装net-snmp就行了-->yum install net-snmp -y

2 安装rrdtool

a 检查并安装相关依赖包
yum -y install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel pear pear-devel
b 源码安装rrdtool
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
tar zxvf rrdtool.tar.gz
cd rrdtool-1.4.8/
./configure --prefix=/usr/local/rrdtool
make && make install

3 安装配置cacti

a 下载解压cacti,并移动到web目录下
wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
tar zxvf cacti-0.8.8b.tar.gz 
mv cacti-0.8.8b /data/html/cacti/cacti
b 在MySQL中创建数据库cacti,并增加对该数据库拥有所有权限的用户名cacti,该用户密码为:cacti
create database cacti;
grant all privileges on cacti.* to cacti@localhost identified by 'cacti';
c 导入数据到MySQL
mysql -ucacti -pcacti cacti < cacti.sql
d 修改cacti的配置脚本
cd /data/html/cacti/cacti
vim include/config.php
主要把数据库配置部分弄正确就行了
e 修改cacti目录权限
cd /data/html/cacti
chmod -R 777 rra
chmod -R 777 log
chmod -R 777 scripts
这里权限规划没有太细,只要运行cacti的用户可写日志和rra文件可执行脚本就行了(建议测试环境可以先给最大权限,调试成功后再给相应的正确权限)
g 配置计划任务
/usr/local/php_cgi/bin/php /data/html/cacti/cacti/poller.php > /dev/null 2>&1
恩,请加入到cacti用户的计划任务中(其实我用的是root,习惯用最高权限了)
h 完成安装
在浏览器中输入:http://www.yourdomain.com/cacti,按照提示即可
i 安装完成后,就是图形界面了,其余添加被监控主机等就很简单了

另lnmp中的cacti的配置为:
server {
        listen       80;
        server_name  cacti.peiqiang.com;
        access_log /data/logs/cacti.a.log;
        access_log /data/logs/cacti.e.log;
        root /data/html/cacti/;
        location / {
                index index.html index.htm index.php;
        }
        location ~ \.php$ {
            include fastcgi_params;
        }
    }

4 spine安装配置(非必须)

如果你的被监控机很多,默认的cmd.php可能已经满足不了你了(轮询时间超过300s),试试spine吧
a 请到http://www.cacti.net/downloads/spine/下载与你cacti想匹配的版本
b 安装spine
tar zxvf cacti-spine-0.8.8b.tar.gz
cd cacti-spine-0.8.8b
./configure --prefix=/usr/local/spine/
make -j 10
make install
c 配置spine
vim /etc/spine.conf
DB_Host         localhost
DB_Database     cacti
DB_User         cacti
DB_Pass         cacti
DB_Port         3306
DB_PreG         0
d 创建一个软链接文件(因为spine默认会去读取该sock文件)
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
e 验证spine是否正常
[root@File_2 src]# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.8b starting
SPINE: Time: 0.0668 s, Threads: 1, Hosts: 2 
f 修改Cacti配置
Console -> Cacti Settings->Paths->Spine Poller File Path
填入cacti-spine安装路径
/usr/local/spine/bin/spine
g 修改Cacti使用的Poller Type
Console -> Cacti Settings->Poller->Poller Type
在下拉中选择spine
5 遇到的坑
1 系统可能安装了多个版本的php,例如我的就有:
/usr/local/php_cgi/bin/php
/usr/bin/php

这个时候一定要保证所有使用的php是同一个版本的,即是同一个二进制文件,例如:
刚开始我的网页和计划任务解释php用的是/usr/local/php_cgi/bin/php,而cacti后台settings-->paths-->PHP Binary Path用的是/usr/bin/php,在rra下愣是不能生成数据文件,改成/usr/local/php_cgi/bin/php后才正常,这个问题折磨了我好几天才发现,惭愧,牢记牢记。

二:是时候结束了

自言自语:

每次安装cacti都是一次痛苦的过程,总觉得自己会,自己懂,可是每次都要花很长时间重新开始;正好这次要做一个cacti对Mysql的监控,就把这个过程再走一次,当做回顾吧。

参考资料:

官网:http://www.cacti.net/

linux 公社: http://www.linuxidc.com/Linux/2012-07/66918.htm</p

经廷波: http://my.oschina.net/f91jty/blog/168386

五事九思: http://zhumeng8337797.blog.163.com/blog/static/10076891420114315544253/

spine安装:http://gzmaster.blog.51cto.com/299556/269238

snmpd.conf 说明: http://linux.die.net/man/5/snmpd.conf