[Zabbix问题解决]自定义脚本获取key失败怎么办?

简介:

之前在http://chenx1242.blog.51cto.com/10430133/1839829 这篇文章里写了如何创建一个自定义的key来让zabbix进行实时的监控。但是也会有这样一种情况,那就是脚本在客户端上是可以跑通而且可以得到结果,但是在zabbix_get却死活无法正确的得到脚本结果,得到的是空值。如下图:

wKiom1e2uHOBFKuKAAArfm11JQc317.png

注意一下,ZBX_NOTSUPPORTED是key不对的意思,而下面那个就是得到空值的意思。


一般来说这种情况非常蛋疼,zabbix就是这么一个缺点:出问题不表现出来,但是zabbix还有一个优点,那就是问题都会在日志文件里,于是我们就在控制端打开zabbix_agentd.log,查看一下情况,结果日志如图:

1.png

看见了吧,在取key的时候,各种权限拒绝。这是因为zabbix_agent是由zabbix这个账户操作的,而这个用户本身是没有很多权限的,所以我们要给zabbix一些权限,让它可以成功的访问文件。于是我们#sudoedit /etc/sudoers,把原来的文件改成这样:

wKioL1e2ubvyQ71wAABBJh05mWk574.png

把zabbix跟root的权限平起平坐,而且还nopasswd,这样sudo的时候就不用每次都输入一次root的密码了,然后在不需要tty,文件改好了之后保存退出。


这个时候我们来写一个小脚本,这个脚本名叫get-payload,目的是要从/tmp/zksync/pms这个文件里取到一个payload的值。我们先看一下/tmp/zksync/pms这个文件内容,以及脚本里要使用的语句:

wKiom1e2upLhFNoDAAA6WomSaNs773.png

可以看到我们可以截取到8这个payload,然后脚本也就很好写了,脚本如下:

1
2
3
#!/bin/bash
payload=$( cat  /tmp/zksync/pms  | perl -n -e '/.*payload\":(\d+)\}\}/ && print $1' #这里我用正则匹配的,不是用上面的cut,效果一样的
echo  $payload

然后把这个脚本的绝对路径放在zabbix_agentd.conf里,如图:

wKioL1e2u0zAEw1-AABlXD6TjKs966.png

注意哦注意哦,脚本的绝对路径前面是有sudo这四个字母的!:wq保存退出,并且重启zabbix_agent之后,来到zabbix_server端去get一下,看一下效果:

wKiom1e2u6Phu-fRAAAvZ61hY60131.png

无论是pid还是payload都能成功获取到数值,成功!!!


问题至此得到了解决,我们就可以在监控奇葩的项目的道路上越走越远了...


 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1840331


相关文章
|
6月前
|
监控
zabbix如何添加自定义监控项
zabbix如何添加自定义监控项
261 0
|
7月前
|
监控 Ubuntu Shell
用shell脚本部署zabbix
用shell脚本部署zabbix
129 1
|
9月前
|
监控 网络协议 Shell
使用脚本安装zabbix agent 6.0(新手友好)
使用脚本安装zabbix agent 6.0(新手友好)
|
15天前
|
监控 关系型数据库 应用服务中间件
zabbix自定义监控、钉钉、邮箱报警
zabbix自定义监控、钉钉、邮箱报警,实验准备,安装,添加监控对象,添加自定义监控项,监控mariadb,监控NGINX,钉钉报警设置,邮件报警
135 0
|
9月前
|
监控 Shell
项目采坑日志——zabbix agent执行脚本,提示 Permission denied
项目采坑日志——zabbix agent执行脚本,提示 Permission denied
335 0
|
监控 数据安全/隐私保护
zabbix 5.0 一键部署脚本
zabbix 5.0 一键部署脚本
380 0
|
监控 应用服务中间件 PHP
zabbix用户自定义参数监控 php-fpm 服务的状态及导出模板和自定义参数
zabbix用户自定义参数监控 php-fpm 服务的状态及导出模板和自定义参数
150 0
zabbix用户自定义参数监控 php-fpm 服务的状态及导出模板和自定义参数
|
监控 Linux
【zabbix教程六】——自定义item和trigger当内存不足10%时触发报警
【zabbix教程六】——自定义item和trigger当内存不足10%时触发报警
143 0
【zabbix教程六】——自定义item和trigger当内存不足10%时触发报警
|
监控 Linux
【zabbix教程四】——zabbix3.0监控磁盘IO与自定义模板
【zabbix教程四】——zabbix3.0监控磁盘IO与自定义模板
327 0
【zabbix教程四】——zabbix3.0监控磁盘IO与自定义模板
|
运维 监控
一键部署zabbix监控平台脚本
应一位网友的要求,让我帮忙写个关于一键部署zabbix监控平台的脚本。这个脚本的思路,与我前面写的一个脚本是很相似的,所以用下班时间匆忙写了一个,算是能跑起来吧。
149 0
一键部署zabbix监控平台脚本