怎样使用Python脚本调用钉钉API接口发送告警关照

打印 上一主题 下一主题

主题 1774|帖子 1774|积分 5322

      在运维监控系统中,实时有效的告警关照是至关紧张的。本文将介绍怎样使用Python脚本调用钉钉API接口,实现将Zabbix等监控系统的告警信息实时发送到钉钉群。
一、准备工作

1. 安装须要的软件和环境

首先,确保你的系统上已经安装了Python3和pip工具。如果没有安装,可以通过以下下令进行安装:
安装pip

   
sudo yum install epel-release

  
sudo yum install python3

  
python3 --version

  
pip3 --version

  接下来,安装特定版本的requests库,以便进行HTTP请求:
   
pip install requests==2.7.0 -i https://mirrors.aliyun.com/pypi/simple/

  2. 设置钉钉呆板人

在钉钉群中创建自定义呆板人并获取Webhook URL,这是调用API的关键。

  • 打开钉钉应用,进入需要添加呆板人的群聊。
  • 进入群设置,点击“智能群助手”或“群呆板人”。

  • 添加呆板人,选择“自定义”类型。
  • 设置呆板人信息,填写呆板人的名称、设置头像,并勾选需要的安全设置(如加签)。
  • 获取Webhook URL,完成设置后,钉钉会天生一个Webhook URL,请复制并生存这个URL。


二、编写Python脚本

创建一个Python脚本dingding.py,用于向钉钉群发送告警关照。
 


  • send_dingding_alert函数:构造并发送HTTP POST请求到钉钉API。
  • api_url:更换为你在钉钉呆板人设置中获取的Webhook URL。
  • json_text:定义消息内容和格式,支持文本、Markdown等多种消息类型。

三、测试和验证脚本

通过下令行运行脚本并通报测试消息,验证脚本的基本功能。
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. import requests
  4. import json
  5. import sys
  6. def send_dingding_alert(message):
  7.     headers = {'Content-Type': 'application/json'}
  8.     json_text = {
  9.         "msgtype": "text",
  10.         "text": {"content": message},
  11.         "at": {"isAtAll": False}  # 如果不需要@任何人,可以删除"at"字段
  12.     }
  13.     api_url = "https://oapi.dingtalk.com/robot/send?access_token=02d3d319344082f07edcd4cae9618c7a8f956a5dxxxxxxxxxx"  # 替换为实际Token
  14.     response = requests.post(api_url, json.dumps(json_text), headers=headers)
  15.     return response.content
  16. if __name__ == "__main__":
  17.     if len(sys.argv) < 2:
  18.         print("Usage: python3 dingding.py <alert_message>")
  19.         sys.exit(1)
  20.     alert_message = sys.argv[1]
  21.     result = send_dingding_alert(alert_message)
  22.     print("响应内容:", result. Decode())
复制代码

python3 dingding.py "这是一条测试告警消息"
检查钉钉群是否成功接收到消息,确认整个流程的正确性。
四、集成到监控系统(如Zabbix)

1. 设置Zabbix告警媒介


  • 创建报警媒介类型

    • 在Zabbix Web界面,点击“设置” -> “报警媒介类型” -> “创建媒介类型”。
    • 设置脚本参数为:{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}。

  • 设置告警动作

    • 点击“设置” -> “动作” -> “触发器动作” -> “创建动作”。
    • 设置动作名称,设置操纵信息,选择接收告警的用户和消息模板。

  • 为用户添加报警媒介

    • 在用户设置中,添加“钉钉告警”媒介,并设置相应的参数。

2. 设置告警消息模板

在Zabbix动作设置中,设置告警消息模板,确保在故障发生和解决时发送包罗详细信息的消息。

故障发生消息模板
主题: 故障名称: {EVENT.NAME}

消息:

故障始于 时间: {EVENT.TIME} 日期: {EVENT.DATE}

故障名称: {EVENT.NAME}

故障主机: {HOST.NAME}

严重程度: {EVENT.SEVERITY}

额外信息: {EVENT.OPDATA}

故障ID: {EVENT.ID}

触发器地点: {TRIGGER.URL}

#信息类型是: Problem recov 故障解决的时间


故障解决消息模板
  1. <strong style="color:#4f4f4f; font-family:-apple-system,"SF UI Text",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif,SimHei,SimSun; font-size:18px; font-weight:bold">3. 测试告警集成</strong>
复制代码
触发一个测试告警,检查钉钉群是否成功接收到告警消息,并验证消息格式和内容的正确性。
五、总结

通过以上步骤,你已经成功实现了使用Python脚本调用钉钉API接口发送告警关照的功能。这种方法不仅实用于Zabbix监控系统,还可以集成到其他支持自定义告警脚本的监控系统中。钉钉呆板人的灵活性和强大的消息推送能力,使得运维团队可以或许更加实时有效地响应系统异常,提高运维效率。

希望这篇博客可以或许资助你顺利实现钉钉API的调用和告警关照的集成。如果有任何标题或建议,欢迎在评论区留言交流。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表