RedHat系统中Cacti简介及配置过程

    在服务器管理的过程中,我们要能随时对服务器上运行的服务进行监控,查看其运行状态,以便于我们管理服务器。通过这种监控机制,可以在紧急情况发生之前及时向服务器管理者反馈信息,通过这种信息让我们做出具体判断并及时解决问题,避免造成更大的损失。比如,我们可以检测CPU的利用率、内存和磁盘使用情况、Web服务是否工作正常等等。
    Cacti是一款很好的服务器监控软件,它提供了一个图形化的管理界面,可以通过浏览器很方便的对服务器进行监控,而且将我们指定要监控的服务或者对象的运行状态以图形方式显示出来,能让我们很直观的查看到服务的运行状况。而且
cacti可以导入导出模板,便于管理。
   Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmp提供的snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以
指定每一个用户能查看树状结构、host以及任何一张图,同时也能自己增加模板,功能非常强大完善,界面很友好。
  SNMP(Simple Network Management Protocol)简单网络管理协议,它获取到的数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的文件(Round Robin Archive),它能够存储的数据在创建时就已经定义了。
 
一、安装过程
1.首先要配置好本地yum源,然后开始安装需要的软件包,这里直接使用yum安装。
需要安装的软件包:
php、httpd、 php-mysql 、mysql-server 、net-snmp、 net-snmp-utils 、php-snmp。
#yum install php httpd php-mysql mysql-server net-snmp net-snmp-utils php-snmp -y 
2.然后下载rrdtool软件包,并安装
需要安装的rrdtool软件包:
rrdtool-devel-1.4.7-1.mage.i386.rpm 
rrdtool-perl-1.4.7-1.mage.i386.rpm 
rrdtool-1.4.7-1.mage.i386.rpm 
rrdtool-ruby-1.4.7-1.mage.i386.rpm
 
# yum -y --nogpgcheck localinstall rrdtool-*.rpm
3.下载并安装cacti,可以从cacti的官网下载http://www.cacti.net/download_cacti.php
选择合适自己系统的版本,这里使用的是cacti-0.8.7i
#tar xf cacti-0.8.7i.tar.gz -C /var/www/html
#cd /var/www/html
#ln -sv cacti-0.8.7i cacti
补充:如果安装的cacti是cacti-0.8.8版本(cacti的最新版本),有一个漏洞,在导入模板的时候会报错,需要修补这个漏洞,方法如下:
#cd /var/www/html/cacti/include
#vim global_arrays.php
 
在最后添加 "0.8.8" = "0224" 就可以了。需要在上一行的结尾加上一个","号,保存退出即可。
 
此时可以启动mysql服务了,创建一个以cacti命名的数据库,并授予cactiuser访问cacti数据库的权限。
#service mysqld start 
#mysql
mysql>create database cacti;
mysql>grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';
mysql>grant all on cacti.* to cactiuser@172.16.0.1 identified by 'cactiuser';
mysql>flush privileges;
mysql>\q
为系统创建cactiuser用户:
# useradd -r cactiuser 
4.编辑snmpd服务的配置文件:
注意:snmp默认的弱口令为Public为了安全大家可以更改成自己喜欢的口令,如Linux_snmp
修改第41行的community字段,把public改成Linux_snmp就可以了,将“default”改为你想哪台机器可以看到你的snmp信息,如:192.168.24.22,如果不想让任何服务器监控到,直接修改为127.0.0.1即可。
#vim /etc/snmp/snmp.conf
将com2sec notConfigUser   default    public 修改为:
com2sec notConfigUser   127.0.0.1   public
 
将access  notConfigGroup ""    any       noauth    exact systemview none none
修改为:
access  notConfigGroup ""      any       noauth    exact  all none none
启用一个view:
 
view all    included  .1  80     --将其前面的#去掉即可
 
#service snmpd start
#chkconfig snmpd on
5.配置cacti的配置文件:
#cd /var/www/html
#cd cacti
#mysql cacti < cacti.sql          --将cacti.sql导入到mysql数据库
#chown -R root.root .
设置cacti下的rra和log目录,让用户具有读写的权限
#chown -R cactiuser.cactiuser rra log
#cd /var/www/html
#cd include/
#vim config.php    
添加如下一行在配置文件中(大概位置在32行):
$url_path = "/cacti/";
 
#service httpd start
设置定时获取snmp数据并生成rrd文件,让其每五分钟执行poller.php脚本,
#vim /etc/crontab
添加:
*/5 * * * * cactiuser /usr/bin/php /var/www/html/cacti/poller.php
 
查看snmp是否监控到的信息:
 
# snmpwalk -v 2c -c public localhost
 
如果可以看到大量的信息输出..就表明snmp已经配置好了
二、在浏览器中验证
1.在浏览器中输入cacti安装的服务器IP地址,如:http://172.16.24.2/cacti
 
如果配置成功,会显示一个Cacti Installation Guide界面,如下:

点击Next,显示如下界面,

然后继续点击Next,如果路径都正确,直接点击最下方的Finish即可,如下图:

然后会出现登录界面,用户名和密码都是admin,输入登录框,登录即可,如下图登录界面:

 

第一次登陆cacti,为了安全起见,系统会自动提示让你修改密码,修改密码之后再登录进系统。
 
单击左侧列表中的Devices 会显示本地localhost的状态,而且status是UP的状态,说明对本地的监控已经成功启动,如下图:

单击左上角的graphs会显示当前系统上的监控图形,如下图所示:

 

 
2.无法显示Graphs的一些排错方法:
如果localhost的 status是Unknown状态则说明cacti没有配置成功,可能是多方面的原因,可以查看cacti的日志文件
#cd /var/www/html/cacti/log/
#tail cacti.log    如下图所示,如果日志信息中的DataSources和RRDsProcessed后面显示的数字不是0,说明没有错,如果是0的话,说明cacti没有配置成功。

如果日志信息中的DataSources和RRDsProcessed后面显示的数字不是0,可以打开cacti的主界面,选择左边列表中的Devices-->Localhost,找到SNMP Version选项,
在下拉列表中选择相对应的snmp版本,然后点解右下角的Save,然后刷新在查看localhost的状态。