无监控不运维——使用 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

相关推荐

  • Fiexi charger

    Fiexi charger: 一个神奇的充电设备 Fiexi charger是一个神奇的充电设备,它可以快速地为手机和其他电子设备充电。与其他传统的充电器相比,Fiexi char…

    科研百科 2024年10月14日
    4
  • 公司合同管理方案

    公司合同管理方案 合同是公司运营中不可或缺的一部分,合同管理是确保合同的有效性和合法性的重要保障。本文将介绍公司合同管理方案,包括合同的起草、审查、签署、存储和使用的各个环节,以确…

    科研百科 2025年1月4日
    0
  • 项目管理系统要素(项目管理系统的优势)

    项目管理系统的优势项目管理系统的优势是一个很重要的社会核心,其中包括相关项目。项目管理能力在高中、大学以及大学,包括一些高级的项目管理、法律与文化等方面,包括涉及的公共事务管理和决…

    科研百科 2024年8月2日
    38
  • 大学 合同管理科(大学 合同管理)

    大学合同管理 随着大学教育的普及和高等教育的迅速发展,大学合同管理已成为大学管理中的一个重要问题。合同管理是指在大学中,通过合同的方式管理教师和学生之间的关系,保证教学质量和学生权…

    科研百科 2024年6月4日
    53
  • 我是做科研项目的小说家我是做科研项目的小说家

    我是做科研项目的小说家,经常会被项目的进度和成果所困扰,同时也被科学家们的创意和思考所启发。在研究过程中,我会将自己的想法转化为小说的形式,通过这种方式,我可以更深入地了解科学家们…

    科研百科 2024年7月4日
    38
  • 淘宝客户采集软件(淘宝客采集软件哪个好)(淘宝客采集软件是什么)

    1.简介 淘宝客文章采集工具是淘宝客推广人员必备的利器,能够帮助他们轻松获取商品信息和素材,提高推广效率。本文将对市面上几款热门的淘宝客文章采集工具进行评测对比,为大家选择合适的工…

    科研百科 2024年5月8日
    50
  • 北京工会经费使用新规定

    北京工会经费使用新规:工会组织将拥有更多的自主权 近年来,北京市工会经费使用新规的出台,不断吸引着公众的关注。作为北京市一项重要的改革措施,这项新规旨在加强工会组织的建设和保障工会…

    科研百科 2024年10月17日
    3
  • 搞科研项目 搞科研项目要借毕业证可以吗

    搞科研项目时,借毕业证是否可以? 在搞科研项目时,借毕业证是一个常见的问题。毕业证是个人身份和学历的重要证明,如果项目需要使用毕业证,是否可以借来使用?这个问题并没有一个统一的答案…

    科研百科 2024年4月1日
    133
  • 华天动力OA系统V10新亮点——项目管理篇(华天动力oa系统v2.0下载)

    项目管理是企业管理的重头戏,是企业的生命线。科学的项目管理需要运用数字化手段,从项目的投资决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标。近年来…

    科研百科 2022年9月6日
    757
  • 中国特色社会主义思想 党建与生产

    中国特色社会主义思想是中国共产党领导下的一种伟大思想,是中国人民在长期奋斗和探索中逐步形成的,具有鲜明的中国特色和时代特征。在中国特色社会主义思想的指引下,党建和生产是不可或缺的两…

    科研百科 2024年11月12日
    1