运维监控之cacti

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

首先我们需要搭建lamp环境和安装snmp

安装cacti所需要的软件包

[[email protected] cacti]# ll

total 9064

-rw-r--r-- 1 root root 2236916 Oct 11 11:21 cacti-0.8.7g.tar.gz

-rw-r--r-- 1 root root 207069 Oct 11 11:21 cacti-plugin-0.8.7g-PA-v2.8.tar.gz

-rw-r--r-- 1 root root 4960221 Oct 11 11:21 feition.tar.bz2

-rw-r--r-- 1 root root 442525 Oct 11 11:21 monitor-latest.tgz

-rw-r--r-- 1 root root 1154026 Oct 11 11:21 rrdtool-1.4.4-1.el5.wrl.i386.rpm

-rw-r--r-- 1 root root 55839 Oct 11 11:21 rrdtool-perl-1.4.4-1.el5.wrl.i386.rpm

-rw-r--r-- 1 root root 18906 Oct 11 11:21 rrdtool-ruby-1.4.4-1.el5.wrl.i386.rpm

-rw-r--r-- 1 root root 6701 Oct 11 11:21 sendMsg.zip

-rw-r--r-- 1 root root 25570 Oct 11 11:21 settings-latest.tgz

-rw-r--r-- 1 root root 12114 Oct 11 11:21 test.png

-rw-r--r-- 1 root root 9091 Oct 11 11:21 test1.png

-rw-r--r-- 1 root root 90488 Oct 11 11:21 thold-latest.tgz

安装软件包

[[email protected] cacti]# yum install httpd php php-mysql php-snmp mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby ruby-devel

启动apache和mysql并设为开机启动

[[email protected] cacti]# service httpd start

Starting httpd: vh [ OK ]

[[email protected] cacti]# chkconfig httpd on

[[email protected] cacti]# service mysqld start

[[email protected] cacti]# chkconfig mysqld on

cacti的架构示意图

最底层是数据采集层,我们可以通过snmp或者脚本来获取需要监控的对象的数据,中间是数据的存储型有环形数据库RRDtool和mysql构成,上层是展示层通过apache和php以及cacti来展示监控对象的状态。

开源监控——cacti

安装cacti的软件包

开源监控——cacti

给mysql的root用户设置口令

[[email protected] cacti]# chkconfig mysqld on

[[email protected] cacti]# mysqladmin -u root -p password '123'

Enter password:

安装rrd环装数据库

[[email protected] cacti]# yum localinstall rrd* --nogpgcheck -y

解压cacti到/var/www/html/

[[email protected] cacti]# tar -zxvf cacti-0.8.7g.tar.gz -C /var/www/html/

[[email protected] html]# mv cacti-0.8.7g/ cacti

创建cacti账号

[[email protected] html]# useradd cacti

[[email protected] html]# passwd cacti

在mysql数据库中添加cacti数据库

mysql> create database cacti;

Query OK, 1 row affected (0.00 sec)

给数据库授权apache调用php访问cacti时对mysql可以访问

将cacti数据库授权给cacti用户

mysql> grant all privileges on cacti.* to [email protected] identified by 'cacti';

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on cacti.* to [email protected] identified by 'cacti';

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on cacti.* to [email protected] identified by 'cacti';

Query OK, 0 rows affected (0.00 sec)

刷新一下

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

导入cacti中的表格

[[email protected] html]# mysql -ucacti -pcacti cacti </var/www/html/cacti/cacti.sql

修改cacti和mysql结合的文件

[[email protected] cacti]# vim include/config.php

开源监控——cacti

给log和rra目录授权

[[email protected] cacti]# chown -R cacti log rra

创建计划任务每五分钟获取一下数据

开源监控——cacti

准备工作基本做完,可以访问一下

开源监控——cacti

开源监控——cacti

开源监控——cacti

启动snmpd服务

[[email protected] cacti]# service snmpd start

关于Cacti设置

开源监控——cacti

保存一下我们就可以看到信息

开源监控——cacti

产生图形监控

开源监控——cacti

开源监控——cacti

实验监控拓扑

开源监控——cacti



监控win server 2003

