Rootop 服务器运维与web架构

zabbix 自定义脚本短信报警

zabbix版本:Zabbix 3.2.4

zabbix服务端:
# 定义脚本路径
编辑 /usr/local/zabbix/etc/zabbix_server.conf
修改:
AlertScriptsPath=/usr/local/zabbix/alertscripts

# 允许用root运行脚本,否则日志出现permission deny
AllowRoot=1
保存退出,重启zabbix_server

shell脚本内容:
#!/bin/bash
token=”123″
templateid=$2

curl “http://ops.xxx.com/admin/sms.php?id=$templateid&token=$token” >> /tmp/sms.log
保存到AlertScriptsPath目录下。
通过zabbix调用shell,触发短信接口发送短信。

zabbix web中配置:

1、添加媒体类型
“管理” -> “报警媒介类型” -> “创建媒体类型”

点击 “添加” 完成

2、添加用户报警媒介
“管理” -> “用户” -> 点击 “{用户名}”(我这里为admin) -> 选择”报警媒介” -> 点击 “添加”

点击”添加”,添加完成,点击 “更新” 保存

3、通过zabbix的”web监测”功能,如果场景步骤失败,就判断网站异常,发送报警短信。

这个地方一定要是Failed step of scenario 场景失败次数,否则根据状态码(Response code for step)判断,无法触发。N是失败次数,0为没有失败。
现在关闭www.rootop.org网站nginx服务,监测到无法连接。

再次开启nginx。配置 动作

这个地方的6是我短信接口模板的id(短信接口自己写的)

收到短信通知

PS:
推测:
{ALERT.SENDTO}  对应 管理-用户-Admin-报警媒介-收件人
{ALERT.SUBJECT} 对应 配置-动作-{动作名称}-操作-默认接收人 (此处中文翻译应该是错的,英文界面此处为 Default subject) 我这里就用这个值代表触发哪个短信发送。
{ALERT.MESSAGE} 报警信息

这个3个参数,分别对应 sms.sh 脚本可能需要的3个参数:收件人地址、主题、内容
在3.0以后zabbix允许自定义参数,所以不会默认传递参数(2.0默认传递这3个参数)。

 

 

 

 

 

 

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3788.html

作者:Venus

专注于 服务器运维与web架构 E-mail:venus#rootop.org

评论已关闭。