centos7下docker运行zabbix钉钉报警配置

行云流水
2022-03-08 / 3 评论 / 1,029 阅读 / 正在检测是否收录...

前言

zabbix监控系统部署完成以后,出现问题及时报警。是运维进行故障应急响应的关键。下面就来实现zabbix通过钉钉报警。

钉钉的配置

创建群聊

添加一个自定义机器人

webhook

zabbix配置

报警脚本 dingding.py

dingding.py 内容如下:

#!/usr/bin/env python3
#coding:utf-8

import requests
import json
import sys
import os
import datetime

#钉钉机器人的webhook的值
#token为钉钉后台上一步获取
webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx"

#日志文件
log_path = "/tmp/dingding.log"

#接收数据
user=sys.argv[1]
title=sys.argv[2]
text=sys.argv[3]

#构建数据
data={
  "msgtype": "text",
  "text": {
    "content": text
  },
  "at": {
    "atMobiles": [
      user
    ],
    "isAtAll": False
  }
}

#提交
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)

#创建日志文件
if os.path.exists(log_path):
  f=open(log_path,"a+")
else:
  f=open(log_path,"w+")

#写入分割线
f.write("\n" + "--"*30)

#写日志
if x.json()["errcode"] == 0:
  f.write("\n" + str(datetime.datetime.now()) + "  " + str(user) + "  " + "发送成功" + "  " + str(title) + "  " + "\n" + str(text))
  f.close()
else:
  f.write("\n" + str(datetime.datetime.now()) + "  " + str(user) + "  " + "发送失败" + "  " + str(title) + "  " + "\n" + str(text))
  f.close()

进行发送报警信息测试
/usr/lib/zabbix/alertscripts/dingding.py 189100xx805 监控测试 监控报警好不好使

配置zabbix报警媒介

配置动作


配置用户


报警在docker下实现

pip3 install pyinstaller  -i https://mirrors.aliyun.com/pypi/simple/
pyinstaller -F dingding.py

FAQ

发消息中文乱码

将docker内的环境变量设置为

LC_ALL=C.utf8
LANG=C.utf8

评论 (3)

取消
只有登录/注册用户才可评论
  1. 头像
    sunnyadam
    · Windows 10 · Google Chrome
    沙发

    学习到了,感谢博主

    回复
  2. 头像
    2333
    · Windows 10 · Google Chrome
    板凳

    对小白真的很友好,写的很全面。

    回复
  3. 头像
    1234
    · MacOS · Google Chrome
    地毯

    喜欢这篇文章,作者666,文章真棒!

    回复