无监控不运维——使用 Python 写一个小小的项目监控

在公司里做的一个接口系统,主要是对接第三方的系统接口,所以,这个系统里会和很多其他公司的项目交互。随之而来一个很蛋疼的问题,这么多公司的接口,不同公司接口的稳定性差别很大,访问量大的时候,有的不怎么行的接口就各种出错了。

这个接口系统刚刚开发不久,整个系统中,处于比较边缘的位置,不像其他项目,有日志库,还有短信告警,一旦出问题,很多情况下都是用户反馈回来,所以,我的想法是,拿起 Python,为这个项目写一个监控。如果在调用某个第三方接口的过程中,大量出错了,说明这个接口有有问题了,就可以更快的采取措施。

项目的也是有日志库的,所有的 info,error 日志都是每隔一分钟扫描入库,日志库是用的 mysql,表里有几个特别重要的字段:

有日志库,就不用自己去线上环境扫日志分析了,直接从日志库入手。由于日志库在线上时每隔 1 分钟扫,那我就去日志库每隔 2 分钟扫一次,如果扫到有一定数量的 error 日志就报警,如果只有一两条错误就可以无视了,也就是短时间爆发大量错误日志,就可以断定系统有问题了。

报警方式就用发送邮件,所以,需要做下面几件事情:

操作:

1.MySql。

2.发送邮件。

3.定时任务。

4.日志。

5.运行脚本。

明确了以上几件事情,就可以动手了。

操作数据库

使用 MySQLdb 这个驱动,直接操作数据库,主要就是查询操作。

获取数据库的连接

无监控不运维——使用 Python 写一个小小的项目监控

从日志库里获取数据,获取当前时间之前 2 分钟的数据,首先,根据当前时间进行计算一下时间

无监控不运维——使用 Python 写一个小小的项目监控

然后,根据时间和日志级别去日志库查询数据。

无监控不运维——使用 Python 写一个小小的项目监控

发送邮件

使用 Python 发送邮件比较简单,使用标准库 smtplib 就可以这里使用 163 邮箱进行发送,你可以使用其他邮箱或者企业邮箱都行,不过 host 和 port 要设置正确。

无监控不运维——使用 Python 写一个小小的项目监控

定时任务

使用一个单独的线程,每2分钟扫描一次,如果 ERROR 级别的日志条数超过 5条,就发邮件通知。

无监控不运维——使用 Python 写一个小小的项目监控

日志

为这个小小的脚本配置一下日志 log.py,让日志可以输出到文件和控制台中。

无监控不运维——使用 Python 写一个小小的项目监控

所以,最后,这个监控小程序就是这样的 app_monitor.py

无监控不运维——使用 Python 写一个小小的项目监控

运行脚本

脚本在服务器上运行,使用 supervisor 进行管理。在服务器(centos6)上安装 supervisor,然后在 /etc/supervisor.conf 中加入一下配置

无监控不运维——使用 Python 写一个小小的项目监控

然后在终端中运行 supervisord 启动 supervisor。在终端中运行 supervisorctl,进入 shell,运行 status 查看脚本的运行状态。

总结

这个小监控思路很清晰,还可以继续修改,比如:监控特定的接口,发送短信通知等等。

因为有日志库,就少了去线上正式环境扫描日志的麻烦,所以,如果没有日志库,就要自己上线上环境扫描,在正式线上环境一定要小心哇~

(原文链接:http://u6.gg/fuAEW)

第20期 Python零基础入门班

51Reboot 第20期 Python 零基础运维自动化【入门班】正在火热招生中,详情添加wechat:17812796384

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月19日 上午10:00
下一篇 2023年5月19日 上午10:08

相关推荐

  • 科研教学管理系统(科研计划管理系统)

    科研计划管理系统科研计划管理系统1. 组织调查问卷,研究对象与相关国家的社会主义建设过程,结合实地观察,搜集、分析、研究的措施。2. 组织调查工作,跟踪国内外的科研形势,综合考察,…

    科研百科 2024年5月18日
    105
  • 管理系统的小项目源码

    管理系统的小项目源码 管理系统的小项目源码是一个非常有趣和具有挑战性的任务。这意味着你需要编写一个系统,该系统需要满足用户的需求,并且需要能够自动完成一些常见的任务。 在编写管理系…

    科研百科 2024年12月31日
    0
  • 江苏省中医院领导分工

    江苏省中医院领导分工 江苏省中医院是一所享誉全国的医疗机构,作为其领导团队,他们承担着非常重要的责任和使命。本文将介绍江苏省中医院领导团队的分工情况。 江苏省中医院校长:王玉君 王…

    科研百科 2024年10月2日
    70
  • 承接上海杭州 APP 开发(承接上海杭州 app 开发的公司)

    本文由 AI 自动编写全网发送,需要AI关注私聊 承接上海杭州 APP 开发:为您打造卓越的移动应用解决方案 在快速发展的数字时代,移动应用已经渗透进我们生活的方方面面。为了满足人…

    科研百科 2024年5月8日
    56
  • 区直工委验收华法党建品牌建设工作(法 党建品牌)

    1月5日,区委组织部四级调研员于文生一行莅临华龙区法院检查验收党建品牌建设工作。党组成员、副院长王照民主持会议。 验收组听取了诉讼服务中心支部和执行局支部党建品牌内涵及特色品牌创建…

    科研百科 2023年7月10日
    72
  • 视频聊一聊 业务办好了!“东好办·视频办”上线“爱山东”APP东营分厅

    大众网记者 李欣 东营报道 为深入推进“无证明城市”建设,东营市大数据局和东营市行政审批局立足市民需求,依托“爱山东”平台开发建设了“东好办·视频办”应用,将“实体窗口”升级为“云…

    科研百科 2024年6月15日
    79
  • 协同办公的软件有哪些(协同办公的app)

    协同办公的app: 现代企业不可或缺的工具 随着数字化时代的到来,协同办公的app已经成为现代企业不可或缺的工具。无论是企业内部的协作,还是与客户或合作伙伴的沟通,协同办公app都…

    科研百科 2024年8月27日
    30
  • 高配版进销发票管理系统,含应收、应付、进项、销项,简单易操作

    到年底了,公司面临着一大堆的发票需要整理,若没有一个好的系统,实在是让人头疼的一件事。今天就给大家分享一套超级好用的进项销项发票管理系统,亲测好用! 想要电子版系统的小伙伴看文末!…

    科研百科 2022年12月9日
    365
  • 推荐几款生产管理软件

    1、德格 德格通过运用互联网思维实现小微企业经营模式、商业模式的创新和变革。 整合线上线下各类资源,实现在产品创新、生产制造、营销等环节的规模化与定制化的统一, 以数据为驱动,以客…

    科研百科 2023年8月29日
    64
  • 项目管理系统受控原因

    项目管理系统受控原因 项目管理系统是现代项目管理中不可或缺的工具,可以帮助项目经理高效地管理项目进度、成本和质量等方面。然而,项目管理系统也存在一定的受控因素,这些受控因素可能会对…

    科研百科 2024年12月23日
    0