温馨提示×

如何监控linux进程

小樊
66
2026-09-12 10:53:34
栏目: 智能运维

在 Linux 下“监控进程”可以从实时查看、资源占用、日志审计、自动告警几个层面来做。下面按常用程度 + 场景给你一个系统性的总结。


一、最常用:实时查看进程(人工排查)

1. ps —— 查看某一时刻进程快照

ps aux
ps -ef
ps -eo pid,ppid,user,%cpu,%mem,cmd

常用组合:

ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head

2. top / htop —— 实时监控系统

top
  • 按 P CPU 排序
  • 按 M 内存排序

更友好:

htop

3. pstree —— 查看进程关系

pstree -p
pstree -p <pid>

二、监控“某个具体进程”

1. 查看某个进程资源占用

top -p <pid>

2. 查看进程打开的文件 / 端口

lsof -p <pid>
lsof -i :8080

3. 查看进程系统调用(高级)

strace -p <pid>

三、长期监控(服务器必备)

1. systemd 服务状态监控

systemctl status nginx
journalctl -u nginx -f

适合:

  • 服务是否存活
  • 崩溃日志

2. cron + 脚本(简单自愈)

示例:进程挂了自动重启

pgrep mysqld || systemctl restart mysqld

四、专业监控工具(生产环境)

1. Prometheus + Node Exporter

  • CPU / 内存 / 进程数
  • 配合 Grafana 画图

2. Zabbix

  • 进程存活监控
  • 自动告警(邮件 / 钉钉 / 微信)

3. Supervisor

  • 进程管理 + 自动重启
  • 适合 Python / Java 服务

五、进程异常自动告警(示例)

检测进程是否存在

if ! pgrep -f "my_app" > /dev/null; then
    echo "进程异常" | mail admin@xx.com
fi

六、常见监控指标建议

  • ✅ CPU 使用率
  • ✅ 内存占用
  • ✅ 进程是否存活
  • ✅ 子进程数量
  • ✅ 文件描述符数
  • ✅ 重启次数

七、你可以告诉我:

  • 是 个人服务器 还是 生产环境
  • 监控 哪一个进程
  • 是否需要 自动重启 / 告警

我可以直接帮你写监控脚本或配置方案。

0 踩