系统监控工具指南 / 第1章:监控工具概览与选型
第1章:监控工具概览与选型
1.1 为什么需要监控工具
监控的重要性
系统监控是IT运维的核心环节,它帮助我们:
- 及时发现问题 - 在用户投诉前发现性能瓶颈
- 快速定位故障 - 缩短故障排查时间(MTTR)
- 容量规划 - 基于历史数据预测资源需求
- 性能优化 - 识别系统瓶颈并针对性优化
监控的三个层次
┌─────────────────────────────────────────────┐
│ 应用层监控 (Application) │
│ 例:响应时间、错误率、QPS │
├─────────────────────────────────────────────┤
│ 系统层监控 (System) │
│ 例:CPU、内存、磁盘、网络 │
├─────────────────────────────────────────────┤
│ 基础设施层监控 (Infrastructure) │
│ 例:服务器状态、网络连通性 │
└─────────────────────────────────────────────┘
本指南重点关注系统层监控,介绍各种命令行监控工具。
1.2 监控工具分类
按监控维度分类
| 类别 | 监控对象 | 代表工具 |
|---|---|---|
| 进程监控 | CPU、内存、进程状态 | top, htop, atop, btop |
| 网络监控 | 带宽、流量、连接 | iftop, nload, vnstat |
| 磁盘监控 | IO、使用率、性能 | iostat, iotop |
| 综合监控 | 多维度全面监控 | Glances, dstat, nmon, SAR |
按数据采集方式分类
| 方式 | 特点 | 代表工具 |
|---|---|---|
| 实时监控 | 实时显示当前状态 | top, htop, iftop, nload |
| 历史记录 | 记录数据供后续分析 | SAR, vnstat, atop |
| 两者兼顾 | 实时监控+历史记录 | Glances, atop |
按界面类型分类
| 类型 | 特点 | 代表工具 |
|---|---|---|
| 终端文本 | 轻量、SSH友好 | top, htop, btop |
| 图形化 | 直观、易读 | nload, collectl |
| Web界面 | 远程访问、可分享 | Glances Web, Grafana |
1.3 主流监控工具详解
1.3.1 top - 经典进程监控
简介: Linux系统自带的实时进程监控工具,无需额外安装。
主要特性:
- 显示系统概览(负载、CPU、内存)
- 实时进程列表
- 支持排序和过滤
- 可发送信号管理进程
适用场景:
- 快速查看系统状态
- 临时排查CPU/内存问题
- 服务器无外网环境
基本用法:
# 直接运行
top
# 按CPU排序(运行后按P)
# 按内存排序(运行后按M)
# 按进程ID排序(运行后按N)
1.3.2 htop - 增强版进程监控
简介: top的增强版本,提供更友好的交互界面。
主要特性:
- 彩色界面显示
- 支持鼠标操作
- 树状进程视图
- 横向/纵向滚动
- 直接发送信号
适用场景:
- 日常系统管理
- 进程父子关系分析
- 需要交互式操作
基本用法:
# 安装
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
# 运行
htop
# 常用快捷键
# F5: 树状视图
# F6: 选择排序列
# F9: 发送信号
# 空格: 标记进程
1.3.3 atop - 高级系统监控
简介: 高级系统与进程监控工具,支持历史数据回放。
主要特性:
- 记录历史数据(默认保存28天)
- 支持时间点回放
- 详细的磁盘、网络监控
- 资源消耗统计
适用场景:
- 事后故障分析
- 长期性能趋势分析
- 需要查看历史状态
基本用法:
# 安装
sudo apt install atop
sudo yum install atop
# 实时监控
atop
# 查看历史数据(2小时前)
atop -r /var/log/atop/atop_20260510 -b 14:00
# 查看今天的记录
atop -r
1.3.4 btop - 现代化监控工具
简介: 现代化终端监控工具,界面美观且功能丰富。
主要特性:
- 精美的终端界面
- 支持主题定制
- 鼠标操作支持
- 详细的硬件信息
适用场景:
- 追求美观界面
- 演示环境展示
- 多核CPU详细监控
基本用法:
# 安装
sudo apt install btop
# 或使用snap
sudo snap install btop
# 运行
btop
# 快捷键
# 1-4: 切换面板
# m: 显示菜单
# t: 树状视图
# q: 退出
1.3.5 iftop - 网络流量监控
简介: 实时网络流量监控工具,显示主机间流量。
主要特性:
- 实时显示网络流量
- 按主机对显示流量
- 支持端口显示
- 可过滤特定主机
适用场景:
- 排查网络带宽问题
- 识别流量异常主机
- 分析网络连接
基本用法:
# 安装
sudo apt install iftop
sudo yum install iftop
# 监控指定接口
sudo iftop -i eth0
# 显示端口
sudo iftop -P
# 过滤特定主机
sudo iftop -f "host 192.168.1.100"
1.3.6 nload/vnstat - 带宽监控
简介: nload提供实时带宽图形,vnstat记录历史数据。
nload特性:
- 图形化显示入站/出站流量
- 显示平均值、最小值、最大值
- 轻量级
vnstat特性:
- 按小时/天/月统计
- 数据持久化存储
- 低资源消耗
基本用法:
# nload
sudo apt install nload
nload eth0
# vnstat
sudo apt install vnstat
sudo systemctl enable vnstat
sudo systemctl start vnstat
# 查看统计
vnstat # 月度统计
vnstat -d # 每日统计
vnstat -h # 每小时统计
1.3.7 vmstat/iostat/SAR - 系统级监控
简介: 系统性能监控三剑客,提供详细的系统资源统计。
vmstat: 虚拟内存统计 iostat: IO统计 SAR: 系统活动报告
适用场景:
- 性能基准测试
- 瓶颈定位
- 历史数据分析
基本用法:
# vmstat - 每秒刷新,共5次
vmstat 1 5
# iostat - 扩展信息,每秒刷新
iostat -x 1
# SAR - 查看CPU使用率
sar -u 1 5
# SAR - 查看历史数据
sar -u -f /var/log/sysstat/sa10
1.3.8 Glances - 综合监控平台
简介: 跨平台系统监控工具,支持Web界面和API。
主要特性:
- 全面监控(CPU、内存、磁盘、网络、传感器)
- Web界面支持
- RESTful API
- 告警功能
- 数据导出
适用场景:
- 统一监控界面
- 远程监控需求
- 与其他系统集成
基本用法:
# 安装
pip install glances
# 或
sudo apt install glances
# 运行
glances
# Web模式
glances -w
# 服务器模式
glances -s
# 客户端连接
glances -c server_ip
1.3.9 dstat/nmon - 多维监控
简介: dstat和nmon提供多维度系统监控。
dstat特性:
- 替代vmstat/iostat/netstat
- 彩色输出
- 插件扩展
- CSV导出
nmon特性:
- 交互式菜单
- 详细报告生成
- 性能数据分析
基本用法:
# dstat
sudo apt install dstat
dstat -cdnm # CPU、磁盘、网络、内存
# nmon
sudo apt install nmon
nmon # 交互式界面
nmon -f -s 10 -c 360 # 后台采集,每10秒一次,共1小时
1.4 工具选型对比矩阵
功能对比
| 功能 | top | htop | atop | btop | iftop | nload | vnstat | vmstat | iostat | SAR | Glances | dstat | nmon |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CPU监控 | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| 内存监控 | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| 磁盘监控 | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 网络监控 | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
| 进程监控 | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ |
| 历史数据 | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ |
| Web界面 | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| API支持 | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
性能与资源消耗
| 工具 | CPU占用 | 内存占用 | 安装包大小 | 启动速度 |
|---|---|---|---|---|
| top | 极低 | 极低 | 系统自带 | 极快 |
| htop | 低 | 低 | ~200KB | 快 |
| atop | 中等 | 中等 | ~500KB | 中等 |
| btop | 中等 | 中等 | ~2MB | 中等 |
| iftop | 低 | 低 | ~100KB | 快 |
| nload | 低 | 低 | ~100KB | 快 |
| vnstat | 极低 | 极低 | ~200KB | 快 |
| vmstat | 极低 | 极低 | 系统自带 | 极快 |
| iostat | 极低 | 极低 | ~100KB | 极快 |
| SAR | 低 | 低 | ~200KB | 快 |
| Glances | 中等 | 中等 | ~5MB | 中等 |
| dstat | 低 | 低 | ~200KB | 快 |
| nmon | 低 | 低 | ~300KB | 快 |
1.5 场景化选型指南
场景1:临时服务器巡检
需求: 快速检查服务器状态,时间紧迫
推荐方案:
# 第一步:系统负载
uptime
# 第二步:CPU和内存
top -bn1 | head -20
# 第三步:磁盘空间
df -h
# 第四步:网络连接
ss -tuln
备选工具: htop(更直观)
场景2:性能问题排查
需求: 系统响应慢,需要定位瓶颈
推荐方案:
# CPU瓶颈
top -o %CPU
pidstat -u 1 5
# 内存瓶颈
free -h
vmstat 1 5
# 磁盘IO瓶颈
iostat -x 1 5
iotop -o
# 网络瓶颈
iftop -i eth0
nload eth0
场景3:长期监控与容量规划
需求: 持续监控系统,收集历史数据
推荐方案:
# 方案A:使用SAR(sysstat)
sudo apt install sysstat
sudo systemctl enable sysstat
# 数据存储在 /var/log/sysstat/
# 方案B:使用atop
sudo apt install atop
sudo systemctl enable atop
# 数据存储在 /var/log/atop/
# 方案C:使用vnstat(网络)
sudo apt install vnstat
sudo systemctl enable vnstat
数据分析:
# SAR - 查看历史CPU
sar -u -f /var/log/sysstat/sa$(date +%d -d yesterday)
# atop - 回放历史
atop -r
# vnstat - 网络统计
vnstat -d # 按天
vnstat -m # 按月
场景4:容器环境监控
需求: 监控Docker容器资源使用
推荐方案:
# Docker内置监控
docker stats
# cAdvisor(Web界面)
docker run -d \
--name=cadvisor \
-p 8080:8080 \
-v /:/rootfs:ro \
-v /var/run:/var/run:ro \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
google/cadvisor:latest
# Glances(支持容器)
glances --enable-plugin docker
场景5:网络流量分析
需求: 分析服务器网络流量,排查带宽问题
推荐方案:
# 实时流量监控
sudo iftop -i eth0 -P # 显示端口
# 带宽趋势
nload eth0
# 长期统计
vnstat -l # 实时模式
vnstat # 统计报告
场景6:多服务器统一监控
需求: 监控多台服务器,集中展示
推荐方案:
| 方案 | 复杂度 | 适用规模 |
|---|---|---|
| Glances集群 | 低 | 5-20台 |
| Prometheus+Grafana | 中等 | 10-100台 |
| Zabbix | 高 | 100+台 |
# Glances服务器模式
# 服务器端
glances -s --bind 0.0.0.0
# 客户端
glances -c server_ip
1.6 安装配置汇总
一键安装所有工具
#!/bin/bash
# install-monitoring-tools.sh
# Debian/Ubuntu
install_debian() {
sudo apt update
sudo apt install -y \
htop \
atop \
btop \
iftop \
nload \
vnstat \
sysstat \
dstat \
nmon \
iotop \
glances
}
# CentOS/RHEL
install_centos() {
sudo yum install -y epel-release
sudo yum install -y \
htop \
atop \
iftop \
nload \
vnstat \
sysstat \
dstat \
nmon \
iotop \
glances
}
# 检测系统并安装
if [ -f /etc/debian_version ]; then
install_debian
elif [ -f /etc/redhat-release ]; then
install_centos
else
echo "Unsupported OS"
exit 1
fi
# 启用后台服务
sudo systemctl enable --now sysstat
sudo systemctl enable --now atop
sudo systemctl enable --now vnstat
echo "安装完成!"
基础配置
# 配置SAR数据保留天数
sudo sed -i 's/HISTORY=28/HISTORY=90/' /etc/sysstat/sysstat
# 配置atop数据保留天数
sudo sed -i 's/LOGGENERATIONS=28/LOGGENERATIONS=90/' /etc/default/atop
# 启用vnstat
sudo systemctl enable vnstat
sudo systemctl start vnstat
1.7 学习路线图
初级阶段(1-2周)
Week 1: top基础 → htop交互 → df/free基础命令
Week 2: vmstat基础 → iostat基础 → 综合练习
学习目标:
- 掌握基本系统状态查看
- 理解CPU、内存、IO指标含义
- 能够识别明显性能问题
中级阶段(2-4周)
Week 3: atop深入 → iftop网络 → nload/vnstat
Week 4: SAR使用 → dstat/nmon → 综合排查
学习目标:
- 掌握历史数据分析
- 能够定位具体性能瓶颈
- 理解各指标间的关联
高级阶段(持续学习)
Week 5+: Glances高级 → 容器监控 → 监控系统搭建
学习目标:
- 搭建完整监控体系
- 制定监控策略与告警
- 性能优化实践
1.8 注意事项
生产环境使用注意
资源消耗: 高频刷新可能影响性能
# 降低刷新频率 top -d 5 # 5秒刷新 iostat -x 5 # 5秒刷新权限要求: 某些工具需要root权限
# 使用sudo sudo iftop sudo iotop # 或使用capabilities sudo setcap cap_net_raw+ep /usr/sbin/iftop数据安全: 监控数据可能包含敏感信息
- 限制监控数据访问权限
- 定期清理历史数据
常见误区
| 误区 | 正确理解 |
|---|---|
| CPU使用率高=性能差 | 需结合负载均衡、等待队列综合判断 |
| 内存使用率高=内存不足 | Linux会利用空闲内存做缓存 |
| swap使用=内存不足 | 需查看si/so换入换出频率 |
| 磁盘使用率高=IO瓶颈 | 需查看await、%util等IO指标 |
1.9 扩展阅读
推荐书籍
- 《Systems Performance: Enterprise and the Cloud》- Brendan Gregg
- 《Linux Performance Optimization》- Igor Ljubuncic
在线资源
- Brendan Gregg’s Linux Performance
- Netflix Tech Blog: Linux Performance
- Red Hat Performance Tuning Guide
工具官方文档
1.10 本章小结
本章介绍了Linux系统监控工具的整体生态,包括:
- 监控的重要性: 及时发现问题、快速定位故障、容量规划
- 工具分类: 按监控维度、数据采集方式、界面类型
- 主流工具: top/htop/atop/btop/iftop/nload/vnstat/vmstat/iostat/SAR/Glances/dstat/nmon
- 选型指南: 功能对比、性能对比、场景化推荐
- 学习路径: 从初级到高级的渐进式学习
下一章我们将深入学习 top 命令的详细用法。
下一章: 第2章:top详解