当前位置: 首页
编程语言
Ubuntu系统Python环境监控配置详细教程

Ubuntu系统Python环境监控配置详细教程

热心网友 时间:2026-05-07
转载

在 Ubuntu 上配置 Python 监控

当你的Python应用在Ubuntu服务器上跑起来之后,如何确保它健康、稳定地运行?一套有效的监控体系就是你的“眼睛”和“耳朵”。今天,我们就来聊聊如何从零开始,搭建一个既轻量又实用的Python监控方案。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一 监控目标与方案选型

首先,得明确我们要监控什么。核心目标通常围绕这几个方面展开:

  • 监控对象:系统资源(CPU、内存、磁盘、网络)、Python进程数量与资源占用、关键目录的文件变更、以及日志中的异常关键字。

明确了目标,接下来就是选择实现路径。这里提供三种不同思路的方案,你可以根据自身的技术栈和运维复杂度来权衡:

  • 轻量自研:这是最灵活的方式。使用 Python 配合强大的 psutil 库来采集各项指标,然后设定阈值进行判断。一旦超过阈值,就通过 SMTP 发送邮件告警。最后,利用 Linux 自带的 cron 定时任务来驱动整个脚本周期执行。
  • 现成一体化:如果你追求快速部署和开箱即用的可视化,Glances 是个绝佳选择。它本身基于 Python 开发,支持本地查看和远程客户端-服务器模式,能够将多指标以彩色高亮的方式集中展示,状态一目了然。
  • 进程与服务视角:对于临时性的快速排查,命令行工具永远是利器。组合使用 pspgreptophtop 可以迅速定位问题。而如果你的 Python 应用是以服务形式运行的,那么通过 systemd 来管理并查看其状态,则是更规范的做法。

二 快速上手:系统资源监控脚本与告警

理论说再多,不如动手写一段。我们从最核心的系统资源监控开始,打造一个“最小可用”的告警脚本。

  • 安装依赖
    • 首先,确保系统已更新并安装 Python 和 pip:sudo apt update && sudo apt install -y python3 python3-pip
    • 然后,安装我们需要的核心库:pip3 install psutil
  • 最小可用脚本(阈值告警示例)
    • 说明:这段脚本会采集 CPU(1秒平均使用率)和内存使用率。一旦超过预设的阈值,就会调用邮件告警函数。
    • 使用:你需要将脚本中的发信参数(SMTP服务器、端口、账号、密码等)替换为你自己的信息。建议将脚本保存在固定路径,例如 /opt/monitor/monitor.py
    • 定时:要让脚本自动运行,需要借助 cron。执行 crontab -e 命令,添加如下一行(表示每分钟执行一次):
      * * * * * /usr/bin/python3 /opt/monitor/monitor.py
  • 参考代码
    import time, smtplib
    from email.mime.text import MIMEText
    import psutil
    
    CPU_THRESHOLD = 80
    MEM_THRESHOLD = 90
    
    def send_alert(subject, body):
        smtp_host, smtp_port = “smtp.example.com”, 587
        sender, password, receiver = “you@example.com”, “APP_PASSWORD”, “ops@example.com”
        msg = MIMEText(body, “plain”, “utf-8”)
        msg[“From”], msg[“To”], msg[“Subject”] = sender, receiver, subject
        with smtplib.SMTP(smtp_host, smtp_port) as s:
            s.starttls()
            s.login(sender, password)
            s.sendmail(sender, [receiver], msg.as_string())
    
    def check():
        cpu = psutil.cpu_percent(interval=1)
        mem = psutil.virtual_memory().percent
        print(f“CPU: {cpu}%, MEM: {mem}%”)
        if cpu > CPU_THRESHOLD:
            send_alert(“CPU 告警”, f“CPU 使用率 {cpu}% 超过阈值 {CPU_THRESHOLD}%”)
        if mem > MEM_THRESHOLD:
            send_alert(“内存告警”, f“内存使用率 {mem}% 超过阈值 {MEM_THRESHOLD}%”)
    
    if __name__ == “__main__”:
        check()
    
  • 安全建议
    • 邮件告警环节务必注意安全。强烈建议使用邮箱服务商提供的“应用专用密码”或 SMTP Token,避免在脚本中直接使用明文密码。同时,尽量通过本地或内网的邮件传输袋里(MTA)发送,或者确保使用 465/587 等加密端口进行提交。

三 进阶:文件变更监控与 Python 进程监控

