AI智能摘要
凌晨三点告警短信炸响,你登录服务器只会敲top和free,看着CPU飙高却找不到真凶,最后只能重启了事?我们见过太多运维把监控做成了"事后诸葛亮"——要么配置复杂到没人看,要么告警 flooded 到直接免疫。这篇文章不聊理论,直接给你一套从Prometheus搭建到故障定位的实战流程。但有个细节连资深运维都会踩坑:当你看到内存使用率90%时,真正该担心的可能根本不是内存不足。这个误判足以让你在关键时刻做出致命决策——你确定自己现在的监控看对了指标吗?
— AI 生成的文章内容摘要
摘要:服务器监控是运维工作的核心。本文系统讲解 linux 服务器监控指标、工具选型、告警配置和故障排查流程。
一、监控指标体系
1.1 基础指标
- CPU 使用率(用户态、内核态、IO 等待) - 内存使用率(已用、缓存、Swap) - 磁盘使用率(空间、IO、inode) - 网络流量(带宽、连接数、丢包率)
1.2 业务指标

- QPS(每秒查询数) - 响应时间(P50、P95、P99) - 错误率(4xx、5xx) - 业务成功率
二、监控工具选型
2.1 开源方案
| 工具 | 用途 | 特点 |
|---|---|---|
| **Prometheus** | 指标收集 | 时序数据库、Pull 模式 |
| **Grafana** | 可视化 | 丰富的图表、告警 |
| **Zabbix** | 综合监控 | 功能全面、学习曲线陡 |
| **Nagios** | 告警 | 插件丰富、配置复杂 |
2.2 商业方案
- 阿里云云监控 - 腾讯云监控 - 听云 - OneAPM
三、实战:搭建 Prometheus 监控
3.1 安装 Prometheus
# 下载 wget https://github.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz
# 解压 tar -xzf prometheus-*.tar.gz cd prometheus-*
# 启动 ./prometheus --config.file=prometheus.yml
3.2 配置 Node Exporter
# 安装 wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz tar -xzf node_exporter-*.tar.gz cd node_exporter-* ./node_exporter
# 验证 curl http://localhost:9100/metrics
3.3 配置 Grafana
# Docker 安装 docker run -d -p 3000:3000 grafana/grafana
# 添加数据源 # http://prometheus-server:9090
# 导入 Dashboard # ID: 1860(Node Exporter Full)
四、故障排查流程
4.1 CPU 过高
# 查看负载 uptime w
# 查看进程 top -c htop
# 查看具体进程 pidstat -u 1
# 查看内核态 vmstat 1
4.2 内存不足
# 查看内存 free -h
# 查看进程 ps aux --sort=-%mem | head
# 查看 Swap vmstat 1
# 清理缓存 sync && echo 3 > /proc/sys/vm/drop_caches
4.3 磁盘 IO 高
# 查看 IO iostat -x 1
# 查看进程 iotop
# 查看磁盘 df -h du -sh /*
4.4 网络问题
# 查看连接 netstat -ant | grep ESTABLISHED | wc -l
# 查看流量 iftop nethogs
# 查看丢包 ping -c 100 target.com
五、告警配置
5.1 Prometheus Alertmanager
# alertmanager.yml route: receiver: 'email' group_by: ['alertname']
receivers: - name: 'email' email_configs: - to: 'admin@example.com' from: 'alert@example.com' smarthost: 'smtp.example.com:587'
5.2 告警规则
# alert.rules.yml
groups:
- name: server
rules:
- alert: HighCPU
expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "CPU 使用率过高"
六、总结
监控体系核心:指标全面、告警准确、响应及时
---
作者:爪
分类:安全运维
标签:服务器监控、故障排查、Prometheus、Grafana、linux 运维
发布时间:2026-04-02

江苏省常州市 1F
那个node exporter启动失败咋整啊
重庆市 B1
@ NightmareScythe 检查下9100端口被占用了没?看看防火墙规则是不是没开
江西省南昌市 2F
Prometheus+Grafana确实是标配了
日本 B1
@ 竹影斜 确实,比Zabbix那堆模板好配多了
广东省佛山市 3F
之前配Alertmanager邮件告警搞了一下午,端口总不通
上海市 4F
Zabbix配置太反人类了
澳大利亚 5F
又是复制粘贴的教程吧
广东省广州市 6F
内存那部分可以加上sar命令,有时候比top直观多了,特别是看历史数据的时候
北京市 7F
这个IO高的情况,SSD和机械硬盘处理方式一样吗
日本 B1
@ 数据园丁 不太一样,SSD得看磨损均衡,机械盘才需要盯寻道时间
辽宁省鞍山市 8F
商业方案凭啥放后面?阿里云监控明明更好用
日本 9F
监控告警一响,今晚又别想睡了😂
陕西省西安市 10F
又是这种复制粘贴的基础教程
湖南省株洲市 11F
截图保存了,告警规则那段
北京市 12F
那个drop_caches是干嘛的,能随便清?
山东省德州市 13F
运维真麻烦,看着就头大
湖北省武汉市 14F
Prometheus内存挺坑的,节点多了会炸
北京市 15F
商业方案放后面?懂得都懂
四川省成都市 16F
之前用Zabbix配脚本,配置文件写得想砸键盘,后来换Prometheus真香
广东省深圳市宝安区 17F
Prometheus内存吃紧,节点一多直接崩,坑太深了。
上海市 18F
阿里云监控其实挺稳的,放后面有点迷。
辽宁省 19F
node_exporter启动失败?多半是端口被占或者权限问题。
贵州省贵阳市 20F
运维这行真累,告警一响就得半夜爬起来。
澳大利亚 21F
drop_caches能随便清吗?怕把系统搞挂。
福建省福州市 22F
Zabbix配置反人类,还是Prometheus香一点。
江苏省无锡市 23F
IO高的时候,SSD和机械盘排查思路差挺多的吧?
浙江省绍兴市 24F
Prometheus配Grafana确实好用
山东省临沂市 25F
sar命令确实比top看历史数据方便多了。
美国 26F
香港服务器,4G8核18M宽带80G硬盘,只要一元钱!网址:host.993899.com