用Python把告警日志发到微信上

向量数据库人工智能与算法混合云

專 欄

picture.image

RaPoSpectre ,Python中文社区专栏作者。
网站:www. rapospectre .com

前言

笔者所在公司项目的告警信息会通过钉钉发送到群组或个人,这样如果服务出现了问题我们都会第一时间收到提醒并进行处理。

某日从钉钉收到告警信息的我突发奇想,如果自己的项目也能在出现问题的第一时间通过社交工具通知我岂不美 ( sang ) 滋 ( xin )滋( bing ) ( kuang )。

通过微信公众平台进行告警很容易,申请公众平台后写个告警后台或者使用企业微信进行接口信息发送。但不管是公众平台还是企业微信对于普通用户的入口太深,而且个人申请还需要提交资料等等一系列事情,显然不是我想要的结果。

之前 web 版微信的协议已经有大神解析过并封装了工具,之后又有优秀的作者不断完善封装了更好用的微信个人号接口。

利用微信个人号接口只要是个微信号就能担当发送日志警报的重任,不仅可以发送到个人同时还能发送到群组。

但是所有微信机器人都是自己主动运行,注册会话,没有办法接收外部程序的日志或告警,因此我就依托 wxpy 写了 wechat_sender。

wechat_sender

wechat_sender 是基于 wxpy 和 tornado 实现的一个可以将你的网站、爬虫、脚本等其他应用中各种消息 (日志、告警、运行结果等) 发送到微信的工具。

使用 wechat_sender 很简单,只需要有个人微信号,然后用个人微信号启动 wechat_sender 服务。

picture.image

1、登录微信并启动 wechat_sender 服务.

picture.image

2、在另一个脚本中向微信发送消息.

picture.image

当然,wechat_sender 支持 添加 logging handler 的方式直接继承进已有的项目中,例如我的个人的网站、爬虫脚本等,不必修改以前的代码,只需要在 logger 中增加一个 wechat_sender 的 loghandler 就可以把相关日志直接发送到微信中。

举个栗子:

picture.image

最后类似效果是这样滴:

picture.image

当然,wechat_sender 不仅可以用来发送日志和警报,你也可以把他当做日程、会议提醒的利器。

wechat_sender 提供了周期消息和延时消息的功能:

picture.image

如果返回正常,1 分钟后你将收到这条消息时间是 1 小时后的消息提醒:

picture.image

其他玩法

作为一只猿,颈椎神马的需要保护好,公司提供了理疗服务,但无奈名额有限,每次预约都很困难,所以我决定写个监控脚本,当有预约名额时通过微信将可预约地址发给我。

写好监控脚本,然后部署到服务器 celery 周期任务中,每隔 1 分钟进行一次查询,同时在服务器上启动 wechat_sender 服务。

picture.image

晚上打完球看手机收到了 阿绿( wechat_sender ) 发来的消息,果断去预约一发。

关于 Wechat Sender

picture.image


picture.image

长按扫描关注Python中文社区,

获取更多技术干货!

Python 中 文 社 区

Python中文开发者的精神家园

合作、投稿请联系微信:

pythonpost

— 人生苦短,我用Python —
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS

本文为作者原创作品,未经作者授权同意禁止转载


点击阅读原文可进入 Python圈子 获取下方资料 :

人工智能与深度学习国内外最新资料(10G) 、Python web开发、数据分析、网络爬虫学习资料大全、《Python爬虫入门》、《Python简易爬虫实战案例》、《TensorFlow从入门到案例》课件,《Python数据科学入门》案例源代码及各类Python资料、技术源码、行业信息精选定期分享。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论