zabbix5 web监测并推送告警信息到钉钉群

zabbix5 web监测

zabbix5监控网页状态,当网页出现问题时,往钉钉群推送告警信息。

创建web监测

点击模板选择web监测
在这里插入图片描述
1)web监测场景设置如下:
zabbix5 web监测并推送告警信息到钉钉群_第1张图片
2)web监测步骤设置如下:
zabbix5 web监测并推送告警信息到钉钉群_第2张图片
zabbix5 web监测并推送告警信息到钉钉群_第3张图片
成功添加步骤
zabbix5 web监测并推送告警信息到钉钉群_第4张图片
web场景设置成功
zabbix5 web监测并推送告警信息到钉钉群_第5张图片
在这里插入图片描述
3)查看web监测状态
zabbix5 web监测并推送告警信息到钉钉群_第6张图片

设置触发器

设置触发器,触发器名称为:测试【数据接口主页崩了]
当监测的网页返回的状态码不等于200的时候,触发报警

zabbix5 web监测并推送告警信息到钉钉群_第7张图片
选择监控项
Response code for step “打开首页” of scenario “百度首页”.
web.test.rspcode[百度首页,打开首页]
表达式如下:表示最新取回的值与200状态码进行比较,当状态码不等于200时触发告警

{Zabbix server:web.test.rspcode[百度首页,打开首页].last()}<>200

zabbix5 web监测并推送告警信息到钉钉群_第8张图片
为了触发问题报警,这里修改监控项等于200告警,如下所示触发告警:
在这里插入图片描述
在这里插入图片描述

往钉钉群推送报警

1)设置报警媒介类型,脚本名称为zabbix_monitor_test.py

zabbix5 web监测并推送告警信息到钉钉群_第9张图片

2)信息模板的类型选择:问题模板

主题:
Problem: {EVENT.NAME}
消息:
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}

zabbix5 web监测并推送告警信息到钉钉群_第10张图片
3)设置报警媒介类型的选项
zabbix5 web监测并推送告警信息到钉钉群_第11张图片
4) 部署python脚本
监控脚本应该存放到/usr/lib/zabbix/alertscripts目录下

cat /etc/zabbix/zabbix_server.conf
#查看监控脚本位置
AlertScriptsPath=/usr/lib/zabbix/alertscripts

设置zabbix_agent允许以root用户运行,确保可以执行python脚本

vim /etc/zabbix/zabbix_agentd.conf
AllowRoot=1

设置后重启zabbix_agent,查看zabbix-agent的状态

systemctl restart zabbix-agent
systemctl status zabbix-agent

zabbix_monitor_test.py实现获取监控信息,并往钉钉群推送告警信息
脚本放到/usr/lib/zabbix/alertscripts/目录下:

#!/usr/local/bin/python3
import time  # 时间模块
import os, sys
import requests
import json


api_url = 'https://oapi.dingtalk.com/robot/send?access_token=25fad8baeaa9b07c16ab71e8c023398fb5ee1fe4b1f346af292899dff0ea8b36'
headers = {'Content-Type': 'application/json;charset=utf-8'}


# 往钉钉群推送消息
def msg(text):
    json_text = {
        "msgtype": "markdown",
        "markdown": {
            "title": "编组状态通知",
            "text": text
        }
    }
    print(requests.post(api_url, json.dumps(json_text), headers=headers).content)


if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

为用户设置报警媒介类型

这里是为管理员用户设置钉钉告警
在这里插入图片描述
报警媒介选择钉钉报警
在这里插入图片描述
要赋予用户有读写权限
在这里插入图片描述

创建动作

1)添加动作
为触发器添加动作,选择上面设置的触发器,触发器名称为:测试【数据接口主页崩了]
监控项遇到问题,就会触发动作,往钉钉群中推送报警信息

zabbix5 web监测并推送告警信息到钉钉群_第12张图片
如下图所示选择动作对应的触发器:测试【数据接口主页崩了]

zabbix5 web监测并推送告警信息到钉钉群_第13张图片
2)设置操作
主题:故障{TRIGGER.STATUS},服务器:{HOSTNAME},发生:{TRIGGER.NAME}故障!
消息:
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
告警项目:{ITEM.NAME}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.VALUE}
}
zabbix5 web监测并推送告警信息到钉钉群_第14张图片
3)设置恢复操作
操作类型:选择通知所有参与者
主题:恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}:{TRIGGER.NAME}已恢复
消息:{
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
故障持续时间:{EVENT.AGE}
恢复时间:{EVENT.RECOVERY.TIME}
告警等级:{TRIGGER.SEVERITY}
}
动作设置完如下图所示:
zabbix5 web监测并推送告警信息到钉钉群_第15张图片
成功设置了动作,动作名称为:网页挂掉触发钉钉告警
zabbix5 web监测并推送告警信息到钉钉群_第16张图片

触发监控项告警,测试往钉钉群推送消息的功能

为了触发告警,设置状态码等于200触发报警

{Zabbix server:web.test.rspcode[百度首页,打开首页].last()}=200

如下图所示:成功触发触发器告警,往钉钉群推送告警信息
在这里插入图片描述
钉钉群收到的告警信息如下所示:
在这里插入图片描述
问题修复后,触发动作恢复操作,会往钉钉群里推送问题已解决信息,如下图所示:

#测试直接通过修改触发器监控项的值修复问题
{Zabbix server:web.test.rspcode[百度首页,打开首页].last()}<>200

zabbix5 web监测并推送告警信息到钉钉群_第17张图片

往钉钉群推送消息,参考这篇博客:利用钉钉接口往钉钉群推送信息](https://blog.csdn.net/zhengzaifeidelushang/article/details/106208515)

你可能感兴趣的:(linux,zabbix5,web监测,往钉钉群推送告警信息,zabbix)