Pages

Saturday, 21 January 2012

10个牛X的免费服务器&互联网监控工具


当你拥有自己的网站时,能够及时发现网站中的任何问题是非常有帮助的。这里有一些免费开源的服务器/互联网监控工具,它们可以监视你的网络架构中出现的任何问题。这些工具可以帮你避免服务器断线,评估你的资源利用是否超过了你的架构。
这篇文章里我们回顾一下前10位服务器/互联网监视工具。你会发现各种各样的服务器工具,里面应该有你要找的工具。
Monit不仅可以监视你的服务器,还能通过一些预定的方法来应付特定情况下的问题。比如说你的数据服务器当掉了,Monit可以自动重启服务器,如果这是你所希望它做的话(提示:这往往是你希望的)。
当你需要监控多个服务器的时候,你可以使用M/Monit - Monit的一个扩展版本,它提供了一个简单的途径来管理多台服务器。
M/Monit同时提供了iPhone app(iPhone接口)来帮助你方便地管理你的网站,你再不需要拖着一台笔记本到处转了。
当你拥有一个服务器群组时,很难一下子看出你整个服务器组的工作概况。Ganglia却可以让你纵览整个组。在应付一大群服务器时,这是一个很好的工具。但从这个意义上来说,对付单服务器架构用这个工具就显得大材小用了。
Munin 监测并将系统性能指标以图形形式表现出来。它能自动地生成日/周/月/年性能图表和许多重要指标的报告。它可以监测核心系统资源比如内存、硬盘空间、CPU使用率以及一些服务器程序如MySQL, Apache, Squid。
Munin最强大的一个地方是它的易扩展性。你仅仅只需要几行代码就可以给它写一个插件来监控任何东西。这种易扩展性意味着Munin也可以用来监控一些与服务器性能无关的指标,像是注册用户数量或是网站点击率。

Cacti is 和Munin有很多相似的地方。不过它有一点和Munin相比表现突出的地方,那就是它允许你在一个较模糊的界限里调整你的数据显示的范围大小。 Munin只有固定的日、周、月、年性能图表(除非你自己写一个扩展),而Cacti却可以让你以你希望的方式查看你的数据:最近2小时,近四天,近六个 月,不定期。你甚至可以在可视界面上拉近拉远你的图表。
Nagios 是“IT网站监控的工业标准”。不过这只是他们网站自己这么说的。Nagios的安装以及配置非常繁琐,但是它所拥有的丰富特性是市场上的任何工具都不可 比拟的,适用于有经验的IT网络管理员。Nagios支持监控多台服务器并且可以通过email,或者以纸质(只要你还在用这种古老的技术)发送警告或 SMS/text消息。像Monit一样,Nagios也可以通过一定的配置来自动对故障作出反应。
Zabbix 是一种功能丰富的监控工具。它有强大的可视支持:用户自定义界面、拉近拉远和绘制方式。它可以通过email、SMS或即时消息来发送警告。同时它还可以发出声音警告,当你人在监控机器旁边的时候会很有用。
Observer 适用于linux、BSD、Cisco的服务架构。它支持自行寻找你的网站基础架构,发现你最希望去监测的那个网络。这就像是无线技术自动寻找范围内的信 号以便让你连接上。Observer有详细的图形显示,并且可以和Nagios的警告发送功能一齐使用。

Zenoss 是商业服务器监控工具Zenoss Enterprise的一个开源版本,全部由Python语言编写。它支持Nagios plugin format(Nagios插件格式),所以许多Nagios的插件也可以用于Zenoss。Zenoss的一个突出的地方是它强大而又容易使用的用户接 口。
Collectd 和Munin以及Cacti一样是注重图形式的系统指标显示方式。与众不同的是,它是专门为性能和可移植性而设计的。这意味着它适用于那些粗糙的、低端的 和嵌入式的系统。高性能低资源占有率的设计使得Collectd可以在不干扰你的服务进程的条件下,每10秒钟收集一次数据,提供高清晰的结果。你可以用 C、Perl或是Java给它写扩展程序。
Argus 专注于监控网络服务,支持4版和6版的IP协议。它有个很爽的警告升级功能:当一个警告生成了而且问题在一定的时间之内没有解决的话(因为系统管理员正在家呼呼大睡),它会发送第二个警告给另一个人。
---------------------------------------------------------------------------------------------------------------------------
cacti 磁盘I/O监控:cacti-iostat安装

