|
Zabbix本身已经带有很多的监控项(items),而且这些监控项之间还可以数值加减乘除,这样的结果已经更加灵活丰富。但是毕竟zabbix的自带items还是有限,而我们在实际生产中也有一些额外需要的监控项目,比如说商品套餐价格、网站点击量、开发人员殴打产品经理次数(囧~)这样的数字或者文本也带进监控范围里,所以说,“自定义key值”就显得很重要了,不过zabbix在这一段做的是很不错的。
举个例子,还是看门狗。由于本公司广大模块服务器是只有内网权限没有外网权限的,所以想直接走服务器内的python邮件脚本发邮件已经不可能了,于是乎,我们罪恶的主管要求要通过zabbix来实现这个功能。但是zabbix如何能判断出来这个程序是经历重启的呢?只能从pid号码的变换这一条证据来实现,而zabbix本身不会直接监控pid这个数字,所以我们就要写一下这个简单的命令。
假设这里有一台运行着pms程序的服务器,我们要得到pms的pid值,这很简单。#ps -ef|grep pms|grep -v grep|awk '{print $2}'
可以看出现在的进程号是10634,然后我们登陆这台被监控机的agentd.conf文件里去修改一些东西。
这里插上一句话,agent.conf是用超级服务(xinetd)的方式来启动的,而agentd.conf是以独立进程的方式来启动的。这是他俩的一个区别点。
好,我们现在来到了这台pms-002的agentd.conf里,做了如下的修改:
这里我们先开启了UnsafeUserParameters,这是因为在下面的语句里我们用到了特殊符号$。
其次就是我们看到UserParameter的格式是“<key值>,<远程命令〉”的格式。其中远程命令可以是一句话也可以是一个脚本,我下面写的memfree就是一个脚本,这个脚本要注意权限,可以是无脑777。修改完毕之后,保存退出。
重启zabbix_agentd客户端。
这个时候我们可以先来zabbix_server去get一下这个key,看一下能否得到这个值。
如期得到10634这个值,实验成功!
剩下的就是在zabbix web界面添加对应的item了,这个就不多赘述了。trigger这里多说一句,既然是pid值发生了变化,那么对应的expression应该这么写:{js-online-pms-002:pid.diff(0)}>0。
|
|
|
|
|
|
|