开源监控――cacti

运维监控之cacti

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

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

安装cacti所需要的软件包

[root@chh1 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

安装软件包

[root@chh1 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并设为开机启动

[root@chh1 cacti]# service httpd start

Starting httpd: vh [ OK ]

[root@chh1 cacti]# chkconfig httpd on

[root@chh1 cacti]# service mysqld start

[root@chh1 cacti]# chkconfig mysqld on

cacti的架构示意图

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

144407549.png

安装cacti的软件包

144407796.png

给mysql的root用户设置口令

[root@chh1 cacti]# chkconfig mysqld on

[root@chh1 cacti]# mysqladmin -u root -p password '123'

Enter password:

安装rrd环装数据库

[root@chh1 cacti]# yum localinstall rrd* --nogpgcheck -y

解压cacti到/var/www/html/

[root@chh1 cacti]# tar -zxvf cacti-0.8.7g.tar.gz -C /var/www/html/

[root@chh1 html]# mv cacti-0.8.7g/ cacti

创建cacti账号

[root@chh1 html]# useradd cacti

[root@chh1 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 catci@localhost 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中的表格

[root@chh1 html]# mysql -ucacti -pcacti cacti </var/www/html/cacti/cacti.sql

修改cacti和mysql结合的文件

[root@chh1 cacti]# vim include/config.php

144408703.png

给log和rra目录授权

[root@chh1 cacti]# chown -R cacti log rra

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

144409682.png

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

144412140.png

144414197.png

144416935.png

启动snmpd服务

[root@chh1 cacti]# service snmpd start

关于Cacti设置

144417777.png

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

144419244.png

产生图形监控

144423521.png

144423929.png

实验监控拓扑

144426232.png



监控win server 2003

安装snmp

144427745.png

144429705.png



监控linux-web

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

[root@chh1 ~]# mv ss_apache_stats.php /var/www/html/cacti/scripts/

打开apache的状态输出

144429413.png

144430670.png

[root@chh Server]# vim /etc/httpd/conf/httpd.conf

重启apache

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

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

144432733.png

144433143.png

144435651.png

绘制图像

144437994.png

144438864.png

然后将apache放到树上面去。

144439160.png

144440859.png


安装插件管理器

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

144441641.png

[root@chh1 cacti]# tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

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

144444971.png

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

进入cacti的目录

cd /var/www/html/cacti/

mysql -ucacti -pcacti cacti <pa.sql

144444684.png

打补丁

[root@chh1 cacti]# patch -p1 -N <cacti-plugin-0.8.7g-PA-v2.8.diff

编辑php的配置文件

vim include/config.php

改变url路径为 /cacti/

144444969.png

重启一下apache

[root@chh1 include]# service httpd restart


然后来到cacti

144446893.png

144446616.png

拆解插件

tar -zxvf monitor-latest.tgz

tar -zxvf monitor-latest.tgz

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

144446129.png

安装插件

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”中

144448447.png

144449942.png




144628572.png

email邮件报警的配置

144630318.png

144631713.png

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

144632649.png

发送成功

144633704.png

邮件日志

144636829.png

我的163邮箱记录

144645234.png


预值自动报警的设置


144652994.png

144653301.png

144655726.png

144656194.png

144659153.png

保存一下

144659813.png

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


144702715.png

Win server监控

监控磁盘C的状态

144705831.png

高于900M自动报警

144708491.png

163邮箱上的报警邮件

144711790.png


下面我们来看看飞信报警

实现飞信报警

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

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

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

144711432.png

飞信机器人库路径处理

[root@chh1 linuxso_20101113]# cp lib* /lib/

测试飞信发送

144713952.png

144713450.png

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

新建sendsms文件夹

[root@chh1 ~]# mkdir /var/www/html/sendsms

[root@chh1 cacti]# mv linuxso_20101113/ /var/www/html/sendsms/linuxso

[root@chh1 ~]# cd /var/www/html/cacti/plugins/thold/

编辑发送脚本

144716316.png

[root@chh1 thold]# chmod a+x sendsms.sh

测试一下我们的脚本

[root@chh1 thold]# vim alert.log 随便写点东西

[root@chh1 thold]# ./sendsms.sh 执行发送消息测试

144716436.png

实现飞信与预值thold的结合

[root@chh1 thold]# vim thold_functions.php

144716817.png

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

144718680.png

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

150741801.png

你可能感兴趣的:(cacti,rrdtool,运维监控)