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 监控路径都在这里了。关键在于根据你的实际场景和运维能力,选择合适的组合拳。毕竟,监控的终极目的不是堆砌工具,而是清晰地掌控系统的脉搏。
相关攻略
在Ubuntu16 04系统中安装Java8和Java9。需注意Java9可能不完全向后兼容。安装均通过添加Webupd8PPA仓库、执行安装命令并同意许可协议完成。安装后需分别设置默认版本或环境变量,最后可通过`java-version`命令验证安装结果。
LNMP环境中优化数据库查询需系统实施。关键步骤包括:根据业务选择存储引擎,优化表结构与字段类型,合理创建索引,编写高效SQL语句避免全表扫描。引入缓存层减轻数据库压力,使用连接池管理连接,必要时采用查询提示或分区表。定期维护数据库并监控慢查询,以实现持续性能提升。
HBase数据恢复需按步骤进行:先确认集群状态并定位故障,操作前备份数据。恢复时可选用内置工具、快照、WAL回放或手动替换文件等方法。完成后验证数据完整性与集群健康,持续监控优化。注意版本兼容性,在业务低峰期操作,并建立定期备份策略。
HBase数据备份主要有五种方法。使用自带工具可进行全量或增量备份。快照功能通过创建元数据引用实现快速备份与恢复。直接备份HDFS底层文件适合长期归档或迁移。第三方工具如DistCp和XtraBackup提供压缩、加密等增强功能。集群间复制机制支持实时同步,满足异地容灾需求。
优化Apache2应用的数据库连接可提升性能,主要方法包括:使用持久连接或连接池复用连接以降低开销;限制并发连接数防止数据库过载;利用缓存减少查询;优化SQL语句与索引;调整数据库配置以适应负载;持续监控并动态调优,保障系统高效运行。
热门专题
热门推荐
要监控CentOS上的PHP-FPM,您可以使用以下方法 使用命令行工具 对于习惯与终端打交道的运维人员来说,命令行工具是最直接的选择。 top:这是最经典的实时系统监控工具。想快速聚焦PHP-FPM进程?很简单,运行top后,按下u键,再输入运行PHP-FPM的用户名,界面就会立刻筛选出相关进程,
在CentOS上使用Docker容器化部署PHP应用 将PHP应用进行容器化部署,如今已成为提升开发一致性和运维效率的标准操作。在CentOS环境下,借助Docker平台,我们可以快速搭建起一个独立、可移植的运行环境。下面,就让我们一起梳理一下从零开始的基本部署流程。 1 安装Docker 万事开
在CentOS上使用PHP实现并发处理,可以采用以下几种方法: 想让PHP在CentOS上跑得更快、处理更多任务?并发处理是关键。别担心,PHP生态里其实有不少成熟的方案可选,每种都有其独特的适用场景。下面我们就来聊聊几种主流的方法,从多线程到消息队列,帮你找到最适合你项目的那一款。 1 使用多线
在CentOS系统中集成VSFTPD与其他服务 在CentOS服务器环境中,VSFTPD(Very Secure FTP Daemon)因其出色的安全性和稳定性,成为搭建FTP服务的首选。但你是否想过,让这个传统的FTP守护进程与现代的Web服务(比如Apache或Nginx)联动起来?这样一来,用
币安现货交易是加密货币买卖的基础方式,适合新手入门。操作前需完成账户注册、身份验证和资金充值。交易界面主要分为行情、交易对选择和订单簿区域,下单时可选择市价单或限价单。掌握基本的买入卖出操作后,还需了解止盈止损等风险管理工具,并注意资产安全与市场波动性,从小额交易开始实践。





