运维监控之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来展示监控对象的状态。
安装cacti的软件包
给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
给log和rra目录授权
[root@chh1 cacti]# chown -R cacti log rra
创建计划任务每五分钟获取一下数据
准备工作基本做完,可以访问一下
启动snmpd服务
[root@chh1 cacti]# service snmpd start
关于Cacti设置
保存一下我们就可以看到信息
产生图形监控
实验监控拓扑
监控win server 2003
安装snmp
监控linux-web
在cacti上导入监控apache的脚本文件
[root@chh1 ~]# mv ss_apache_stats.php /var/www/html/cacti/scripts/
打开apache的状态输出
[root@chh Server]# vim /etc/httpd/conf/httpd.conf
重启apache
由于没有监控apache的模板,所以我们需要导入模板。
导入模板(模板下载地址:http://forums.cacti.net/about25227.html&highlight=apachestats)
绘制图像
然后将apache放到树上面去。
安装插件管理器
有了插件我们可以设置监控对象的预值报警,也可以直接查看他们的状态。
[root@chh1 cacti]# tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
将cacti-plugin-arch中的文件拷贝到cacti目录中去
进入控制台,对管理员启用插件管理器
进入cacti的目录
cd /var/www/html/cacti/
mysql -ucacti -pcacti cacti <pa.sql
打补丁
[root@chh1 cacti]# patch -p1 -N <cacti-plugin-0.8.7g-PA-v2.8.diff
编辑php的配置文件
vim include/config.php
改变url路径为 /cacti/
重启一下apache
[root@chh1 include]# service httpd restart
然后来到cacti
拆解插件
tar -zxvf monitor-latest.tgz
tar -zxvf monitor-latest.tgz
tar -zxvf thold-latest.tgz 实现预值功能
安装插件
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”中
email邮件报警的配置
我们可以发送一下测试邮件
发送成功
邮件日志
我的163邮箱记录
预值自动报警的设置
保存一下
设置当用户高于3个时就报警。
Win server监控
监控磁盘C的状态
高于900M自动报警
163邮箱上的报警邮件
下面我们来看看飞信报警
实现飞信报警
1.下载最新版飞信机器人。
http://bbs.it-adv.net/viewthread.php?tid=1081&extra=page%3D1
根据情况下载,因为会经常更新。 下载两个一个是fetion程序,一个是Linux下的库包linuxso-0101113.tar.gz
飞信机器人库路径处理
[root@chh1 linuxso_20101113]# cp lib* /lib/
测试飞信发送
下面我们编写脚本,让飞信机器人实现自动发送
新建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/
编辑发送脚本
[root@chh1 thold]# chmod a+x sendsms.sh
测试一下我们的脚本
[root@chh1 thold]# vim alert.log 随便写点东西
[root@chh1 thold]# ./sendsms.sh 执行发送消息测试
实现飞信与预值thold的结合
[root@chh1 thold]# vim thold_functions.php
当达到预值就会有报警信息发送到我们的手机上,下面来看一下我们的飞信消息。
这时163邮件也收到很多报警邮件