zabbix版本:zabbix-3.0.2
zabbix客户端配置:
zabbix的监控类型分为server和server active(不确定用哪个适合,可以都选择)
在zabbix_agentd.conf中Hostname一定要填写,而且不能和其他监控服务器重复。
自定义key之前需要先设置个参数:UnsafeUserParameters=1
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这个目录下
[[email protected] 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=<key>,<shell command> # 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服务端检验)
[[email protected] opt]# /usr/local/zabbix-3.0.2/bin/zabbix_get -s 192.168.10.74 -k get.os.type CentOS release 6.8 (Final)
带参数的key
[[email protected] opt]# /usr/local/zabbix-3.0.2/bin/zabbix_get -s 192.168.10.74 -k custom.vfs.dev.read.ops[sda1] 681
zabbix服务端配置
配置-主机-选择主机-监控项-创建监控项
以上设置完成之后就可以在最新数据下查看是否获取数据
这样一个简单的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的返回值。脚本可以是任何可以运行的脚本语言