首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zabbix不运行自定义警报脚本。

Zabbix不运行自定义警报脚本。
EN

Server Fault用户
提问于 2017-03-09 09:24:27
回答 3查看 6.2K关注 0票数 2

我在运行Debian 8和Zabbix 3.2。

我已经做了一个自定义警报脚本,当我在终端中运行时,这个脚本运行得很好:

代码语言:javascript
复制
/bin/sh /usr/lib/zabbix/alertscripts/send_sms.sh 4483222740 Hello

这是通过Twilio发送一条短信,工作良好。

在我的zabbix_server.conf中有:

代码语言:javascript
复制
AlertScriptsPath=/usr/lib/zabbix/alertscripts

我在https://www.zabbix.com/documentation/3.2/manual/config/notifications/media/script之后创建了一个自定义媒体类型

但是这个脚本没有被调用。我有一个一般的媒体类型的电子邮件,这是正确的触发。

我对脚本的权限是:

代码语言:javascript
复制
ls -alh
total 12K
drwxr-xr-x 2 root root 4.0K Mar  9 09:04 .
drwxr-xr-x 4 root root 4.0K Feb  3 13:36 ..
-rwxr--r-- 1 root root  165 Mar  9 09:12 send_sms.sh

我尝试在/var/log/目录中对"send_sms“进行grep,以查看是否发生了任何错误。没什么。

我的剧本以

代码语言:javascript
复制
exit 0

如何调试?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2017-03-09 09:47:43

( a)您引用的权限-rwxr--r-- 1 root root 165 Mar 9 09:12 send_sms.sh只允许对root用户(脚本所有者)执行脚本。Zabbix守护进程通常以zabbix用户的身份运行,因此用户没有运行脚本的权限。由于该脚本已经具有可读性,将权限更改为755应该是可以接受的,并将允许Zabbix运行该脚本。

b)如果您的脚本依赖于任何环境变量,请确保设置脚本本身中的变量- Zabbix不提供配置文件或任何您可能希望设置这些变量的内容。

票数 3
EN

Server Fault用户

发布于 2017-03-09 10:40:07

您可以创建一个sudoers文件,允许zabbix用户运行脚本,而不是打开权限。Sudoers的语法非常精细,如果你把它搞砸了,它会完全破坏sudo,直到删除不正确的文件或行为止,所以要小心。

zabbix ALL=NOPASSWD: /usr/lib/zabbix/alertscripts/send_sms.sh *需要在zabbix和ALL之间有一个制表符字符,而不是一个空格,所以确保您的编辑器不会替换它。这个网站似乎是这样做的,所以不要只是直接复制和粘贴。

例如,在/etc/sudoers.d/zabbix中删除该行。这样做的根,这样你就不会被锁在外面,如果你不小心打破了自己的sudo。之后,您可以使用visudo -cf /etc/sudoers.d/zabbix测试语法。

编辑:再一次,我的用例是与使用apt-get更新相关的检查,它需要根。Twilio可能仍然有效,这只是读取/执行您的文件的问题。

票数 1
EN

Server Fault用户

发布于 2017-06-02 10:15:33

我解决了这个问题,不是关于许可,写在这里可以帮助别人。因为运行zabbix的脚本不在Alertscript中,所以您只需要添加一个命令: cd $Alertscriptpath (基于您的环境),所以它只是工作

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

https://serverfault.com/questions/837214

复制
相关文章

相似问题

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