天天看点

第九章 自定义key(案例:监控内存,监控nginx状态)

有时候我们想让被监控端执行一个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,如需转载请自行联系原作者

继续阅读