如何确认key配置正确呢?当然是有测试方法的,用zabbix_get来获取值。
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k vm.memory.size[pavailable]
55.392107
监控指标的自定义
Keyd 的格式
Key(监控指标)可以带参数,该参数为一个数组列表,可以同时传递多个参数。
Key[参数]
Key[参数1,参数2]
例如:
vfs.fs.size[/]
vfs.fs.size[/opt]
当参数中间存在空格时,可以将参数放在双引号中;当参数本身存在引号时,可以使用“”进行转义,如name.check[“my name”Hello””]。在默认情况下,如果只是一个字符串作为参数,则无须使用双引号;多个参数之间用逗号(,)隔开。
Key名称的定义范围
l所有的数字(0~9)
l所有的小写字母(a~z)
l所有的大写字母(A~Z)
l下画线(_)
l横线(-)
l点(.)
Key的参数数组应用实例
多个参数之间用逗号(,)隔开,每个参数对key分别传递参数的值。
UserParameter=wc[*],grep -c "$2" $1
测试如下:
zabbix_get -s 127.0.0.1 -k wc[/etc/passwd,root]
用户自定义参数
Key自定义的语法格式
在/etc/zabbix/zabbix_agentd.conf或/usr/local/zabbix/etc/zabbix_agentd.conf中配置参数。
UserParameter=key,command
Key返回的值
自定义参数可以返回文本(character、log、text)和空值,如果返回的是一个无效值,则显示ZBX_NOTSUPPORTED。
自定义key的例子
在/etc/zabbix/zabbix_agentd.conf或/usr/local/zabbix/etc/zabbix_agentd.conf后面添加如下内容:
UserParameter=get.os.type,cat /etc/redhat-release
然后重启zabbix_agentd服务(注意:修改配置后必须重启服务)
systemctl restart zabbix_agentd.service
运行测试命令,查看key
zabbix_get -s 127.0.0.1 -k get.os.type
子配置文件的配置
为了便于维护和分类管理,UserParameter的内容可以单独写一个配置文件。
在/etc/zabbix/zabbix_agentd.conf或/usr/local/zabbix/etc/zabbix_agentd.conf中配置
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
Include就是zabbix_agent.conf中部分内容的子配置文件,在其他开源软件中也采用类似的做法,便于维护。在子配置文件中通常会定义UserParameter。
用zabbix_agentd查看key是否被支持。
zabbix_agentd -p | grep get.os