cacti是使用PHP语言开发到性能流量检测工具。可以监控linux、windows、路由交换。
cacti本是web界面管理套件,因此需要搭建好LAMP平台。通过使用net-snmp工具来采集数据,并结合DDRtool轮巡。
[root@localhost ~]# yum install http* mysql* php* -y
安装net-snmp-utils软件包
[root@localhost ~]# yum install net-snmp-utils* net-snmp-* net-snmp-libs* lm_sensors* -y
安装rrdtool软件包。
[root@localhost ~]# yum install -y pango*
[root@localhost ~]# tar zxf rrdtool-1.4.5.tar.gz
[root@localhost ~]# cd rrdtool-1.4.5
[root@localhost rrdtool-1.4.5]# ./configure —prefix=/usr/local && make && make install
部署cacti,设置数据库链接。注意补丁放的目录,例如放在/root目录下
[root@localhost ~]# tar zxf cacti-0.8.7g.tar.gz
[root@localhost ~]# mv cacti-0.8.7g/ /var/www/html/cacti
[root@localhost ~]# cd /var/www/html/cacti
[root@localhost cacti]# patch -p1 -N < ~/data_source_deativate.patch
[root@localhost cacti]# patch -p1 -N < ~/graph_list_view.patch
[root@localhost cacti]# patch -p1 -N < ~/html_output.patch
[root@localhost cacti]# patch -p1 -N < ~/ldap_group_authenication.patch
[root@localhost cacti]# patch -p1 -N < ~/ldap_group_authenication.patch
[root@localhost ~]# patch -p1 -N < ~/script_server_command_line_parse.patch
[root@localhost cacti]# patch -p1 -N < ~/ping.patch
[root@localhost cacti]# patch -p1 -N < ~/poller_interval.patch
添加一个用于读写检测数据到用户,runct。并调整子目录rra/和log/
[root@localhost cacti]# useradd runct
[root@localhost cacti]# chown -R root.root ./
[root@localhost cacti]# chown -R runct.runct rra/ log/
建立数据库,表结构。
[root@localhost cacti]# mysql -uroot
mysql > CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8;
mysql > GRANT all ON cactidb.* TO ‘cactiuser’@’localhost’ IDENTIFIED BY ‘123456’;
mysql > quit;
调整cacti配置文件。位于源码目录中到include文件夹下到config.php
[root@localhost cacti]# vim include/config.php
$database_type = "mysql";                //数据库类型
$database_default = "cactidb";            //数据库名称
$database_hostname = "localhost";        //数据库地址
$database_username = "cactiuser";    //授权用户
$database_password = "123456";        //授权密码
$database_port = "3306";                //端口
$config['url_path'] = "/";        //cacti源码相对于网站根目录的位置。
保存退出。
cacti初始化安装。
调整httpd配置
[root@localhost cacti]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/cacti"        //cacti源码作为网站根目录
            //设置目录访问权限
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all

DirectoryIndex index.php index.html index.html.var        //设置PHP首页为index
保存退出。
重启httpd服务
[root@localhost cacti]# service httpd restart
在浏览器上访问本地IP进行安装,默认登录用户密码均为admin
 

cacti监控与邮件报警_第1张图片

cacti监控与邮件报警_第2张图片

 




客户机配置(被控端——snmpd)
linux被控主机到配置,需要安装net-snmp,lm_sensors软件包。然后适当修改/etc/snmp/snmpd.conf文件,启动snmpd服务即可!
[root@localhost ~]# vim /etc/snmp/snmpd.conf
找到并修改:
com2sec notConfigUser  172.16.208.130     public    //服务器IP和共同体名
access  notConfigGroup ""      any       noauth    exact  all none none
view all    included  .1                               80        //去掉注释
保存退出
[root@localhost ~]# service snmpd start

window被控端配置
安装好SNMP服务。然后设置SNMP服务,启动并重新启动。

cacti监控与邮件报警_第3张图片

cacti监控与邮件报警_第4张图片



Cacti的使用及插件
在cacti的web管理页面中
添加被控端:
Management——>Devices,右上角有Add,主机描述,地址,轮巡,共同体名等填写完整,create完成添加。

