本文主要介绍说明用于支持Cacti 运作的PHP+RRDtool 环境的详细配置方法。使其能集中式监控多台,不同平台类型的服务器。
以及支持SNMP 网络设备运作状态。
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构 、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
虽然MRTG 是一套非常好用的软件但是它毕竟是一套很旧的软件了,其作者在多年前已经开发出RRDTool 代替该软件,现在已经发展的很成熟了,但由于RRDTool 的指令非常复杂,对于使用者非常的麻烦,幸运的是有一套软件Cacti 的发展就是基于RRDTool 使用者更方便使用该软件,除了基本的Snmp 流量跟系统资讯监控外,Cacti 也可外挂Scripts 及加上Templates 来作出各式各样的监控图
Cacit 运行环境需要PHP + Mysql + rrdtool 以及snmp 工具的支持。
下边是本次配置需要用到的软件。
cacti-0.8.7e-cn-utf8.tar.gz (中文版) rrdtool-1.2.27.tar net-snmp-5.5.tar.gz cacti-cactid-0.8.6k.tar.gz cacti-spine-0.8.7e.tar.gz
一、安装LAMP或者LNMP
LNMP环境的搭建请参考《Nginx+PHP(php-fpm-0.6)构建高性能的WEB服务器》一文,
http://blog.yahunet.com/post-64.html
LAMP环境搭建请参考《Linux+Apache+MySQL+PHP搭建高性能的web服务器》一文,
http://blog.yahunet.com/post-10.html
二、编译安装rrdtool及安装配置snmp
1、编译安装rrdtools
需要先安装如下几个rpm包:
cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel
# tar zxvf rrdtool-1.2.27.tar.gz # cd rrdtool-1.2.27 # ./configure --prefix=/usr/local/rrdtool # make && make install
2、安装SNMP
# tar -zxvf net-snmp-5.5.tar.gz # cd net-snmp-5.5 # ./configure --prefix=/usr/local/snmp --enable-developer
然后一直回车
# make # make install # ln -s /usr/local/snmp/bin/* /usr/local/bin/
3、设置安全的验证方式
配置v2c版本的SNMP代理,我们来创建snmpd的配置文件,默认情况下它是不存在的,我们来创建它,如下:
# vi /usr/local/snmp/share/snmp/snmpd.conf
然后我们需要创建一个只读帐号,也就是read-only community,在snmpd.conf中添加以下内容:
rocommunity cacti 127.0.0.1
注意,这里的"rocommunity"表示这是一个只读的访问权限,紧接着的"cacti"相当于密码,你可以设置其它字符串作为密码。
最右边为指定的监控点IP,这意味着只有本机有权限来访问你的SNMP代理程序。
经过配置后,现在可以启动snmpd,如下:
# /usr/local/snmp/sbin/snmpd
如果要关闭,则可以直接kill这个进程,如下:
# killall -9 snmpd
加入到开机自启动
#echo "/usr/local/snmp/sbin/snmpd" >> /etc/rc.d/rc.local
三、安装cacti和Cactid
1、安装cacti
# tar -zxvf cacti-0.8.7e-cn-utf8.tar.gz # mv cacti-0.8.7e-cn-utf8 /var/www/cacti
在Mysql中创建新的database,导入cacti目录中的cacti.sq创建表:
# /usr/local/www/mysql/bin/mysql -uroot -p123456 mysql> create database cacti; mysql> use cacti; mysql> source /var/www/cacti/cacti.sql;
# vi /var/www/cacti/include/config.php
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "root"; $database_password = "123456";
添加cacti用户,将rra目录的所有权给cacti用户
# useradd cacti # chown -R cacti.cacti /var/www/cacti/rra
为cacti用户添加cron任务
# su – cacti # crontab –e */5 * * * * /usr/local/www/php/bin/php /var/www/cacti/poller.php > /dev/null2>&1
注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。
2、安装Cactid
CACTID 的安装需要以下支持:
net-snmp-devel(需要编译安装net-snmp时添加--enable-developer选项) mysql mysql-devel (mysql源文件编译安装后默认支持) openssl-devel (Redhat默认安装)
# tar -zxvf cacti-cactid-0.8.6k.tar.gz # cd cacti-cactid-0.8.6k # ./configure --with-mysql=/usr/local/www/mysql --with-snmp=/usr/local/snmp # make && make install
# vi /usr/local/cactid/etc/cactid.conf //修改cactid配置文件
DB_Host 127.0.0.1 DB_Database cacti DB_User root DB_Pass 123456
3、完成cacti的安装
1)在浏览器中输入:http://ip/cacti/
根据提示创建
默认用户名:admin 密码:admin
2)更改密码
3)设置cacti用到的命令路径
点击左侧的"设置",
右侧选择"常规"
RRDTool应用程序版本 :RRDTool 1.2.*
然后右侧选择"路径",设置正确下面会出现[OK: FILE FOUND]
需要更改的:
RRDTool路径:/usr/local/rrdtool/bin/rrdtool PHP路径:/usr/local/www/php/bin/php RRDTool默认字体路径 :/usr/share/fonts/chinese/TrueType/ukai.ttf
四、安装cacti-spine cacti
默认使用cmd.php方式采集数据,使用spine 比使用cmd.php 效率会高,所以这里安装一下spine
# tar -zxvf cacti-spine-0.8.7e.tar.gz # cd cacti-spine-0.8.7e # ./configure --with-mysql=/usr/local/www/mysql/ # make && make install
更改cacti和spine 连接数据库密码
# vi /usr/local/spine/etc/spine.conf
DB_Host localhost DB_Database cacti DB_User root DB_Pass 123456
修改cacti的采集方式
点击左侧的"设置",然后右侧选择"路径"
Spine轮询器路径: /usr/local/spine/bin/spine
然后选择右侧的"轮询器"
"轮询器类型" spine
五、监控本机
点击左侧的"设备",选择右侧的"本机"
需要更改:
SNMP 版本 :Version 2
SNMP 连接字串 :cacti
其他的都不修改,过一会就可以通过"查看图像"选项查看抓取到的图像了
到此,监控平台已经搭建完成
如需转载请注明:转载自: 风往北吹的IT博客 [http://blog.yahunet.com/]
本文链接地址:http://blog.yahunet.com/post-81.html