zabbix -- 自定义key
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix -- 自定义key相关的知识,希望对你有一定的参考价值。
为什么要自定义KEY?
有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法。我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter.
UserParameter=key,command #语法
用户自定义参数包含一个key和一个命令,key必须整个系统唯一,配置好之后,重启客户端。
然后配置item,在key的位置填上我们自定义的key即可
#命令示例 UserParameter=ping,echo1 #如果调用ping这个key,将会收到返回值1. UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive #返回1表示MySQL运行
参数 描述
Key 唯一. [*] 表示里面可以传递多个参数
Command 需要执行的脚本,key的[]里面的参数一一对应到9,一共9个参数。$0表示脚本命令.
1、 zabbix禁止使用一些不安全的参数,如下:\ ‘ ” * ? [ ] { } ~ $ ! & ; ( ) < > | # @
2、 从zabbix 2.0开始,zabbix返回文本数据可以是空格。
UserParameter=ping[*],echo $1 >>> ping[0] - 将一直返回0 >>> ping[aaa] - 将一直返回 ‘aaa‘
案例一:简单的key实现
free | awk ‘/^Mem:/{print $4}‘ ##监控内存 88412
1、编辑:vim /etc/zabbix/zabbix_agentd.conf
UserParameter=Mem.free,free | awk ‘/^Mem:/{print $4}‘
2、重启:service zabbix-agent restart
3、测试:zabbix_get -s agent_ip -k "Mem.free"
案例二:高级的key监控内存总大小和当前使用
我们都知道/proc是内核的反射区,/proc/meminfo 中显示的内存信息
cat /proc/meminfo MemTotal: 1001332 kB MemFree: 121864 kB MemAvailable: 325308 kB Buffers: 0 kB Cached: 274108 kB ........
上面显示出来了内存的详细信息,我们如何定义key让zabbix服务端监控我们主机的内存信息
cat /proc/meminfo | awk "/^MemTotal:/{print $2}"
MemTotal: 1004136 kB
1、我们就监控这些参数,用一个key实现
MemTotal: 1004136 kB
MemFree: 87800 kB
Buffers: 108264 kB
Cached: 590832 kB
2、编辑:vim /etc/zabbix/zabbix_agentd.conf
##$1 是调用[*]里面的参数,用$$2,因为使用一个$会让shell命令认为是调用第二个[*]里面的参数 UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk ‘/^$1:/{print $$2}
3、测试:
zabbix_get -s 10.1.252.241 -k "memory.usage[MemTotal]"
1004136
zabbix_get -s 10.1.252.241 -k "memory.usage[MemFree]"
85464
zabbix_get -s 10.1.252.241 -k "memory.usage[Buffers]"
108516
zabbix_get -s 10.1.252.241 -k "memory.usage[Cached]"
590900
4、到zabbix服务器上面添加对应的参数监控项,然后集中到一个图里面
案例三:利用高级的key监控nginx的状态
1、nginx server的主配置文件 都配置status模块 代码端如下
location /ngst{
stub_statuson;
access_logoff;
allow127.0.0.1;
deny all;
}
2、vim /home/zabbix/nginx_status.sh #nginx-status的取值脚本
#!/bin/bash # host=‘127.0.0.1‘ port=‘80‘ status=‘/status‘ active() { curl -s http://${host}:${port}${status} | awk ‘/^Active/{print $3}‘ } accepts() { curl -s http://${host}:${port}${status} | awk ‘NR==3{print $1}‘ } handled() { curl -s http://${host}:${port}${status} | awk ‘NR==3{print $2}‘ } requests() { curl -s http://${host}:${port}${status} | awk ‘NR==3{print $3}‘ } reading() { curl -s http://${host}:${port}${status} | awk ‘NR==4{print $2}‘ } writing() { curl -s http://${host}:${port}${status} | awk ‘NR==4{print $4}‘ } waiting() { curl -s http://${host}:${port}${status} | awk ‘NR==4{print $6}‘ } $1
3、chmod +x nginx_status.sh
4、编辑:vim /etc/zabbix/zabbix_agentd.conf
UserParameter=nginx.status[*],/home/zabbix/nginx_status.sh $1
5、重启:service zabbix-agent restart
6、测试:zabbix_get -s 10.1.252.241 -k "nginx.status[requests]" #服务端测试
7、web 端添加
8、放进一个图表,更直观的查看
--------------------------------------------------------------------------------------------------
文章转自于:http://zhang789.blog.51cto.com/11045979/1869798
本文出自 “北冰--Q” 博客,请务必保留此出处http://beibing.blog.51cto.com/10693373/1873146
以上是关于zabbix -- 自定义key的主要内容,如果未能解决你的问题,请参考以下文章