浅谈Python 钉钉报警必备知识系统讲解

所属分类: 脚本专栏 / python 阅读数: 1658
收藏 0 赞 0 分享

本章所讲内容:

       1、钉钉报警设置

       2、钉钉报警脚本运行。

1、钉钉报警设置

钉钉,关于webhook的报警需求,钉钉报警也是我们在公司中常见的报警系统,在这里主要是结合zabbix二次开发使用,来达到完美报警的使用。

1.1、钉钉报警第一步,创建群机器人

接口地址:

https://oapi.dingtalk.com/robot/send?access_token=a25324cafc5b0f2bb239b5e56c71e7f378f570a3d281160dbec9e4f8c4a7e493

文档地址:

https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.karFPe&treeId=257&articleId=105735&docType=1

1.2 发送信信息

1.2.1 发送@所有人的消息

      1、发送普通的消息

import requests
import json
url = 'https://oapi.dingtalk.com/robot/send?access_token=a25324cafc5b0f2bb239b5e56c71e7f378f570a3d281160dbec9e4f8c4a7e493 '

headers = {
  "Content-Type": "application/json",
  "Chartset": "utf-8"
}
#要发送的文本是json格式
request_data = {
  #此消息的类型为固定的text
  "msgtype": "text",

  "text": {
    #消息的内容
    "content": "大家新年快乐"
  },
  "at": {
    #被@人的手机号
    "atMobiles": [],
    #控制@所有人
    "isAtAll": True
  }
}
#把json转变为字符串格式数据
send_data = json.dumps(request_data)
#这个是发送post请求,请求钉钉接口
response = requests.post(url=url,headers=headers,data=send_data)
#讲求成功后返回的数据
content = response.content.decode()
#打印
# 课程 vip 标准
# 替换 视频
print(content)

第二步进行接口开发

2、修改结构,具体操作

import sys
import json
import requests

url = 'https://oapi.dingtalk.com/robot/send?access_token=a25324cafc5b0f2bb239b5e56c71e7f378f570a3d281160dbec9e4f8c4a7e493 '

def WriteLogByDing(content):
  headers = {

    "Content-Type": "application/json",
    "Chartset": "utf-8"
  }
  request_data = {
    "msgtype": "text",
    "text": {
      "content": content
    },
    "at": {
      "atMobiles": [],
      "isAtAll": True

    }

  }

  sendData = json.dumps(request_data)
  response = requests.post(url = url,headers = headers,data = sendData)
  content = response.content.decode()
  print(content)
if __name__ == "__main__":
  content = input('请输入想要的信息')
  # content = sys.argv[1]
  WriteLogByDing(content)

1.2.2 发送带有链接的文档

import requests
import json

url = 'https://oapi.dingtalk.com/robot/send?access_token=a25324cafc5b0f2bb239b5e56c71e7f378f570a3d281160dbec9e4f8c4a7e493 '

headers = {
  "Content-Type": "application/json",
  "Chartset": "utf-8"
}

#要发送的文本是json格式
request_data = {

  #发送链接类型的数据
  "msgtype": "link",
  "link": {

    #链接提示
    "text":"群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。",

    #链接标题
    "title": "自定义机器人协议",
    #图片url地址
    "picUrl": "http://p3.so.qhmsg.com/sdr/200_200_/t013d7a21145c708288.jpg",
    #信息的链接跳转
    "messageUrl": "https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1"
  }
}

#把json转变为字符串格式数据
send_data = json.dumps(request_data)

#这个是发送post请求,请求钉钉接口
response = requests.post(url=url,headers=headers,data=send_data)

#讲求成功后返回的数据
content = response.content.decode()

#打印
# 课程 vip 标准
# 替换 视频
print(content)

1.2.3 发送makedown文档

import requests
import json

url = 'https://oapi.dingtalk.com/robot/send?access_token=a25324cafc5b0f2bb239b5e56c71e7f378f570a3d281160dbec9e4f8c4a7e493 '

