CentOS 运维密匙:命令行下的系统监控艺术
一、实时资源监控
1. 综合监控 - htop
(推荐)
优势:彩色界面显示CPU/内存使用率,支持进程树视图、鼠标操作和进程过滤(F4)
关键指标:Load average(1/5/15分钟负载)、Tasks(僵尸进程)、CPU%按颜色区分类型
2. 磁盘I/O监控 - iotop
诊断技巧:观察
DISK WRITE
列快速定位写密集型进程,结合pidstat -d
获取进程级I/O统计
3. 高级综合监控 - glances
特性:跨平台监控、支持API、可导出数据到Prometheus/Grafana
二、历史性能分析
1. 系统活动报告 - sar
日志位置:
/var/log/sa/saXX
(XX为日期)图形化工具:使用
sadf -d
导出CSV,配合Excel/Python分析趋势
2. 自定义数据收集 - collectl
优势:可同时记录多种子系统数据,支持多种输出格式(Plot、JSON)
三、网络深度监控
1. 连接分析 - ss
(替代netstat)
高级用法:
ss -o state established '( dport = :443 or sport = :443 )'
过滤HTTPS活动连接
2. 流量追踪 - nethogs
场景:快速定位异常流量进程,支持多网卡监控
3. 协议分析 - iftop
交互命令:按
t
切换显示格式,l
设置流量阈值过滤
四、进程级诊断工具
1. 进程状态跟踪 - pidstat
扩展功能:
-t
显示线程级统计,-w
监控上下文切换
2. 系统调用追踪 - strace
日志分析:重定向到文件(
-o proc_trace.log
),搜索EAGAIN
等错误码
五、日志实时监控
1. 动态日志查看 - journalctl
(systemd系统)
高级过滤:
-p err
显示错误日志,-k
仅显示内核日志
2. 日志模式分析 - grep
/awk
实时报警:结合
tail -f
和管道触发邮件/API报警
六、应急响应工具箱
场景 | 工具组合示例 | 作用 |
---|---|---|
CPU爆满 | top -> perf top -> pidstat 1 | 定位高负载进程及热点函数 |
内存泄漏 | free -h -> vmstat 3 -> smem -s uss | 确认是否发生Swap,分析进程实际内存占用 |
磁盘IO瓶颈 | iostat -x 2 -> iotop -> blktrace | 检查await/util%,定位高IO进程及块层跟踪 |
网络丢包 | sar -n EDEV 1 -> ethtool -S eth0 -> mtr | 监控接口错误计数,路由追踪 |
七、自动化监控方案
定期健康检查脚本
集成Prometheus+Grafana
部署
node_exporter
采集系统指标使用
alertmanager
配置阈值报警规则
通过熟练使用以上工具组合,管理员可构建从实时监控到深度分析的全链路监控体系。建议针对不同场景制作快速参考手册,并通过alias
设置常用命令快捷方式(如alias topsys='htop -s PERCENT_CPU'
)。
评论