安装snmp

开源监控——cacti

开源监控——cacti



监控linux-web

在cacti上导入监控apache的脚本文件

[[email protected] ~]# mv ss_apache_stats.php /var/www/html/cacti/scripts/

打开apache的状态输出

开源监控——cacti

开源监控——cacti

[[email protected] Server]# vim /etc/httpd/conf/httpd.conf

重启apache

由于没有监控apache的模板,所以我们需要导入模板。

导入模板(模板下载地址:http://forums.cacti.net/about25227.html&highlight=apachestats

开源监控——cacti

开源监控——cacti

开源监控——cacti

绘制图像

开源监控——cacti

开源监控——cacti

然后将apache放到树上面去。

开源监控——cacti

开源监控——cacti


安装插件管理器

有了插件我们可以设置监控对象的预值报警,也可以直接查看他们的状态。

开源监控——cacti

[[email protected] cacti]# tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

将cacti-plugin-arch中的文件拷贝到cacti目录中去

开源监控——cacti

进入控制台,对管理员启用插件管理器

进入cacti的目录

cd /var/www/html/cacti/

mysql -ucacti -pcacti cacti <pa.sql

开源监控——cacti

打补丁

[[email protected] cacti]# patch -p1 -N <cacti-plugin-0.8.7g-PA-v2.8.diff

编辑php的配置文件

vim include/config.php

改变url路径为 /cacti/

开源监控——cacti

重启一下apache

[[email protected] include]# service httpd restart


然后来到cacti

开源监控——cacti

开源监控——cacti

拆解插件

tar -zxvf monitor-latest.tgz

tar -zxvf monitor-latest.tgz

tar -zxvf thold-latest.tgz 实现预值功能

开源监控——cacti

安装插件

mv monitor-0.9/ /var/www/html/cacti/plugins/monitor

mv thold-0.41/ /var/www/html/cacti/plugins/thold

mv settings-0.6/ /var/www/html/cacti/plugins/settings

到控制台中启用插件 在“plugin management”中

开源监控——cacti

开源监控——cacti




开源监控——cacti

email邮件报警的配置

开源监控——cacti

开源监控——cacti

我们可以发送一下测试邮件

开源监控——cacti

发送成功

开源监控——cacti

邮件日志

开源监控——cacti

我的163邮箱记录

开源监控——cacti


预值自动报警的设置


开源监控——cacti

开源监控——cacti

开源监控——cacti

开源监控——cacti

开源监控——cacti

保存一下

开源监控——cacti

设置当用户高于3个时就报警。


开源监控——cacti

Win server监控

监控磁盘C的状态

开源监控——cacti

高于900M自动报警

开源监控——cacti

163邮箱上的报警邮件

开源监控——cacti


下面我们来看看飞信报警

实现飞信报警

1.下载最新版飞信机器人。

http://bbs.it-adv.net/viewthread.php?tid=1081&extra=page%3D1

根据情况下载,因为会经常更新。 下载两个一个是fetion程序,一个是Linux下的库包linuxso-0101113.tar.gz

开源监控——cacti

飞信机器人库路径处理

[[email protected] linuxso_20101113]# cp lib* /lib/

测试飞信发送

开源监控——cacti

开源监控——cacti

下面我们编写脚本,让飞信机器人实现自动发送

新建sendsms文件夹

[[email protected] ~]# mkdir /var/www/html/sendsms

[[email protected] cacti]# mv linuxso_20101113/ /var/www/html/sendsms/linuxso

[[email protected] ~]# cd /var/www/html/cacti/plugins/thold/

编辑发送脚本

开源监控——cacti

[[email protected] thold]# chmod a+x sendsms.sh

测试一下我们的脚本

[[email protected] thold]# vim alert.log 随便写点东西

[[email protected] thold]# ./sendsms.sh 执行发送消息测试

开源监控——cacti

实现飞信与预值thold的结合

[[email protected] thold]# vim thold_functions.php

开源监控——cacti

当达到预值就会有报警信息发送到我们的手机上,下面来看一下我们的飞信消息。

开源监控——cacti

这时163邮件也收到很多报警邮件

开源监控——cacti