[个人笔记] 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}故障!

消息内容为:

服务器:{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}
}

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

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

消息内容:

服务器:{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}
}

操作框的设置为:
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					# 编辑脚本内容

Python环境预装

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

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)

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

(略)



参考来源

  1. 121-配置zabbix通过钉钉机器人报警
  2. python发送钉钉消息
  3. 钉钉开放文档
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

歪果仨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值