很早就在想,如果有个什么软件能够监控服务器、网站、应用程序的运行状态,能够在出现故障时第一时间通知到我,并且能生成运行状态报告多好啊。这样 就不用操心服务器或网站出问题了却还不知道,还需要要用户报告给我们,这是极不好的用户体验,老板也不愿意的。后来知道了linux上有nagios可以 实现这样的功能,但一直没有尝试去配置这个软件。前两天偶然在一篇blog里看到有童鞋介绍有这么一款第三方的监控软件,就是本篇要介绍的 监控宝

一.概览

简单来说,监控宝提供了站点监控、服务器监控、服务监控、访问速度跟踪等监控功能。可以实现服务器的cpu、内存、磁盘、网络流量、系统进程等参数 的实时监控,还可以实现站点webserver(apache、lighttpd、nginx)、mysql、dns解析速度、ping响应速度、ftp 等的状态监控。

监控宝能够生成直观的监控报表和图表,还能够将每日运行情况发送到用户的注册邮箱,另外可设置告警,在性能参数到达警戒线的时候主动发送告警信息给用户,这在一些大流量网站上应该是特别有用的,可以使站点有效的避免当机的故障。

重要的是,整个服务是第三方的,除了需要服务器状态监控时需要安装配置snmp外,不需要安装其它软件,减少了服务器资源不必要的开销;更重要的 是,所有服务都是免费的,当然,如果你需要短信报警服务,你可以购买短信通知服务,新注册的用户还赠送了两条短信,可以免费体验一下(两条是不是太少了 点?汗,太贪心了吧)。

不过注意一点,网站上写的“ 免费注册,即可无限制试用”,注意是“试用”,不是“使用”,说不定啥时候就收费了,呵呵。管它呢,先用了再说吧。

注册很简单,用你的邮箱就行了。注意,这个邮箱要填真实的,最好是常用的邮箱,除了要确认注册之外,监控报告、报警信息都会发到这个邮箱里。

另外值得一提的是,监控宝的ui和用户体验都挺不错的,管理界面首页如下图:
网站监控系统home 

二.站点监控

站点监控很简单,点击“创建站点监控”,进入如下界面:
创建站点监控项可以监控的项目包括网页、ping、ftp、dns的响应时间。可根据需要选择,之后填写相应的信息即可,需要填写的项目下面都有比较详细的说明,按照要求填写即可。

对于比较常用的网站网页监控,监控宝提供了get、post、head三种访问方式,post方式可以填写需要post的数据,完全模拟post过 程。还可以对页面返回的内容进行识别,以确认请求是否得到了正确的响应。另外提供了cookies信息定制,这样对于某些必须登录才能访问的网站,就可以 通过定制cookies直接监控需要用户登录的页面了。http的请求头信息也可以定制,比如可以通过定制 User-Agent,这样在检查webserver的访问记录时就可以比较容易的分辨了。
检查频率可以根据实际需要进行设置。


三.服务器监控

由于我的网站是运行在debian的vps上的,所以这里就把我的配置过程介绍一下,也算是一个备忘。

服务器监控需要需要开启要监控的服务器的snmp服务,其实监控宝的wiki上已经有了比较详细的介绍,参加这篇文章即可: http://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:%E5%AE%89%E5%85%A8%E6%8C%87%E5%BC%95。监控宝的文档很详细、规范,按照文档的说明操作基本就不会有什么问题,这也是它的优势之一。

首先就是下载最新版本的net-snmp,按照文档中的说明配置、编译,在编译是提示需要openssl库,于是就下载了最新的openssl,编 译安装,但出错了,怎么也装不上(汗,linux操作不熟啊)。于是就尝试把--with-openssl选项去掉了,结果也没有问题,不知道会不会有安全漏洞哦。

另外在编译net-snmp提示:
/usr/bin/ld: cannot find –lperl
查了一下资料,是因为缺少libperl-dev开发库,用下列命令安装上即可:
apt-get installlibperl-dev
之后就一路回车,make & make install就行了。安装完成之后按照文档中的说明修改配置即可。由于我选择了使用v3版,因此按照v3节的描述进行配置。
需要说明的是,/usr/local/snmp/share/snmp/snmpd.conf这个配置文件默认是不存在的,使用下列命令从net-snmp源代码所在目录拷贝一份:
cp  EXAMPLE.conf /usr/local/net-snmp/etc/snmpd.conf
/usr/local/net-snmp/etc/和/var/net-snmp这两个个目录默认也是不存在的,自行创建即可。MySQL也按照文档说明配置一下,配置完成后就可以启动snmpd服务了。

进入监控宝控制面板,在“服务器监控”项进入“添加服务器”,填写服务器的信息,在“SNMP代理设置”的“SNMP传输协议版本”中选择“3”, 然后如数用户名和密码,其它设置默认,完成之后点击“添加服务器”,如果服务器的snmp服务运行正常,就成功了。之后就可以在服务器监控状态页面看到服 务器的cpu、内存、磁盘、网络等的使用状况了。如下图: 服务器概述
 

四.服务监控
可以监控apache、lighttpd、nginx、mysql的运行状态,见下图:
 
可以根据自己使用的webserver进行选择,apache、lighttpd、nginx都支持服务器状态查询,当然需要单独配置。由于我使用了nginx,nginx默认安装是不带状态查询模块的,很遗憾,我使用的就是默认安装,所以暂时没有配置nginx的监控。

MySQL的配置很简单,填写服务器的ip地址和前面创建的mysql用户名和密码就行了。注意,mysql的默认配置里(/etc/mysql /myql.cnf),有个配置项bind_host默认值是localhost,需要把这个值修改为服务器的公网ip地址,否则远程是访问不了的。 mysql监控界面如下:
3}~L%[PWL3OJHR6A%`1N@GF
 

五.用户体验跟踪
这项监控用于监控访问者访问网站的速度,可以看到来自不同线路的用户访问网站的速度情况,对于广大站长来说是一个很不错的功能。提供了如下项目的监控功能:
用户体验跟踪 
添加监控是需要在网站提供一个10k左右的图片,简单起见,直接下载其提供的10k大小的图片( http://www.jiankongbao.com/p_w_picpaths/10k.jpg)上传到网站即可。添加完成后进入“获得跟踪代码”页面,选择一个样式,把生成的js代码放到网页合适的位置即可。监控报告“省份分布”界面如下:
用户体验跟踪_省份分布


六.后记

好了,监控宝的基本功能这里算是做了一个粗浅的介绍。整体来说,监控宝是一项值得广大站长使用的服务,应该还有很多本文介绍之外的可以发掘的功能, 并且服务本身也在不断的更新升级。对于普通站长来说,通过低廉的成本、经济的服务器资源开销,获得了强大、全面的监控服务,何乐而不为呢?

------ 分割线 ------
ps:汗,写到一般突然想到,我写这篇blog不会被认为是监控宝的软文吧。郑重声明:绝对不是:)。个人觉得监控宝对广大站长来说确实是一个不可多得的好服务,所以一定要推荐一下,才有了此文。

另外,监控宝还提供了msn、gtalk提醒功能,但这两个个机器人好像比较“懒”,我加了它到现在也没有通过:(