本文假设前提:已经搭建好基本cacti监控环境。
服务端:

环境:CentOS 5.5-64bit cacti版本:Version0.8.7e 和Version0.8.7g 都实测通过。

#wget http://www.markround.com/uploads/cacti-iostat-1.6.tar.gz

#tar zxvf cacti-iostat-1.6.tar.gz

#cd cacti-iostat-1.6

导入iostat模块:

#cp snmp_queries/linux/iostat.xml /var/www/html/cacti/resource/snmp_queries/

参考其他的cacti的xml文件权限,chown修改新导入的模块文件。

在Console-> Import Templates中添加cacti-iostat-1.6/templates/linux/下的所有模板。这时在Console-> Data Queries 你应该可以看到iostat的几个模块已经加载,在Console-> Data Templates 也可以看到iostat-I/O的模块。

客户端:

注意:以下操作如果需要修改OID或者修改/tmp为其它路径,那么在iostat.xml模板文件和iostat.pl文件中也需要做对应的修改,建议保持默认。其它路径根据实际情况调整。

环境:CentOS5.5-64bit

#wget http://www.markround.com/uploads/cacti-iostat-1.6.tar.gz

#tar zxvf cacti-iostat-1.6.tar.gz

#cd cacti-iostat-1.6

#cp scripts/iostat.pl /usr/local/bin/

#vim /cron/iostat.sh

写入:

#!/bin/sh

cd /tmp && iostat -xkd 30 2 | sed 's/,/\./g' > io.tmp &&mv io.tmp iostat.cache

然后在命令行给文件添加执行权限:

#chmod 711 /cron/iostat.sh

#crontab -e

添加cronb任务:*/2* * * * /cron/iostat.sh

#vim /etc/snmp/snmpd.conf

更改类似以下的内容,根据实际配置情况,已经存在但不正确的做修改,不存在的添加到最后

access ConfigGroup "" any noauth exact all none none (这行注意read项改为all)

viewall included .1 80 (将这行前面的#号去掉)

pass.1.3.6.1.3.1 /usr/bin/perl /usr/local/bin/iostat.pl (添加这行到最后)

注意:将access的read项改为all是危险的,但如果服务器已经限制ip访问或者设置有严格的防火墙,可以这样设置。

查看/tmp/iostat.cache文件,看下是否已经有内容,如果有内容了,重启snmpd:

#/etc/init.d/snmpd restart

在监控机(cacti所在机器)上:

#snmpwalk -v1 -c community serverip .1.3.6.1.3.1.2

正常情况会有类似以下的输出:(如果无输出或者是Endof MIB,重新检查配置)

SNMPv2-SMI::experimental.1.2.1= STRING: "sda"

SNMPv2-SMI::experimental.1.2.2= STRING: "sda1"

SNMPv2-SMI::experimental.1.2.3= STRING: "sda2"

SNMPv2-SMI::experimental.1.2.4= STRING: "sda3"

SNMPv2-SMI::experimental.1.2.5= STRING: "sda4"

SNMPv2-SMI::experimental.1.2.6= STRING: "sda5"

接下来在cacti里面添加相应的监控,点击相应服务器的status,拉到后面,在AssociatedData Queries--Add Data Query:中,添加相应的query,如iostat- Utilisation,然后点击VerboseQuery,在新的页面中可以到类似下面的信息:

    Running data query [12].
    + Found type = '3' [snmp query].
    + Found data query XML file at '/var/www/html/cacti/resource/snmp_queries/iostat.xml'
    + XML file parsed ok.
    + Executing SNMP walk for list of indexes @ '.1.3.6.1.3.1'
    + Index found at OID: '1.3.6.1.3.1.1.1' value: '1'
    + Index found at OID: '1.3.6.1.3.1.1.2' value: '2'
    + Index found at OID: '1.3.6.1.3.1.1.3' value: '3'
    + Index found at OID: '1.3.6.1.3.1.1.4' value: '4'
    + Index found at OID: '1.3.6.1.3.1.1.5' value: '5'
    + Index found at OID: '1.3.6.1.3.1.2.1' value: 'sda'
    + Index found at OID: '1.3.6.1.3.1.2.2' value: 'sda1'

    ................

接着拉到最顶上,CreateGraphs for this Host ,勾选相应的磁盘,create即可。

过几分钟,没有错误,就可以看到监控成功了:

参考:http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html




No comments:

Post a Comment