Ubuntu系统Python环境监控配置详细教程
在 Ubuntu 上配置 Python 监控
当你的Python应用在Ubuntu服务器上跑起来之后,如何确保它健康、稳定地运行?一套有效的监控体系就是你的“眼睛”和“耳朵”。今天,我们就来聊聊如何从零开始,搭建一个既轻量又实用的Python监控方案。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
一 监控目标与方案选型
首先,得明确我们要监控什么。核心目标通常围绕这几个方面展开:
- 监控对象:系统资源(CPU、内存、磁盘、网络)、Python进程数量与资源占用、关键目录的文件变更、以及日志中的异常关键字。
明确了目标,接下来就是选择实现路径。这里提供三种不同思路的方案,你可以根据自身的技术栈和运维复杂度来权衡:
- 轻量自研:这是最灵活的方式。使用 Python 配合强大的
psutil库来采集各项指标,然后设定阈值进行判断。一旦超过阈值,就通过 SMTP 发送邮件告警。最后,利用 Linux 自带的cron定时任务来驱动整个脚本周期执行。 - 现成一体化:如果你追求快速部署和开箱即用的可视化,Glances 是个绝佳选择。它本身基于 Python 开发,支持本地查看和远程客户端-服务器模式,能够将多指标以彩色高亮的方式集中展示,状态一目了然。
- 进程与服务视角:对于临时性的快速排查,命令行工具永远是利器。组合使用
ps、pgrep、top或htop可以迅速定位问题。而如果你的 Python 应用是以服务形式运行的,那么通过systemd来管理并查看其状态,则是更规范的做法。
二 快速上手:系统资源监控脚本与告警
理论说再多,不如动手写一段。我们从最核心的系统资源监控开始,打造一个“最小可用”的告警脚本。
- 安装依赖
- 首先,确保系统已更新并安装 Python 和 pip:
sudo apt update && sudo apt install -y python3 python3-pip - 然后,安装我们需要的核心库:
pip3 install psutil
- 首先,确保系统已更新并安装 Python 和 pip:
- 最小可用脚本(阈值告警示例)
- 说明:这段脚本会采集 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 pythonpgrep -af python- 在
top或htop界面中,按 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 监控路径都在这里了。关键在于根据你的实际场景和运维能力,选择合适的组合拳。毕竟,监控的终极目的不是堆砌工具,而是清晰地掌控系统的脉搏。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Debian系统配置JavaScript环境变量详细步骤
在Debian系统中配置Ja vaScript环境变量 说到在Debian里配置Ja vaScript环境变量,这事儿其实主要就是搞定Node js和npm的路径设置。别担心,流程很清晰,跟着走一遍基本就能成。下面咱们就一步步来。 1 确保Node js和npm已安装 第一步,当然是得先把“主角”
Linux mount命令详解如何挂载新分区到系统
使用 mount 命令挂载新分区的步骤 给新分区挂载,是 Linux 系统管理中的一项基础但至关重要的操作。下面这套流程,能帮你稳妥地完成从识别分区到实现开机自动挂载的全过程。 1 查看可用磁盘和分区 第一步,得先搞清楚你要挂载的“目标”是谁。这就需要查看当前系统里所有的磁盘和分区信息。通常有两个
Linux mount命令卸载分区详细步骤与操作指南
使用mount命令卸载分区的步骤详解 在Linux系统中,挂载和卸载存储设备是日常操作。但卸载分区时,如果操作不当,可能会遇到“设备忙”的提示,甚至导致数据丢失。那么,如何安全、正确地卸载一个分区呢?下面就来详细拆解这个过程。 方法一:通过umount命令卸载 第一步:找准挂载点动手之前,得先弄清楚
mount命令报错原因与解决方法详解
当mount命令失败时,可能有以下原因 在Linux系统中,mount命令是连接存储设备与文件系统的关键桥梁。但有时,这座“桥”就是搭不起来。别急,问题通常出在以下几个环节,逐一排查,往往就能找到症结所在。 1 权限不足 首先,也是最常见的一点:您是否拥有足够的权限?mount操作通常需要root
mount命令查看挂载点信息的详细使用方法
掌握系统挂载信息:从基础命令到高效查询 想了解你的Linux系统里都有哪些磁盘分区、目录或虚拟文件系统正在“服役”吗?mount命令就是你的第一把钥匙。它能清晰地展示当前所有已挂载的文件系统及其关键信息。下面,咱们就来梳理几种最常用、最高效的查看方法。 1 查看所有挂载点 最直接的方式,就是在终端
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

