有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法。我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter.
<code>语法如下:</code>
用户自定义参数包含一个key和一个命令,key必须整个系统唯一,配置好之后,重启客户端。 然后配置item,在key的位置填上我们自定义的key即可。
如果调用ping这个key,将会收到返回值1.
如果返回1表示MySQL运行中,如果返回0表示MySQL挂了
<code>参数</code> <code>描述</code>
<code>Key</code> 唯一. [*]表示里面可以传递多个参数
<code>Command</code> 需要执行的脚本,key的[]里面的参数一一对应到9,一共9个参数。$0表示脚本命令.
我们这个参数可以查出内存空闲了多少,如果我们zabbix要监控,但是zabbix服务器上面没有这个key怎么办呢,我们就要自定义了
1、客户端必须安装了<code>zabbix-agentd客户端</code>,修改<code>zabbix_agentd.conf</code>
2、重启<code>客户端</code>
3、在<code>zabbix服务端</code>上面zabbix_get测试能否获取数据
我们都知道/proc是内核的反射区,/proc/meminfo 中显示的内存信息
上面显示出来了内存的详细信息,我们如何定义key让zabbix服务端监控我们主机的内存信息
1、执行正则表达式命令可以把信息过滤出来,但是每个参数都用一个正则表达式来做,这不符合我们这些高级的搬服务器能干的出来的的,从上面的简单案例可以看出,我们可以使用<code>[*]</code>然后<code>$1</code>,<code>$2</code>这样的来调用
2、我们就监控这些参数,用一个key实现
3、修改<code>zabbix_agentd.conf</code>
<code>$1 是调用前面的[*]里面的参数的,为什么使用$$2,如果使用一个$会让这个shell命令认为是调用第二个[*]里面的参数</code>
4、我们在服务器用zabbix_get测试,看能不能获取key定义的值(<code>完全不用质疑,可以</code>)
5、到zabbix服务器上面添加对应的参数监控项,然后集中到一个图里面,应该不是什么事吧,不会设置监控项和图的,可以参考前面的文章
1、nginx server的主配置文件 都配置status模块 代码端如下
2、nginx-status的取值脚本
3、加上执行权限
4、修改<code>zabbix_agentd.conf</code>
5、zabbix服务端zabbix_get测试自定义key
6、自定义已经执行成功,在web上面添加监控项
7、添加好,把监控项做成一张图
版权声明:本文转自 好笔记运维 51CTO博客,原文链接:http://blog.51cto.com/zhang789/1869798,如需转载请自行联系原作者