headers = {

  "Content-Type": "application/json",
  "Chartset": "utf-8"
}

#要发送的文本是json格式
request_data = {
  "msgtype": "markdown",
  "markdown": {"title":"杭州天气",
         "text":"#### 杭州天气 \n > 9度, 西北风1级,空气良89,相对温度73%\n\n > ![screenshot](http://i01.lw.aliimg.com/media/lALPBbCc1ZhJGIvNAkzNBLA_1200_588.png)\n > ###### 10点20分发布 [天气](http://www.thinkpage.cn/) "
         },
  "at": {
    "atMobiles": [],
    "isAtAll":False
  }

}

#把json转变为字符串格式数据
send_data = json.dumps(request_data)
#这个是发送post请求,请求钉钉接口
response = requests.post(url=url,headers=headers,data=send_data)
#讲求成功后返回的数据
content = response.content.decode()
#打印
print(content)

#要发送的文本是json格式
发送整体跳转的actionCard类型
request_data = {
  "actionCard": {
    "title": "乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身",
    "text": "![screenshot](@lADOpwk3K80C0M0FoA) \n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划",
    "hideAvatar": "0",
    "btnOrientation": "0",
    "singleTitle" : "阅读全文",
    "singleURL" : "https://www.dingtalk.com/"
  },
  "msgtype": "actionCard"
}

{
  "feedCard": {
    "links": [
      {
        "title": "时代的火车向前开",
        "messageURL": "https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI",
        "picURL": "https://www.dingtalk.com/"

      },
      {
        "title": "时代的火车向前开2",
        "messageURL": "https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI",
        "picURL": "https://www.dingtalk.com/"
      }
    ]
  },
  "msgtype": "feedCard"
}

总结:

1、钉钉报警设置

2、钉钉报警脚本运行。

更多精彩内容其他人还在看

深入源码解析Python中的对象与类型

这篇文章主要介绍了深入源码解析Python中的对象与类型,涉及到对象的引用计数方法和类型的定义等深层次内容,需要的朋友可以参考下
收藏 0 赞 0 分享

一篇文章入门Python生态系统(Python新手入门指导)

原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍
收藏 0 赞 0 分享

Python实时获取cmd的输出

本文给大家分享python实时获取cmd的输出,对python实时获取输出相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

分享Python字符串关键点

字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串,通过本篇文章给大家分享python字符串关键点相关资料,感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

Python中内置数据类型list,tuple,dict,set的区别和用法

这篇文章主要给大家介绍了Python中内置数据类型list,tuple,dict,set的区别和用法,都是非常基础的知识,十分的细致全面,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

Python学习笔记整理3之输入输出、python eval函数

这篇文章主要介绍了Python学习笔记整理3之输入输出、python eval函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

十个Python程序员易犯的错误

不管是在学习还是工作过程中,人都会犯错。虽然Python的语法简单、灵活,但也一样存在一些不小的坑,一不小心,初学者和资深Python程序员都有可能会栽跟头。本文为大家分享了10大常见错误,需要的朋友可以参考下
收藏 0 赞 0 分享

使用Python编写简单的端口扫描器的实例分享

这篇文章主要介绍了使用Python编写简单的端口扫描器的实例分享,文中分别介绍了单线程和多线程的实现方式,需要的朋友可以参考下
收藏 0 赞 0 分享

用ReactJS和Python的Flask框架编写留言板的代码示例

这篇文章主要介绍了用ReactJS和Python的Flask框架编写留言板的代码示例,其他的话用到了MongoDB这个方便使用JavaScript来操作的数据库,需要的朋友可以参考下
收藏 0 赞 0 分享

在DigitalOcean的服务器上部署flaskblog应用

这篇文章主要介绍了在DigitalOcean的服务器上部署flaskblog的方法,flaskblog是用Python的Flask开发的一个博客程序,而DigitalOcean则是大受欢迎的SSD主机提供商,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多