zabbix 自定义key的简单使用
zabbix版本:zabbix-3.0.2zabbix客户端配置:
zabbix的监控类型分为server和server active(不确定用哪个适合,可以都选择)
在zabbix_agentd.conf中Hostname一定要填写,而且不能和其他监控服务器重复。
如果UserParameter名含\'""`*?{}[]~$!&;()|#@这些字符,默认情况下,Zabbix无法正常处理这些参数,需要在zabbix_apentd.conf中开启UnsafeUserParameters,并将其值设为1
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
####### USER-DEFINED MONITORED PARAMETERS #######
### Option: UnsafeUserParameters
# Allow all characters to be passed in arguments to user-defined parameters.
# 0 - do not allow
# 1 - allow
#
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1 把上面的include前的注释去掉,这样你的自定义的key就可以放在zabbix_agentd.conf.d这个目录下
# ls
userparameter_script.conf #名字自己随便取 你可以在userparameter_script.conf这个文件下自定义key
如下为灵活的用户自定义参数
UserParameter=key
[*],command
参数 描述Key唯一.
[*]表示里面可以传递多个参数Command需要执行的脚本,key的[]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令 如:UserParameter=get.os.type, head -1 /etc/issue
以上配置完成后重启zabbix_agentd
如果你定义的key比较少就一两个,也可以在zabbix_agentd.conf直接添加
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=,
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
UserParameter=get.os.type, head -1 /etc/issue
UserParameter=custom.vfs.dev.read.ops
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'
UserParameter=custom.vfs.dev.read.ms
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
UserParameter=custom.vfs.dev.write.ops
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
UserParameter=custom.vfs.dev.write.ms
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
UserParameter=custom.vfs.dev.io.active
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
UserParameter=custom.vfs.dev.io.ms
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
UserParameter=custom.vfs.dev.read.sectors
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
UserParameter=custom.vfs.dev.write.sectors
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}' 在文件中查找Option:UserParamete可以找到,在下面直接添加即可,这是不用把UnsafeUserParameters设置为1,注释掉即可!
UserParameter=custom.vfs.dev.read.ops
[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}' 其中的$1是在执行key是需要添加的参数否者会报错。
检验key是否可以正常使用(以下命令在zabbix服务端检验)
# /usr/local/zabbix-3.0.2/bin/zabbix_get -s 192.168.10.74 -k get.os.type
CentOS release 6.8 (Final)
带参数的key
# /usr/local/zabbix-3.0.2/bin/zabbix_get -s 192.168.10.74 -k custom.vfs.dev.read.ops
681 zabbix服务端配置
配置-主机-选择主机-监控项-创建监控项
http://s4.运维网.com/wyfs02/M02/82/B8/wKioL1dfdCLRnWK7AABg7JawqHE019.jpg
以上设置完成之后就可以在最新数据下查看是否获取数据
http://s4.运维网.com/wyfs02/M01/82/B9/wKiom1dfc4eCL9-ZAACwDWaGqzA585.jpg
http://s4.运维网.com/wyfs02/M01/82/B8/wKioL1dfdJmS95K6AACyoi7TfEA677.jpg
这样一个简单的key就定义完成了。当然这个key在zabbix自带的key也能实现这个功能,只是为了演示而已。zabbix自带的key已经十分强大,一般需要监控的基础项它都有。可以直接去查看相关文档!
自定义key的脚本是不限制语言的,只要能返回数据即可!
如:UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言
页:
[1]