基础资源监控搞定后,我们可以把监控范围扩大一些,关注更具体的应用层面。

  • 文件变更监控(watchdog)
    • 安装pip3 install watchdog
    • 示例:以下代码可以监控指定目录下文件的创建、修改、删除事件。这个功能非常实用,比如用于触发日志轮转、检测配置文件是否被热加载、或者发现异常文件时立即告警。
      from watchdog.observers import Observer
      from watchdog.events import FileSystemEventHandler
      import time
      
      class Handler(FileSystemEventHandler):
          def on_modified(self, event):
              print(f“修改: {event.src_path}”)
          def on_created(self, event):
              print(f“创建: {event.src_path}”)
          def on_deleted(self, event):
              print(f“删除: {event.src_path}”)
      
      observer = Observer()
      observer.schedule(Handler(), path=“/var/log/myapp”, recursive=True)
      observer.start()
      try:
          while True: time.sleep(1)
      except KeyboardInterrupt:
          observer.stop()
          observer.join()
      
  • Python 进程数量监控
    • 命令行快速查看:在服务器上临时排查时,这几条命令能快速给你答案:
      • ps aux | grep python
      • pgrep -af python
      • tophtop 界面中,按 F3 直接搜索 “python” 关键词。
    • Python 脚本计数:如果想把进程数量也集成到你的监控平台里,可以用一段小脚本来实现:
      import subprocess
      def python_count():
          out = subprocess.check_output(“ps aux | grep python | wc -l”, shell=True, text=True)
          return int(out.strip()) - 1  # 减去 grep 命令自身的进程
      print(“Python 进程数:”, python_count())
      
  • 作为服务运行时的监控
    • 如果你的应用是通过 systemd 管理的服务,那么监控就变得非常规范。使用 sudo systemctl status your-python.service 可以查看其运行状态、是否活跃。
    • 同时,结合 journalctl -u your-python.service -f 命令,可以实时跟踪和查看该服务的所有日志输出,这对排查运行时问题至关重要。

四 一体化监控与可视化

最后,如果你希望有一个集大成的、带界面的解决方案,那么 Glances 值得一试。

  • Glances 安装与特性
    • 安装sudo apt install -y glances
    • 启动:直接在终端输入 glances,一个集成了 CPU、内存、磁盘、网络、进程等信息的实时监控面板就会呈现出来,并用颜色清晰区分状态(正常、警告、严重)。
    • 远程监控:这才是它的强大之处。在目标服务器上以服务端模式启动:glances -s -B 0.0.0.0 -p 61209;然后,在任何客户机上执行 glances -c <服务器IP>,就能远程查看监控数据。
    • 配置文件/etc/glances/glances.conf 文件允许你自定义告警阈值、启用或禁用插件等,实现更精细的控制。
  • 适用场景
    • Glances 非常适合临时上线排查问题、值班巡检,或者作为快速上线的无侵入式监控方案。当然,你也可以通过其提供的接口或配合告警脚本、WebHook 进行二次集成,将它融入更庞大的运维体系中。

好了,从轻量脚本到一体化工具,几种主流的 Python 监控路径都在这里了。关键在于根据你的实际场景和运维能力,选择合适的组合拳。毕竟,监控的终极目的不是堆砌工具,而是清晰地掌控系统的脉搏。

来源:https://www.yisu.com/ask/82303059.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Debian系统配置JavaScript环境变量详细步骤

Debian系统配置JavaScript环境变量详细步骤

在Debian系统中配置Ja vaScript环境变量 说到在Debian里配置Ja vaScript环境变量,这事儿其实主要就是搞定Node js和npm的路径设置。别担心,流程很清晰,跟着走一遍基本就能成。下面咱们就一步步来。 1 确保Node js和npm已安装 第一步,当然是得先把“主角”

时间:2026-05-07 10:44
Linux mount命令详解如何挂载新分区到系统

Linux mount命令详解如何挂载新分区到系统

使用 mount 命令挂载新分区的步骤 给新分区挂载,是 Linux 系统管理中的一项基础但至关重要的操作。下面这套流程,能帮你稳妥地完成从识别分区到实现开机自动挂载的全过程。 1 查看可用磁盘和分区 第一步,得先搞清楚你要挂载的“目标”是谁。这就需要查看当前系统里所有的磁盘和分区信息。通常有两个

时间:2026-05-07 10:44
Linux mount命令卸载分区详细步骤与操作指南

Linux mount命令卸载分区详细步骤与操作指南

使用mount命令卸载分区的步骤详解 在Linux系统中,挂载和卸载存储设备是日常操作。但卸载分区时,如果操作不当,可能会遇到“设备忙”的提示,甚至导致数据丢失。那么,如何安全、正确地卸载一个分区呢?下面就来详细拆解这个过程。 方法一:通过umount命令卸载 第一步:找准挂载点动手之前,得先弄清楚

时间:2026-05-07 10:43
mount命令报错原因与解决方法详解

mount命令报错原因与解决方法详解

当mount命令失败时,可能有以下原因 在Linux系统中,mount命令是连接存储设备与文件系统的关键桥梁。但有时,这座“桥”就是搭不起来。别急,问题通常出在以下几个环节,逐一排查,往往就能找到症结所在。 1 权限不足 首先,也是最常见的一点:您是否拥有足够的权限?mount操作通常需要root

时间:2026-05-07 10:43
mount命令查看挂载点信息的详细使用方法

mount命令查看挂载点信息的详细使用方法

掌握系统挂载信息:从基础命令到高效查询 想了解你的Linux系统里都有哪些磁盘分区、目录或虚拟文件系统正在“服役”吗?mount命令就是你的第一把钥匙。它能清晰地展示当前所有已挂载的文件系统及其关键信息。下面,咱们就来梳理几种最常用、最高效的查看方法。 1 查看所有挂载点 最直接的方式,就是在终端

时间:2026-05-07 10:43
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程