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

專 欄

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-china)

原文发表时间:2017-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏恰童鞋骚年

《大型网站技术架构》读书笔记之七:随需应变之网站的可扩展架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。

1083
来自专栏FreeBuf

魔兽世界中招:一条命令行就能劫持你的游戏!

最近出现了一种涉及社工技术的新型游戏攻击骗局,攻击者利用了魔兽世界(World of Warcraft,WoW)游戏插件中一个隐藏的功能。 新型攻击 想象一下这...

4628
来自专栏smartguys

(五):C++分布式实时应用框架——微服务架构的演进

版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!

6224
来自专栏*坤的Blog

提高效率

1932
来自专栏*坤的Blog

提高效率

1192
来自专栏人人都是极客

手把手教你如何向 Linux 内核提交代码

说到开源大家都会想到黑客和极客,开源的概念最早也是在极客们推出和推崇的。开源的提倡旨在开放源代码使之更方便自由的使用和再创作。随着这一思想的发展,衍生出诸多的开...

2002
来自专栏腾讯研究院的专栏

常见的几种数据层容灾架构比较分享

陈守志 腾讯公司平台运营开发组 一、关于容灾   关于容灾主题,这里罗列对比了几种常见的容灾案例: ?   相对接入层、应用层容灾而言,数据层的容灾相对...

5425
来自专栏菩提树下的杨过

这几天遇到的关于IE6/sql2008/win2003的奇怪bug

前一阵对公司网站的购物车功能进行了改造,允许不同商家的商品放到同一个购物车,下单时自动按商家来拆分订单。 本地测试时一切正常,IE6/IE7/IE8均没问题。部...

1896
来自专栏技术小黑屋

Google Play Services 7.5新增API及多项特性

本文为 InfoQ 中文站特供稿件,首发地址为:文章链接。如需转载,请与 InfoQ 中文站联系。

1282
来自专栏CSDN技术头条

Uber是如何通过Mesos和Cassandra实现跨多个数据中心每秒100万的写入速度的?

每隔三十秒就会有位置数据返回,包括来自于司机和乘客应用的各类数据,需要实时使用的实时数据非常之多,那么Uber是如何存储这些位置数据的呢? Uber的解决方案非...

2279

扫码关注云+社区

领取腾讯云代金券