首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过脚本进行的zabbix检查总是会触发

通过脚本进行的zabbix检查总是会触发
EN

Server Fault用户
提问于 2018-01-18 14:04:27
回答 1查看 458关注 0票数 0

我在服务器上有一个脚本,它要么输出"OK - foobar buz foo",要么输出"ERROR - blah blah foo“。在后一种情况下,我希望在zabbix触发一个警报。

我到目前为止所做的事:

我已经将UserParameter配置为:

代码语言:javascript
复制
# cat /etc/zabbix/zabbix_agentd.d/userparameter_check_reposync.conf
UserParameter=spacewalk.reposync[*],/usr/local/sbin/check_reposync.py $1

我重新加载了zabbix代理,下面的检查正常工作:

代码语言:javascript
复制
# zabbix_agentd -t spacewalk.reposync[centos7-x86_64.log]
spacewalk.reposync[centos7-x86_64.log]        [t|OK: All good for the repository "centos7-x86_64"]

现在,我在zabbix3.2web接口中创建了一个条目,它的类型为“字符”,并定义了一个触发器,如

代码语言:javascript
复制
{somehost.acme.org:spacewalk.reposync[centos7-x86_64.log].str("ERROR")}=1

我的理解是,由于zabbix_agentd不返回字符串"ERROR",因此不应该触发该触发器。不过,我对这个扳机有个警报。

我配置错了什么?如果失败,我如何调试它?

解决方案:

在了解了调试方法和最有可能的原因--权限问题--之后,我更改了配置如下:

为了确保zabbix不受权限的限制,我通过sudo以root身份运行了该检查:

代码语言:javascript
复制
# cat /etc/zabbix/zabbix_agentd.d/userparameter_check_reposync.conf
UserParameter=spacewalk.reposync[*],sudo /usr/local/sbin/check_reposync.py $1

然后在/etc/sudoers.d/10_zabbix中添加所需的sudo配置:

代码语言:javascript
复制
zabbix ALL=(root)  NOPASSWD:/usr/local/sbin/check_reposync.py *

另一种选择是提供允许检查的acls。从安全的角度来看,这可能更好。然而,从操作系统的角度来看,sudo方法似乎更简单,更易于调试和重建。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-01-18 14:57:20

不要使用-t-p测试项。运行它的方式是使用root用户的权限执行它。即使您以Zabbix用户的身份运行它,环境和其他因素也会有所不同。使用zabbix_get对运行中的代理进行测试。http://www.zabbixbook.com/2017/08/22/debugging-zabbix-userparameters/将更详细地介绍。

在这种情况下,这很可能是权限错误。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/892860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档