当前位置:   article > 正文

[笔记] Zabbix配置钉钉群聊告警机制_zabbix 钉钉告警

zabbix 钉钉告警

系统工程 - 运维篇


系列文章回顾

第一章 戴尔PowerVault ME5012 存储服务器做快照计划的基本逻辑



下章内容

第三章 Zabbix实现自定义脚本监控Agent端


前言

测试搭建Zabbix监控平台,配置Zabbix的钉钉告警功能,实现Zabbix监控告警实时推送到钉钉群聊机器人,使用Webhook的形式实现告警。



实施步骤

1. 新增 需要监控的主机 ;在‘Zabbix Server’主机里添加监控项(简单检查)、触发器。
2. 导入自定义图标;新增拓扑图并添加图标;添加主机之间的链接关联。
3. 新增钉钉告警的报警媒介类型;给用户分配报警媒介类型;新增动作并关联到触发器,触发后操作应用到钉钉告警的消息模板。
4. 编写钉钉告警的Python脚本;测试Zabbix触发钉钉告警的有效性。



Zabbix配置钉钉群聊告警机制

新增监控主机,添加监控项,触发器

zb01

右上角创建主机,设置主机的相应参数

zb02

zb03

右上角创建监控项,类型设置 简单检查,键值使用ping丢包检测
zb04
zb05



zb06

右上角创建触发器,表达式从右边 [添加] 选择监控项并加入
zb07
zb08

结果选择 >= 10 ,即丢包率大于登录10%时就触发
zb09



导入自定义图标;新增拓扑图并添加图标;添加主机之间的链接关联

zb10
zb11
右上角创建图标,上传png/jpg/bmp/jpeg/ico等图片


zb12
右上角创建拓扑图,设置好参数后,编辑拓扑图,添加地图元素,类型选择 主机,主机选择自定义主机,图标选择 自定义图片
(截图略)


Ctrl键连选2个图标,添加链接
zb13



新增钉钉告警的报警媒介类型;给用户分配报警媒介类型;新增动作并关联到触发器,触发后操作应用到钉钉告警的消息模板

zb14
zb15
zb16
zb17
zb18
zb19
zb20
默认标题为:

服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
  • 1

消息内容为:

服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

操作框的设置为:
zb21
zb22
默认标题为:

服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
  • 1

消息内容:

服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

操作框的设置为:
zb23



配置钉钉机器人

zb24
zb25



编写钉钉告警的Python脚本

### ssh登录Zabbix,找到zabbix运行目录
whereis zabbix
which zabbix

### 进入zabbix的脚本执行目录
cd /usr/lib/zabbix
cd alertscripts

touch dingtalk.py	   		# 新增dingtalk的告警脚本
chmod +x dingtalk.py 		# 给脚本添加执行权限
vim dingtalk.py					# 编辑脚本内容
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Python环境预装

/usr/bin/python3 -m pip install requests DingtalkChatbot urllib3
  • 1

dingtalk.py

#!/usr/bin/python3
import json
import requests
import sys
import time
import hmac
import hashlib
import base64
import re
from dingtalkchatbot.chatbot import DingtalkChatbot

secret = "xxxxxxxxxxxxxxxx"				# 钉钉机器人的加签字段内容
webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx"	# 钉钉机器人的Webhook字段内容

def dd_robot(msg):
    dd = DingtalkChatbot(webhook=webhook, secret=secret)
    dd.send_text(msg=msg, is_at_all=False, at_mobiles=[])

if __name__ == "__main__":
    msg = str(sys.argv[1])
    outputmsg = (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + " 输出:" + msg)
    with open("/var/log/zabbix/zabbix_dingtalk.log", "a") as f:
        f.write(outputmsg + '\n')

    dd_robot(msg)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

测试Zabbix触发钉钉告警的有效性

(略)



参考来源

  1. 121-配置zabbix通过钉钉机器人报警
  2. python发送钉钉消息
  3. 钉钉开放文档
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/898487
推荐阅读
相关标签
  

闽ICP备14008679号