zabbix 自定义key的简单使用

zabbix版本:zabbix-3.0.2


zabbix客户端配置:

zabbix的监控类型分为server和server active(不确定用哪个适合,可以都选择)

在zabbix_agentd.conf中Hostname一定要填写,而且不能和其他监控服务器重复。

如果UserParameter名含\'""`*?{}[]~$!&;()<>|#@这些字符,默认情况下,Zabbix无法正常处理这些参数,需要在zabbix_apentd.conf中开启UnsafeUserParameters,并将其值设为1


vim /usr/local/zabbix/etc/zabbix_agentd.conf

1
2
3
4
5
6
7
8
9
10
11
12
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这个目录下

1
2
[root@localhost 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直接添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
### 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,注释掉即可!

1
UserParameter=custom.vfs.dev. read .ops[*], cat  /proc/diskstats  grep  $1 |  head  -1 |  awk  '{print $$4}'

其中的$1是在执行key是需要添加的参数否者会报错。

检验key是否可以正常使用(以下命令在zabbix服务端检验)

1
2
[root@localhost 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

1
2
[root@localhost opt] # /usr/local/zabbix-3.0.2/bin/zabbix_get -s 192.168.10.74 -k custom.vfs.dev.read.ops[sda1]
681

zabbix服务端配置

配置-主机-选择主机-监控项-创建监控项

wKioL1dfdCLRnWK7AABg7JawqHE019.jpg

以上设置完成之后就可以在最新数据下查看是否获取数据

wKiom1dfc4eCL9-ZAACwDWaGqzA585.jpg

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的返回值。脚本可以是任何可以运行的脚本语言




本文转自 irow10 51CTO博客,原文链接:http://blog.51cto.com/irow10/1789017,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值