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



一.概览



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



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



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



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



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



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



 




二.站点监控



站点监控很简单,点击“创建站点监控”,进入如下界面:



可以监控的项目包括网页、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监控界面如下:







五.用户体验跟踪



这项监控用于监控访问者访问网站的速度,可以看到来自不同线路的用户访问网站的速度情况,对于广大站长来说是一个很不错的功能。提供了如下项目的监控功能:



 



添加监控是需要在网站提供一个10k左右的图片,简单起见,直接下载其提供的10k大小的图片

上传到网站即可。添加完成后进入“获得跟踪代码”页面,选择一个样式,把生成的js代码放到网页合适的位置即可。监控报告“省份分布”界面如下:







六.后记



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



------ 分割线 ------



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



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