社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python中文社区 • 7 年前 • 1372 次点击  

專 欄


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

前言

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

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

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

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

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

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

wechat_sender

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

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

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

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

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

举个栗子:

最后类似效果是这样滴:

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

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

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

其他玩法

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

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

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

关于 Wechat Sender




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

获取更多技术干货!

    

Python 中 文 社 区

Python中文开发者的精神家园

合作、投稿请联系微信:

pythonpost

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





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


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

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


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/cxVEUD6CdK
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2289
 
1372 次点击