前言:

Zenoss Core提供了基于SNMP的标准化的OSProcess和IPService的监控,前者包含进程的可用性和性能(CPU MEM 进程数量)监测,后者只有可用性监测。

根 据文档的操作,配置OSProcess和IPService看上去很简单的,但是我在操作中碰到了不少问题,有时会出现进程还在,但Zenoss报错的情 况。本文的就不详细回忆出现过的错误了,我只记录最终稳定下来的配置(已经监控了8个小时)。配置的方法有些和文档的描述并不完全一致,仅供您参考。

被监控Device Name: linux11,IP:192.168.2.11,OS: openSUSE11 (on VMWare)
测试监控进程为Apache2(openSUSE自带的)和cron,IP服务为HTTP和SSH

监控OSProcess配置:

首先在Classes的Processes中添加你需要监控的进程,这是全局配置,所有Device都可使用的。
点击Processes,在Processes标签点击下拉菜单:Add Process,输入ID:Apache2。点击Apache2->Edit,编辑OSProcess的属性:

Name: Apache2 这个不用修改
Regex: 这里填写的是进程在操作系统中的名字,它是个正则表达式( 正则表达式入门
Ignore Parameters: 是否忽略进程命令的参数,这里修改为True

在Linux用ps -ef|grep http看看Apache2的进程命令:
/usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf 一共有6个。我建议的Regex的内容为:^httpd2-prefork|^/usr/sbin/httpd2-prefork
这个正则表达式包括了不含路径和包含路径两种情况,肯定没问题。
点击Save,然后点击zProperties:
zAlertOnRestart: 进程Restart是否发送Event(我没测试这个)
zCountProcs: 是否检测运行的进程数量,这里设置为True
zFailSeverity: 严重级别,如果实际监控进程非常重要,可设置为Critical,我没改
点击Save保存

返回linux11的OS标签,点击OSProcess下拉菜单,选择Add Process,选择刚刚添加的Apache2。
返回OS标签,可以看到Apache2已经添加,并且处于UP状态,似乎配置已经做完了。


但实际上,这是个假象,进程并没有被检测出来,如果不Re-Model的话,过会儿就会报错了。手工Re-Model之后才会显示出httpd-prefork的进程。


cron采用一样的方法加入,只是zCountProcs设为False(cron只有一个进程),Ignore Parameters也可不改,cron没有参数。

如果OSProcess出现异常,可以在Zenoss的系统中使用zenprocess命令查看更多的debug信息:
$ zenprocess run -v 10 -d linux11

监控IPService配置:

在我的IPService配置中我并没有按照文档说的那样Add IPService,而是直接到zenoss定义好的IPServer中将需要监控的服务Monitor打开。

点击左侧导航的Service -> /IpService -> /Privileged,在Service右侧的搜索框内输入http,按回车(我鼠标找不到点击的地方,FF和IE都不行)。
点击http,Edit -> Monitor设为True,Save

返回linux11的OS标签,在IPServer标签Add IPServer,选择TCP,在ID处输入htt,等一会儿,会有所有包含htt的服务列出,选择World Wide Web HTTP。
IPService不需要Re-model device,立即生效。

SSH采用同样的方法。

点击/usr/sbin/httpd2-prefork可查看性能,包括进程个数,合计的CPU MEM占用,IPService只是可用性监控,无性能数据。

测试: 重复关闭和开启各个进程,查看Zenoss的反应,结果符合预期。