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

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

(0)
上一篇 2023年4月28日 上午10:34
下一篇 2023年4月28日 上午10:50

相关推荐

  • 最详细的科研课题申报书写方法,超实用!(科研课题申报书怎么写)

    科研课题申报书写方法:详细指南 科研课题申报书是科研工作者向资助机构申请项目资金和支持的关键文件。撰写一份详细、周密、富有说服力的科研课题申报书,不仅是展示研究能力的重要途径,也是…

    科研百科 2024年6月19日
    46
  • 系统工程课题设计(系统工程科研课题)

    系统工程科研课题系统工程科研课题研究课题研究组评委学院创新的心理健康专业教学建设指引工作是校园心理健康教育研究的新课程、特殊任务。这个工作对于加强学校心理健康教育的有效开展、符合中…

    科研百科 2024年7月30日
    24
  • 科研专项资金的使用 账务处理

    科研专项资金的使用账务处理科研专项资金的使用账务处理的文件提交文件2017年,国家公共政策部发布的国家信息学和人才培养的综合改革实施方案,为社会主义预防的新时期和新时期大学教育提供…

    科研百科 2024年11月25日
    1
  • 协同办公软件产业

    协同办公软件产业:数字化时代的工具与平台 随着数字化时代的到来,协同办公软件产业已经成为了一个日益重要的产业。这些软件产品和服务可以帮助企业和个人更好地协作和沟通,提高工作效率和质…

    科研百科 2024年9月20日
    18
  • 手机怎么测量农田亩数(手机怎么测量农田亩数视频)

    手机测量农田亩数的方法有多种,下面将详细介绍其中的几种常用方法。#头条创作挑战赛# 首先,我们可以利用一些地图类应用,如百度地图、谷歌地图、高德地图等,这些应用通常具备面积测量功能…

    科研百科 2024年7月25日
    62
  • 天眼取名的妙处最简单回答

    天眼取名的妙处最简单回答 天眼是一种科技产品,它的名字非常独特,让人难以忘记。它的命名体现了产品的高科技和独特性。那么,天眼取名的妙处最简单回答是什么呢? 天眼的命名体现了产品的高…

    科研百科 2024年11月13日
    0
  • 省委教育工委举办“甘肃党建”信息化平台管理员培训班(甘肃省党员教育培训中心主任)

    为进一步发挥党支部的战斗堡垒作用和党员的先锋模范作用,根据省委组织部关于对“甘肃党建”信息化平台推广应用工作的统一安排部署,按照省委教育工委书记、省教育厅党组书记、厅长王海燕同志批…

    科研百科 2023年1月11日
    308
  • 协同办公 软件(excel协同办公系统)

    Excel协同办公系统: 提高生产力的办公利器 随着现代办公环境的不断演变,协同办公已经成为企业日常运营中不可或缺的一部分。而Excel作为常用的电子表格软件之一,由于其简单易用、…

    科研百科 2024年8月27日
    23
  • 科研项目实施分为几个阶段组成

    科研项目实施通常分为以下几个阶段。 1. 项目规划阶段:在这个阶段,项目团队通常需要确定项目的目标、范围、时间表和预算等基本信息。在这个阶段,项目团队成员需要共同讨论和协商,以确保…

    科研百科 2024年12月3日
    0
  • 零售系统软件哪个好(零售管理系统软件)

    零售管理系统软件:提升零售业务效率的神器 随着电子商务的发展,零售行业也在不断地数字化转型。零售管理系统软件成为了提升零售业务效率的神器。在本文中,我们将介绍一种常用的零售管理系统…

    科研百科 2024年9月1日
    28