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。配置 动作
收到短信通知
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