Linux系统监控与性能排查实战从入门命令到自动化告警【免费下载链接】Awesome-Linux-Software A list of awesome Linux softwares项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Linux-Software服务器一卡很多人第一反应就是慌。半夜收到告警SSH 登上去敲个top满屏数字跳来跳去却不知道从哪看起。Linux 系统监控要解决的就是这件事先看懂 CPU、内存、磁盘、网络四类指标再借助从一行命令到可视化面板的开源工具链快速回答服务器现在到底怎么了。这篇文章沿着一条从入门到自动化的学习路径展开最后用一个真实排障案例串起全部要点读完你就能独立完成一次性能排查。先说结论监控的核心不是看到数字而是看懂数字背后的原因。工具只是放大器判断力才是关键。 监控之前先看懂这四类性能指标把服务器想象成一家餐厅理解监控指标会容易得多CPU 是厨师——活儿多不多、手艺够不够内存是备菜台——台面大小决定能同时处理多少订单磁盘是仓库加案板——取货快不快、切菜慢不慢网络是传菜通道——通道宽不宽、堵不堵。对应到具体指标可以这样记指标通俗类比关键概念常见异常信号常用查看工具CPU厨师使用率、平均负载、上下文切换使用率长期超 90%负载持续上升uptime、top、htop内存备菜台物理内存、缓存、交换分区可用内存见底swap 频繁读写free、top磁盘仓库案板剩余空间、I/O 等待、吞吐量空间打满、%util 居高不下df、iostat、iotop网络传菜通道带宽、连接数、丢包率带宽打满、连接数异常攀升vnstat、iftop、ss关键一点四个指标不是孤立的它们经常合伙作案。CPU 明明空闲但系统很慢多半是磁盘或网络在拖后腿——这种交叉判断能力正是监控经验的核心价值。⚡ 零成本起步不装软件也能完成的系统体检在你决定安装任何第三方工具之前系统自带的命令已经能回答 80% 的服务器怎么了。以下四组命令就是日常体检的标准动作# 1. 负载与运行时长三个数字代表过去 1/5/15 分钟的平均负载 uptime # 2. 内存全景总量、已用、缓存与交换分区 free -h # 3. 磁盘空间剩余容量与使用率 df -h # 4. 磁盘读写状态每 1 秒刷新一次需安装 sysstat 包 iostat -x 1uptime的输出怎么读假设看到load average: 8.50, 7.20, 3.10意思是过去 15 分钟平均负载只有 3.1最近 1 分钟却冲到 8.5——说明问题是从最近几分钟才开始的排查方向就清晰了。反过来如果三个数字都很高说明这台机器已经持续过载很久属于慢性病需要从长期资源规划入手。判断负载是否异常有一个实用口径负载值 ÷ CPU 核数比值超过 0.7 值得警惕超过 1.0 说明排队明显。核数用nproc查看。经验之谈体检的第一原则是先看趋势再看数值。单个瞬时值意义有限至少对比 1/5/15 分钟三档数据才能判断问题是刚发生还是由来已久。 进阶装备四款终端监控工具横向对比系统自带命令够用但不够直观。想要一眼看全的体验下面这几款终端工具值得入手——它们都收录在 Awesome-Linux-Software 项目的 System Monitoring 分类中全部开源免费。工具上手难度界面风格特色能力适合人群htop低字符界面交互式鼠标可选、进程树、按字段排序几乎所有 Linux 用户btop中彩色图形化面板CPU/内存/磁盘/网络同屏展示追求颜值与信息密度Glances中信息流式列表插件丰富可一键切换 Web 模式需要远程查看的管理员bottom低分区式面板模块按需折叠、缓存与交换分开显示喜欢轻量简洁的用户安装与启动# Debian / Ubuntu 系安装命令 sudo apt install htop btop glances bottom # htopF6 切换排序字段F5 展开进程树F4 过滤进程 htop # Glances 以 Web 模式运行浏览器访问 http://服务器IP:61208 glances -w使用注意htop 显示的是瞬时状态适合交互式排查要留证据还得靠后面的定时采集btop 自身 CPU 占用略高老旧机器上优先 htop 或 bottomGlances 的 Web 模式默认不带认证暴露在公网前务必加访问控制或走内网。你可能想问这些工具和系统自带的 top 到底差在哪核心区别是交互——top 更像一屏快照而 htop 这类工具支持实时排序、过滤、展开进程树排查时省下的时间是分钟级的。 把监控交给机器定时采集与自动告警监控最大的价值不在当时看一眼而在事后能复盘、事前能预警。所以进阶的一步是把监控变成定时任务。先写一个最简单的 CPU 告警脚本#!/bin/bash # cpu_alert.sh当 CPU 使用率超过 90% 时把告警写入日志 THRESHOLD90 CPU$(top -bn1 | grep Cpu(s) | awk {print $2} | cut -d. -f1) if [ $CPU -gt $THRESHOLD ]; then echo $(date %F %T) 警告CPU 使用率 ${CPU}% 超过阈值 ${THRESHOLD}% \ /var/log/cpu_alerts.log fi再用 cron 每 5 分钟执行一次# 编辑当前用户的定时任务表 crontab -e # 追加这一行每 5 分钟运行一次告警检查 */5 * * * * /home/你的用户名/bin/cpu_alert.sh保存后用crontab -l确认任务已登记再手动跑一次脚本验证日志能正常写入。从人盯屏幕到系统自报关键就是把判断逻辑固化下来。同理内存余量、磁盘空间、网络连通性都可以用同一套思路写进脚本。更进一步如果你希望有开箱即用的实时面板可以试试 NetData——它是项目清单里口碑很好的一款 Web 监控工具安装后自动采集数百项指标并绘制图表省去自己写脚本的功夫。不过它常驻资源占用高于纯命令行方案适合单独划一台低配机器来跑。黄金法则告警不是发出去就完事。先确认告警本身可靠不误报、不漏报再让它通知你否则狼来了喊几次就再也没人看了。 实战复盘一次接口变慢问题的完整排查记录纸上谈兵不如打一仗。下面这个案例来自一个在线教育平台的真实排障细节已脱敏。背景某个课件下载接口平时响应约 300ms某天下午突然飙升到 6 秒用户投诉明显增多。排查记录步骤操作发现① 快速体检uptime、free -h内存充足负载 1 分钟 8.5、15 分钟 2.1问题刚发生② 排除 CPUtopCPU 总占用只有 35%排除算力不足③ 锁定磁盘iostat -x 1磁盘 %util 持续 95% 以上await 高达 300ms④ 揪出元凶iotop一个凌晨启动的备份压缩任务没结束正在反复读写磁盘⑤ 处置暂停备份任务把应用日志目录改到另一块 SSD接口响应回落到 300ms 左右⑥ 验证连续观察 48 小时监控日志无复发确认根因是备份任务挤占磁盘 I/O排查中实际用到的核心命令# 体检三连 uptime free -h iostat -x 1 21 | head -20 # 揪出最吃磁盘的进程未安装时先 sudo apt install iotop sudo iotop -o -b -n 3这个案例最值得学的一点CPU 空闲不等于系统健康。如果只盯着 CPU 和内存这个故障会一直隐形真正的瓶颈在磁盘 I/O。排查时按负载 → 内存 → CPU → 磁盘 → 网络的顺序过一遍绝大多数问题都能在十分钟内定位。⚠️ 新手最容易踩的五个监控误区五个常见误区误区 1看到 CPU 高就急着杀进程。高占用可能只是业务高峰或定时任务先确认是不是该忙的忙。配合 uptime 的负载趋势和进程归属判断别误杀关键服务。误区 2只盯 top 的瞬时值。瞬时值会骗人真正有用的判断需要历史数据——这正是定时采集和日志存在的意义。误区 3忽略磁盘 I/O。这是最隐蔽的坑CPU 和内存都正常系统却慢如蜗牛十有八九是磁盘在排队。iostat的 %util 和 await 是必看项。误区 4工具装了一堆却从不自动采集。装十个监控工具不如一个可靠的定时采集任务。出事时能回溯现场比什么都重要。误区 5以为有告警就等于有人看。告警发到没人盯的群里、或者半夜被忽略等于没有告警。告警要分级、要收敛、要有明确的响应动作。三个高频问答Q1服务器上到底要装几个监控工具A先把系统自带命令用熟再按需加 1~2 个交互工具推荐 htop Glances最后补一个定时采集脚本。工具贵精不贵多。Q2htop 和 top 选哪个A日常排查推荐 htop交互流畅、排序过滤方便、信息更友好。top 则胜在几乎任何环境都自带适合救急。Q3云厂商自带监控面板还要自己搭吗A云监控能看实例级指标CPU、带宽、磁盘但要定位到哪个进程在搞事必须进系统用命令行工具。两者互补不是二选一。 收尾把监控从应急变成日常回到开头的场景再收到告警你至少知道该按什么顺序查、该用什么工具、什么时候该看磁盘而不是杀进程——这就是这篇文章想帮你建立的能力。把今天的要点收进三句话工具分层先系统自带命令uptime、free、df、iostat再上可视化工具htop、btop、Glances、bottom最后补自动化告警排查有序按负载 → 内存 → CPU → 磁盘 → 网络的顺序推进交叉验证别被单一指标带偏预防优先把关键指标纳入定时采集告警分级收敛定期做一次复盘。现在就可以行动今晚 SSH 上你的服务器花十分钟把体检三件套跑一遍装上 htop再给最常用的服务写一条最简单的告警。想继续扩充工具清单可以翻一翻 Awesome-Linux-Software 项目的 README其中 System Monitoring 与 System Info / Monitoring 两个分类收录了 htop、btop、Glances、NetData、vnStat、bottom、s-tui 等大量同类型软件按图索骥能找到不少宝藏。从明天开始监控就不再是出事了才想起来的应急动作而是日常运维的肌肉记忆。【免费下载链接】Awesome-Linux-Software A list of awesome Linux softwares项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Linux-Software创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考