cacti监控与邮件报警_第5张图片

设置监控项目。
在刚才创建好的主机,页面下有木块可以添加。针对linux被控端可以应该在Associated Graph Templates添加Unix - Processes。

cacti监控与邮件报警_第6张图片

生成监控图像:
Create——>New Graphs可以选择监控的主机,包括监控主机的设备。
添加图像到检测树。
cacti监控与邮件报警_第7张图片Management——>Graph Trees,页面有个Default Tree,单击进去有Add添加!!

cacti监控与邮件报警_第8张图片
定期采集检测树据。
需要使用PHP程序解析执行poller.php页面来采集数据,因此做成任务计划。
[root@localhost ~]# su - runct
[runct@localhost ~]$ php /var/www/html/cacti/poller.php
[runct@localhost ~]$crontab -e
*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php &> /dev/null
保存退出
[runct@localhost ~]$ exit
[root@localhost ~]# service crond start
等一会就可以看到结果!!

cacti监控与邮件报警_第9张图片
添加Monitor、Thold插件
安装PA补丁及monitor、thold插件包
[root@localhost ~]# tar zxf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
[root@localhost ~]# mysql -u cactiuser -p cactidb < cacti-plugin-arch/pa.sql
[root@localhost ~]# cd /var/www/html/cacti/
[root@localhost cacti]# patch -p1 -N < ~/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff
安装monitor、thold插件。
[root@localhost cacti]# cd /var/www/html/cacti/plugins
[root@localhost plugins]# tar zxf /root/monitor-0.8.2.tar.gz -C /var/www/html/cacti/plugins/
[root@localhost plugins]# tar zxf /root/setting-0.5.tar.gz -C /var/www/html/cacti/plugins/
[root@localhost plugins]# tar zxf /root/thold-0.4.3.tar.gz -C /var/www/html/cacti/plugins/
[root@localhost plugins]# mysql -u cactiuser -p cactidb < monitor/monitor.sql
[root@localhost plugins]# mysql -u cactiuser -p cactidb < thold/thold.sql
在web界面上Utilities——>System Utilities,页面中的admin,里面将所有插件勾上。

cacti监控与邮件报警_第10张图片
在Configuration——>Plugin Management把所有服务开启。

cacti监控与邮件报警_第11张图片
若在头部导航中只看到thold而没有monitor,则回到Utilities——>System Utilities,页面中的admin,里面将所有插件勾上。

cacti监控与邮件报警_第12张图片
使用状态见识插件—Monitor
左侧导航栏Configuration——>Settings,页面上Misc,将View设为Tiles,如图:

cacti监控与邮件报警_第13张图片
这样,在monitor上的监控主机就好看多了!!

cacti监控与邮件报警_第14张图片
使用阈值警告插件—Thold
左侧导航栏Configuration——>Settings,页面上Thresholds和Mail/DNS两项!!
设置如下图:
Thresholds

cacti监控与邮件报警_第15张图片

cacti监控与邮件报警_第16张图片

Mail/DNS:
cacti监控与邮件报警_第17张图片


SMTP地址解析可以用nslookup来获取。

cacti监控与邮件报警_第18张图片
可以用Send a Test Email测试发送邮件是否ok。

关联需要预警到检测项目:
在Templates——>Threshold Templates,页面中进行添加

例如添加内存监控:

Templates——Threshold Templates——Add——ucd/net-Memory-Free,mem_free,create。
Create——New Graphs,把监控的项选上,保存!!

头部导航:monitor——选择主机(如win2003),单击进入物理内存Physical Memory,右边有个小勾。

cacti监控与邮件报警_第19张图片

cacti监控与邮件报警_第20张图片

cacti监控与邮件报警_第21张图片

一旦出发阈值,就会发送邮件警报!!

cacti的图形界面友好,而且数据采集统计精细。但报警功能相对与nagios来说较弱,而且轮巡报警时间为5分钟,若要实时则需要安装新插件,这也是和nagios不可比拟的。虽然nagios本身也是依赖插件,但其报警功能强大,因此工作环境上通常是cacti与nagios整合在一起。