开源的监控软件

mrtg  很老的监控软件
 
cacti  使用rrdtool来画图

nagios  有较好的报警功能

 

cacti  仙人掌  

一套PHP程序,使用rrdtool工具来画图,使用snmp协议收集数据

--软件路径
ls /share/soft/cacti/

 

1。安装rpm版lamp,支持包,和字体包
[root@li ~]# yum install httpd* php php-mysql mysql mysql-server  libpng libjpeg freetype fontconfig gd libxml2 fonts-chinese -y

 

2。安装snmp软件包
[root@li ~]# yum install net-snmp* -y

 

3。安装rrdtool
[root@li ~]# cd /share/soft/cacti/
[root@li cacti]# rpm -ivh rrdtool-1.2.30-1.el5.wrl.i386.rpm rrdtool-perl-1.2.30-1.el5.wrl.i386.rpm
--这两个软件包是互相依赖,所以一条命令都装上

 

4。解压cacti的源码包到apache网站家目录,并修改相关权限
[root@li cacti]# tar xf cacti-0.8.7a-cn-utf8.tar.gz.gz -C /share/weekend/
[root@li cacti]# cd /share/weekend/
[root@li weekend]# mv cacti-0.8.7e-cn-utf8/ cacti

 

[root@li weekend]# chown apache.apache /share/weekend/cacti/ -R
--权限对于cacti写数据很重要,因为现在它是由rpm版的httpd来跑,并且rpm版httpd是由apache这个用户来跑,所以要把相关ownership改成apache

 

5.启动mysql,登录进行cacti的授权
/etc/init.d/mysqld restart

mysql> create database cacti default charset utf8; --需要为utf8字符集,因为下载的cacti中文版是utf8

mysql> grant all on cacti.* to 'cacti'@'localhost' identified by '123';

mysql> flush privileges;


mysql> use cacti

mysql> source /share/weekend/cacti/cacti.sql --执行这个脚本,在mysql提示符下source,或者在shell下用mysql直接批量执行

mysql> show tables; --可以看到默认创建了48张表

 

 

6,修改cacti的config.php文件,确认它所连接的mysql的用户名和密码等信息

[root@li weekend]# vim /share/weekend/cacti/include/config.php

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "123";
$database_port = "3306";

 

7.配置snmp协议

[root@li weekend]# vim /etc/snmp/snmpd.conf
 41 com2sec notConfigUser  default       public
 42 com2sec notConfigUser  127.0.0.1       public --加上这一句,表示可以监控127.0.0.1,获取snmp数据


 63 access  notConfigGroup ""      any       noauth    exact  systemview none none
 64 access  notConfigGroup ""      any       noauth    exact  all none none --加上这一行,把systemview换成all


 87 view all    included  .1                               80


# /etc/init.d/snmpd restart


# snmpwalk -v 1 localhost -c public  --返回大量信息,无错误则为OK

 

8。通过web界面来安装cacti

/etc/init.d/httpd restart


http://2.2.2.10/cacti/


保证所有的命令路径OK,net-snmpd版本为5.x,rrdtool版本为2.x

默认登录密码: admin
  admin

 

登录成功后,控制面版--设备-- 本机(可以看到默认就已经监控了本机,并且有四张图) --全是本机相关的配置


点击图像 但看不到,因为数据还没有收集


9,收集数据
# ll /share/weekend/cacti/rra --这个为数据目录,现在为空

# /usr/bin/php /share/weekend/cacti/poller.php  --用此命令收集数据


# ls /share/weekend/cacti/rralocalhost_load_1min_5.rrd    --有数据了,就是默认监控本机的四张图有关的数据
 localhost_proc_7.rrd
localhost_mem_buffers_3.rrd  localhost_users_6.rrd
localhost_mem_swap_4.rrd

 

去web界面查看图像,有图了,但图形字体有乱码

解决方法:
控制面板--设置--路径--RRDTool默认字体路径  
/usr/share/fonts/chinese/TrueType/ukai.ttf  --写上这一句,是装fonts-chinese包得到的字体 

保存,再查看图像,rrdtool也支持中文了


为了不断收集数据,把上面收集的命令写到crontab里

# crontab -e
*/5 * * * * /usr/bin/php /share/weekend/cacti/poller.php &> /dev/null

 

--如果想马上能看到图里的数据的话,就手工再去收集一次

 


模版


一个设备模版 包含 多个图像模版
一个图像模版 包含 多个数据模版

 

数据采集

snmpget 采集
返回单个数据


data quries 采集
返回多个数据


脚本采集
可以支持非snmp数据源
支持shell,php,perl等多种脚本

 

 

例子1:监控一台远程机器


--加一个图像树用于专门放远程linux主机的图像,名称我就叫远程linux
控制面板--图像树--右上角添加--名称写上 远程linux --创建

 

控制面板--设备--右上角点添加--
名称: 137   --随意取
设备名: 2.2.2.137 
设备模版: 本地linux计算机
SNMP版本:  1版本

 点创建后,图像上面报了SNMP错误    --表示无法从客户端获取snmp信息


解决:
137这个客户端
# vim /etc/snmp/snmpd.conf
com2sec notConfigUser  2.2.2.10       public --加上这一句,允许10这个cacti监控服务器通过snmp协议来137收集数据

