CentOS 进程监控系统搭建指南
一 目标与总体架构
- 目标:实现对关键进程的存活监控、自动拉起、资源使用可视化与告警。
- 推荐架构:
- 主机级:使用 systemd 托管业务进程,配合 journalctl 查看日志;用 Monit 或 Shell+Cron 做进程存活与自动重启;用 Prometheus Node Exporter + Grafana 做可视化与指标告警。
- 快速可用性:临时或轻量场景可用 Supervisor 托管进程,自带 Web 管理界面。
- 命令行巡检:日常排查用 top/htop/ps/vmstat/iostat/pidstat/dstat/glances 等工具。
二 快速上手 命令行巡检与即时监控
- 安装常用工具(EPEL 源按需启用):
- sudo yum install -y epel-release
- sudo yum install -y htop dstat sysstat glances atop
- 常用命令:
- 实时进程与资源:top/htop;全量快照:ps aux;线程/CPU/内存细粒度:pidstat -p ALL 1;综合资源:dstat、glances、atop;磁盘 I/O:iostat -x 1;历史与系统活动:sar 1 5。
三 进程保活与自动重启
四 可视化与告警 Prometheus Grafana Node Exporter
- 组件与端口:
- Node Exporter:主机指标采集,端口 9100
- Prometheus:时序数据库与告警规则,端口 9090
- Grafana:可视化与仪表盘,端口 3000
- 部署步骤(示例以二进制为例,也可用 Docker):
- Node Exporter
- 下载解压并安装为系统服务(/usr/lib/systemd/system/node_exporter.service),启动:systemctl enable --now node_exporter
- Prometheus
- 配置 prometheus.yml:
- scrape_configs:
- job_name: ‘node’
static_configs:
- targets: [‘localhost:9100’]
- 启动:./prometheus --config.file=prometheus.yml
- Grafana
- 启动后访问 http://服务器IP:3000,默认账号 admin/admin
- 添加数据源:URL http://localhost:9090
- 导入官方或社区仪表盘(如 Node Exporter Full),即可查看 CPU、内存、磁盘、网络 与进程相关指标
- 告警思路
- 在 Prometheus 配置 告警规则(如 Node 宕机、CPU/内存阈值),通过 Alertmanager 对接邮件/企业微信/钉钉/Slack 等通道。
五 生产落地与维护建议
- 统一托管:优先使用 systemd 管理业务进程,配合 journalctl -u 服务名 集中查看日志,便于排障与审计。
- 分层监控:主机层用 Node Exporter + Grafana 做可视化;进程存活与自愈用 Monit 或 Supervisor;临时应急用 Shell+Cron。
- 告警分级:区分 P0/P1/P2,P0(进程宕机、端口不可达)即时通知,P1(资源阈值)限频告警,避免告警疲劳。
- 安全加固:暴露 Grafana 3000、Monit 2812 等管理端口时启用强认证与 IP 白名单;Prometheus 抓取目标按最小权限配置。
- 容量与保留:合理设置 Prometheus 数据保留 与 日志轮转(journald、应用日志),避免磁盘被占满。
- 版本与源:生产环境优先使用 稳定版 组件,EPEL/官方仓库可用时尽量使用包管理器安装,减少维护成本。