Linux系统资源监控完全配置指南
在Linux服务器管理中,实时监控系统资源是保证服务稳定运行的关键。本文将详细介绍7种专业的资源监控方法,从基础命令到高级工具,帮助您全面掌握Linux系统监控技术。
一、基础监控命令
1. top命令 - 实时进程监控
作为最基本的监控工具,top命令可以显示:
- CPU使用率:按1键查看多核详情
- 内存占用:关注RES列的实际物理内存
- 进程排序:按P(CPU)、M(内存)或T(时间)排序
# 示例:带时间戳的top命令
top -b -n 1 | awk '/^top/{print strftime("%Y-%m-%d %H:%M:%S"),$0}'
2. vmstat - 系统整体状态
每2秒刷新一次系统状态:
vmstat 2 5
关键指标解读:
| 列 | 含义 |
|---|---|
| r | 运行队列长度 |
| si/so | swap交换情况 |
| us/sy/id | 用户/系统/空闲CPU |
二、高级监控工具配置
1. 安装配置sysstat包
提供sar、iostat等专业工具:
# Ubuntu/Debian sudo apt install sysstat # CentOS/RHEL sudo yum install sysstat # 启用数据收集 sed -i 's/false/true/g' /etc/default/sysstat systemctl enable --now sysstat
2. 使用sar进行历史分析
查看过去CPU使用率:
sar -u -f /var/log/sysstat/sa16 # 查看16号数据
专业建议: 配置sar数据保留90天:
# 编辑/etc/sysstat/sysstat HISTORY=90
三、可视化监控方案
1. Prometheus + Grafana方案
- 安装Node Exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
- 配置systemd服务:
[Unit] Description=Node Exporter After=network.target [Service] User=node_exporter ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
2. 使用Netdata实现实时仪表盘
一键安装:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
访问地址:http://服务器IP:19999
四、报警机制配置
1. 使用Zabbix配置阈值报警
关键报警项配置示例:
- CPU负载 > 核数*2持续5分钟
- 内存使用 > 90%
- 磁盘空间 < 10%
2. 自定义脚本监控
#!/bin/bash
THRESHOLD=90
CURRENT=$(df / | awk 'NR==2{print $5}' | sed 's/%//')
[ $CURRENT -gt $THRESHOLD ] && echo "警报:根分区使用率${CURRENT}%" | mail -s "磁盘警报" [email protected]
最佳实践总结
- 生产环境至少部署两种以上监控方案
- 历史数据保留周期根据业务需求设定
- 关键指标必须配置多级报警(Warning/Critical)
- 定期检查监控系统本身是否正常运行
通过以上配置,您可以构建完整的Linux资源监控体系,提前发现潜在问题,确保业务连续性。