--不加也可以,因为默认就有com2sec notConfigUser default  public这句,default默认代表允许所有


# /etc/init.d/snmpd restart

# snmpwalk -v 1 10.1.1.137 -c public --验证有信息


--再回到10的web界面刷新一下,就不会报SNMP错误了


在右上角点为此设备生成图像--把图像全打勾--颜色就默认就OK--点击创建


控制面板--设备(可以看到137了,状态要为在线)--后面打勾--选择一个操作--选择 放入(远程linux)树中--确认

 

例子2:给监控本机加一个ping延迟的图像

控制面板--设备--本机--添加图像模版添加unix-ping 延迟  --添加之后,显示的是未生成图像


控制面板--新建图像--新建 unix-ping 延迟

--然后本机图像就生成了,再去手工收集一次数据,点查看图像就可以看到了

 

 

例子3:给监控导入一个模块advanced-ping的图像

/share/soft/cacti/cacti_graph_template_ping_advanced_ping_v1_3.xml

http://forums.cacti.net/about10049.html
--cacti论坛下载地址


控制面板--设备--本机--添加图像模版添加advanced-ping 延迟  --添加之后,显示的是未生成图像--点为此设备生成图像--把新添加的这个打勾--创建


第一项:The number of times to ping the host:一次向要监控的端口发送多少个探测包(默认20个)
第二项:Port to ping. Applies only to TCP and UDP protocols:使用的协议,可以是ICMP、TCP、UDP
第三项:Ping protocol to use. Either ICMP (default), TCP, or UDP:要监控的端口号(只有第二项为TCP或是UDP时使用),填写完成后点击create按钮

 

--然后本机图像就生成了,再去手工收集一次数据,点查看图像就可以看到了

 

=========================================================

实例导入模版监控mysql


软件包的路径:
/share/soft/cacti/teMySQLcacti-20060810.tar.gz

# tar xf /share/soft/cacti/teMySQLcacti-20060810.tar.gz -C /usr/src/

# cd /usr/src/teMySQLcacti/

[root@li teMySQLcacti]# ls --.xml文件为模版文件。.sh和.php的为脚本文件
cacti_host_template_memcached_host-step300-heartbeat600.xml
cacti_host_template_memcached_host.xml
cacti_host_template_temysql_host-step300-heartbeat600.xml
cacti_host_template_temysql_host.xml
CHANGELOG
convertXmlTo5minutePollingInterval.sh
dumpMemcachedStats.php
makeMin1RrdIntoMin0Rrd.sh
makeReleaseFile.sh
mysql_stats.php
README.txt --查看readme,有安装和使用帮助


1。
# ./convertXmlTo5minutePollingInterval.sh --如果是五分钟一次收集数据,先执行此脚本

2。
# cp mysql_stats.php dumpMemcachedStats.php /share/weekend/cacti/scripts/
--拷贝这两个脚本到cacti/scripts/目录下


# chown apache.apache /share/weekend/cacti/scripts/dumpMemcachedStats.php /share/weekend/cacti/scripts/mysql_stats.php

3。
# vim /etc/php.ini
memory_limit = 32M  --内存限制改成32M,readme里写的是大于8M

# /etc/init.d/httpd reload


4。被监控的远程mysql服务器授权
mysql> grant process,super on *.* to 'cacti'@'2.2.2.10' identified by '123';  --2.2.2.10是监控服务器cacti的IP

mysql> flush privileges;

 

5。导入相关模板

控制面板--导入模板
把下面两个模板导入
cacti_host_template_memcached_host-step300-heartbeat600.xml
cacti_host_template_temysql_host-step300-heartbeat600.xml

 

6。
新建立一个图像树

控制面板--图像树--添加--名字随意 我这叫 mysql服务器组 --创建


设备--添加--

描述:137-mysql
设备名:2.2.2.137  --远程被监控的mysql的IP
设备模版: teMysql Host        --这个设备模版包含21个图形模板,可以不选它,自己手工加需要的图形模板也是可以
snmp版本: 1版本


设备--在127-mysql后面打勾 --选择一个操作里 加入 mysql服务器组 --确认


# /usr/bin/php /share/weekend/cacti/poller.php --force
--强制刷新一下数据,有报错不管


==================================


整合版CACTI

[root@li cacti]# ls /share/soft/iso/CactiEZ_V9.iso

系统登录:
用户:root
密码:CactiEZ

只要有IP,然后使用浏览器访问

cacti登录:
用户:admin
密码:admin


这个系统默认为静态IP  192.168.0.5,可以手动修改一下,然后使用浏览器访问

 

==============================================================

安装下面这个
/share/soft/cacti/CactiEZ-v0.6.iso --英文整合版

 

Login Information

Some useful info you will need. You can also see this information by pressing F6 at the CD Installation prompt.

To login to the OS (you will want to change this)
user: root
pass: CactiEZ

To login to cacti (it prompts to change this)
user: admin
pass: admin

Get to webmin at (requires the root user / pass)
https://serverip:10000

To configure ntop (you will want to change this)
user: admin
pass: CactiEZ

To configure nagios
user: nagiosadmin
pass: CactiEZ

 

--这个版本安装的插件是非常多的

http://docs.cacti.net/plugins --插件的官网地址


自己可以尝试上网查查资料去尝试用用

 


--参考网站
http://www.cactiez.com