首页主机资讯如何在Ubuntu上配置Python监控

如何在Ubuntu上配置Python监控

时间2026-01-21 21:58:03发布访客分类主机资讯浏览664
导读:在 Ubuntu 上配置 Python 监控 一 监控目标与方案选型 监控对象:系统资源(CPU、内存、磁盘、网络)、Python 进程数量与资源、关键目录变更、日志异常关键字。 方案选型: 轻量自研:用 Python + psutil...

在 Ubuntu 上配置 Python 监控

一 监控目标与方案选型

  • 监控对象:系统资源(CPU、内存、磁盘、网络)、Python 进程数量与资源、关键目录变更、日志异常关键字。
  • 方案选型:
    • 轻量自研:用 Python + psutil 采集指标,阈值判断,超阈值通过 SMTP 发邮件;定时用 cron 执行。
    • 现成一体化:安装 Glances(基于 Python),支持本地/远程 客户端-服务器 模式,多指标可视化与阈值着色。
    • 进程与服务视角:命令行 ps/pgrep/top/htop 快速排查;作为服务运行时用 systemd 管理并查看状态。

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

  • 安装依赖
    • sudo apt update & & sudo apt install -y python3 python3-pip
    • pip3 install psutil
  • 最小可用脚本(阈值告警示例)
    • 说明:采集 CPU 1 秒均值内存使用率;超过阈值调用邮件告警函数。
    • 使用:将发信参数替换为你的 SMTP 信息;脚本路径为 /opt/monitor/monitor.py
    • 定时:执行 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,避免明文口令;尽量采用本地/内网 MTA465/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
      • 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 安装与特性
    • 安装:sudo apt install -y glances
    • 启动:glances(本地终端多指标汇总,颜色区分状态)
    • 远程监控:在服务端执行 glances -s -B 0.0.0.0 -p 61209;在客户端执行 glances -c < 服务器IP>
    • 配置文件:/etc/glances/glances.conf(可设置告警阈值、插件等)
  • 适用场景
    • 临时排查、值班巡检、无侵入快速上线;也可配合 告警脚本/WebHook 做二次集成。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上配置Python监控
本文地址: https://pptw.com/jishu/789148.html
如何在Ubuntu上配置Python文档 Ubuntu Python集成如何实现

游客 回复需填写必要信息