• 用python写一个预警机器人(支持微信和钉钉)


    背景

    线上的系统在运行中,发生故障时怎么及时的通过手机通知到相关人员?当然这是个很简单的需求,现有的方法有很多,例如:

    如果我们用的云产品,那么一般都会有配套对应的监控预警功能,根据需要配置一下即可,支持短信,邮箱通知。

    如果我们已经搭建了一套运维监控系统,比如zabbix之类的,那么我们学会zabbix,然后配置也即可,支持短信,邮箱通知。

    但如果我们希望有一个比较简单轻便,能灵活定制和快速实施的方法,又能同时支持微信和钉钉通知呢?以下就介绍这样一个基于python的简单方法,暂且起个名字叫robotprobe。

    上路

    在开始之前,先定义两种对象,robotprobe将由这两种对象组成。

    Probe:探针,用于检查检测某项功能,某个指标是否正常,并包含预警相关规则配置。

    Robot:机器人,发生异常情况时,要发送通知的对象,这里特指微信机器人和钉钉机器人。

    Probe


     

    UrlProbe


     

    SqlProbe


     

    其他

    其他类型的Probe则可以根据实际需要自由扩展实现。

    Robot


     

    WechatRobot


     

    DingTalkRobot


     

    微信VS钉钉

    微信机器人基于wxpy实现,wxpy功能很丰富,基本微信上收发消息相关的功能都可以用它来实现,这篇文章有个挺好的使用示例,我们这里只用到发送消息的功能,微信虽然功能,但有个缺点就是用wxpy发消息(其实是网页版微信),账号有可能被封,另外新注册的微信号也是不能用的。

    钉钉机器人基于DingtalkChatbot实现,优点就是官方默认提供机器人的功能,虽然发消息有限制,但一可以控制发消息的频率,二也可加多个机器人去分流,缺点就是只能发消息,不收消息,进而根据收到的消息做定制回复。

    Demo示例


     

    依赖

    certifi==2019.3.9

    chardet==3.0.4

    DingtalkChatbot==1.3.0

    future==0.17.1

    idna==2.8

    itchat==1.2.32

    PyMySQL==0.9.3

    pypng==0.0.19

    PyQRCode==1.2.1

    requests==2.21.0

    requests-toolbelt==0.9.1

    schedule==0.6.0

    urllib3==1.24.1

    wxpy==0.3.9.8

  • 相关阅读:
    Python-OpenCV学习(三):图像的表示
    Python-OpenCV学习(一):OpenCV结构
    Numpy安装+导入出错的解决方法
    可信链测评
    《机器学习》第二周 多元线性回归
    《机器学习》第一周 一元回归法 | 模型和代价函数,梯度下降
    Ubutu16.04安装Transmisson
    Ubuntu “载入软件包列表失败” |“ 下载软件仓库信息失败”的解决方法
    《机器学习》第一周 Introduction | 监督学习与非监督学习的基本概念
    有道词典在Ubutu16.04上的安装
  • 原文地址:https://www.cnblogs.com/Pythonmiss/p/10649497.html
Copyright © 2020-2023  润新知