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

相关推荐

  • 志愿服务进网格 “红色物业”显担当(红色物业志愿服务队)

    义诊现场。 红网时刻新闻2月23日讯(通讯员 王霞)“感谢可爱的志愿者们,将便民服务送到家门口,感谢社区组织这么好的活动!”在长沙天心区金盆岭街道黄土岭社区爱心义诊雷锋志愿活动现场…

    科研百科 2023年7月29日
    96
  • 系统集成项目过程管理

    系统集成项目过程管理 系统集成项目过程管理是指在软件开发生命周期中,对系统集成项目进行的计划、执行、监控和控制。作为一个复杂的项目,系统集成项目的过程管理需要涉及到多个方面,包括需…

    科研百科 2024年12月12日
    0
  • 研发困局

    研发困局 随着科技的不断发展,许多公司和个人都在努力研发新技术和产品,以满足不断变化的市场需求。然而,在这个过程中,也会遇到许多困难和挑战。本文将探讨研发困局的含义和影响,以及如何…

    科研百科 2024年10月10日
    16
  • 工程项目管理软件排名,分享几个靠谱的软件供应商(项目管理软件哪家好)

    由于互联网技术的快速发展和信息技术的快速普及,许多行业内部已经开始实施信息化的管理手段,针对企业日常管理和项目进行管理,利用好先进技术,改变原本较为落后的的管理,提高管理水平,为企…

    科研百科 2022年10月3日
    99
  • 力学类科研项目名称是什么力学类科研项目名称是什么

    标题: 探究宇宙起源的力学科研项目 宇宙是我们所知道的最大、最复杂的系统之一。它由无数的星系、行星、恒星和黑洞组成,并且不断地演化着。在过去的几十年里,科学家们一直在探索宇宙的起源…

    科研百科 2024年9月9日
    27
  • 录音软件哪个好用?来试试下面这几款吧(录音软件哪个比较好)

    今天我要和大家聊一聊会议录音软件。你们知道吗,这些软件简直是职场中的一大利器!记得以前我们参加会议时,总是要边听边记,然后回去整理笔记,有时候还会漏掉一些重要的细节。太繁琐了!但是…

    科研百科 2024年5月20日
    76
  • 全房源系统——高效的房地产ERP管理软件(房源系统软件排行)

    在瞬息万变的房地产市场中,房地产企业需要一个高效、智能的管理工具来应对日益增长的业务需求。房地产ERP管理软件——全房源系统,以其全面的功能和卓越的性能,成为房地产企业提升运营效率…

    科研百科 2024年4月22日
    66
  • 新博科技AI智慧社区平台

    新博科技AI智慧社区平台 随着人工智能技术的不断发展,新博科技推出了一项全新的AI智慧社区平台,旨在为用户提供一个便捷、高效、安全的社交和互动环境。在这个平台上,用户可以轻松地与其…

    科研百科 2024年11月14日
    0
  • 科研项目包括大创吗知乎

    科研项目包括大创吗? 科研项目包括大创吗?这是一个涉及到学术诚信和项目质量的问题。通常情况下,科研项目包括大创,这是一种鼓励学生创新和发明的措施。但是,有些人可能会认为大创是在抄袭…

    科研百科 2024年8月12日
    30
  • 如何写好一份科研项目申请书

    如何写好一份科研项目申请书 科研项目申请书是申请科研项目的重要文件之一,是向相关部门和领导介绍科研项目的背景、研究内容和预期成果的重要工具。一份好的科研项目申请书能够更好地展示研究…

    科研百科 2024年8月10日
    33