《监控工具入门指南》——面向完全零基础的初学者
一、开篇:什么是监控工具,为什么我们需要它?

你有没有遇到过这样的情况:你的网站突然打不开了,但你不知道是什么原因;或者是服务器突然变慢了,但你想知道是哪个程序在“搞事情”。这时候,你就需要一个监控工具。
监控工具的作用
监控工具就像一台自动运行的“观察者”,它可以:
- 实时查看系统的资源使用情况(比如 CPU、内存)
- 检查网站是否在线、访问速度如何
- 发现异常并通知你(比如发邮件或弹窗提示)
- 帮助你分析问题发生的时间和原因
简单来说,监控工具就是帮助我们发现系统问题、提前预警,并辅助定位问题根源的好帮手。
二、环境准备:从零开始搭建监控环境

本教程将使用一个非常流行且适合新手的监控工具组合:Prometheus + Node Exporter。
Prometheus 是一个开源的指标收集系统,Node Exporter 是一个用于采集操作系统级别指标的代理软件。
第一步:安装 Prometheus
- 打开浏览器,访问 Prometheus官网
- 找到最新版本的 Prometheus(适用于你的操作系统,如 Linux/macOS/Windows)
- 下载压缩包后解压,你会看到一个文件夹,里面有
prometheus.yml这个配置文件。
示例:Linux 环境下下载方式:
wget https://github.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz
tar xvfz prometheus-2.40.0.linux-amd64.tar.gz
cd prometheus-2.40.0.linux-amd64
启动 Prometheus:
./prometheus --config.file=prometheus.yml
成功启动后,你可以访问 http://localhost:9090 来打开 Prometheus 的网页界面。
📌 小贴士:如果启动失败,可能是端口被占用或配置错误,后面我们会讲常见问题解决方案。
第二步:安装 Node Exporter
Node Exporter 是用来获取操作系统的各种指标的,例如 CPU、内存、磁盘等。
安装步骤(以 Linux 为例):
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.5.0.linux-amd64.tar.gz
cd node_exporter-1.5.0.linux-amd64
./node_exporter
启动成功后,打开 http://localhost:9100/metrics,你会看到一堆指标数据。
第三步:配置 Prometheus 收集 Node Exporter 的数据
修改 prometheus.yml 文件,添加以下内容:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
保存文件后重启 Prometheus。
现在回到 Prometheus 网页界面,尝试输入这个查询语句:
node_cpu_seconds_total
你应该会看到一些关于 CPU 使用时间的数据图表!
三、核心概念:这些术语到底在说什么?

刚开始接触监控工具的人,常常会被下面这些专业词汇搞得晕头转向。没关系,我们来用大白话解释清楚。
1. 指标(Metric)
就是一个数字。比如你的电脑 CPU 占用率是一个指标,内存用了多少也是一个指标。
2. 时间序列(Time Series)
就是随着时间变化的数值集合。比如每秒钟记录一次 CPU 使用率,连续记录一分钟,就形成了一个时间序列。
3. 抓取(Scrape)
Prometheus 通过抓取的方式从各种监控目标中读取数据。你可以理解为它每隔几秒去问一句:“你现在状态怎么样?”
4. 报警规则(Alert Rule)
当某个指标超过预设值时,系统就会触发报警。比如:“CPU 超过 80% 持续 5 分钟,就提醒我”。
5. 标签(Label)
给指标加上说明信息,帮助更好区分。例如,你有多个服务器,标签可以告诉你这个指标来自哪台机器、哪个应用。
四、实战项目:构建属于你的第一个监控系统
项目目标
我们将完成以下任务:
- 在本地部署 Prometheus 和 Node Exporter
- 用 Prometheus 查询 CPU 和内存使用率
- 使用一个可视化工具(Grafana)展示监控数据
- 设置简单的告警机制
步骤一:确认 Prometheus 已经正确抓取了 Node Exporter 的数据
确保你已经在 prometheus.yml 中添加了如下配置:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
然后访问 Prometheus 的 Web 界面 http://localhost:9090
试试输入这两个查询语句:
1. 查看 CPU 使用总时间(每个核心)
node_cpu_seconds_total
这会显示所有 CPU 核心的状态,包括 user、system、idle 等状态。
2. 查看内存使用百分比
要稍微计算一下,使用以下表达式:
(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100
你可以把它理解为:总的内存减去空闲和缓存,再除以总内存,得到实际使用的百分比。
步骤二:安装 Grafana 进行数据可视化
Grafana 是一个非常强大的数据展示平台,能将监控数据变成漂亮的图表。
安装步骤(以 Linux 为例):
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_10.1.5_amd64.deb
sudo dpkg -i grafana_10.1.5_amd64.deb
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
访问 http://localhost:3000,默认账号密码是 admin/admin。
配置 Grafana 连接 Prometheus
- 登录 Grafana 后,点击左侧菜单中的 "Connections" → "Data Sources" → "+ Add data source"
- 选择 Prometheus
- URL 填写:
http://localhost:9090 - 点击 "Save & Test"
步骤三:导入一个现成的仪表盘模板
为了省事,我们可以直接使用一个社区提供的 Node Exporter 仪表板:
- 访问 https://grafana.com/grafana/dashboards/
- 搜索 “Node Exporter”
- 选择一个最受欢迎的(例如编号为 1860 的那个)
- 点击 “Import”
- 复制 JSON 内容,在 Grafana 的 “Import” 页面粘贴进去,选择你的 Prometheus 数据源
稍等片刻,你就应该能看到一个详细的系统监控仪表盘啦!
步骤四:设置一个简单的 CPU 超负载报警
我们要做的是:当 CPU 使用率超过 70%,持续两分钟,就发出警告。
修改 Prometheus 配置文件 prometheus.yml 添加告警规则:
rule_files:
- "rules/alert.rules"
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
新建一个文件 rules/alert.rules,内容如下:
groups:
- name: cpu-high
rules:
- alert: HighCpuUsage
expr: (node_cpu_seconds_total{mode!="idle"}) > 0.7
for: 2m
labels:
severity: warning
annotations:
summary: High CPU usage on {{ $labels.instance }}
description: CPU usage is above 70% (current value: {{ $value }})
⚠️ 注意:上述表达式只是一个示例,真正的 CPU 使用率统计可能需要更复杂的处理,比如结合 rate() 函数。
启动 Alertmanager(用于发送告警信息)
Alertmanager 是 Prometheus 的配套组件,负责把告警消息发送出去。
你可以下载并运行 Alertmanager:
wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
tar xvfz alertmanager-0.25.0.linux-amd64.tar.gz
cd alertmanager-0.25.0.linux-amd64
./alertmanager
这样,当你设定的条件满足时,就能在 Alertmanager 的界面上看到告警信息了。
五、常见问题:新手容易踩坑的地方
Q1:Prometheus 启动失败,报错说端口被占?
A: 可能是之前进程还在运行。请使用以下命令查看占用端口的进程:
lsof -i :9090 # Linux/Mac
netstat -ano | findstr :9090 # Windows
找到 PID 后杀死对应进程即可。
Q2:访问不了 Prometheus 的页面怎么办?
A: 先确认是否启动成功,是否有报错信息。再检查浏览器地址是否正确,以及防火墙是否开放该端口。
Q3:安装 Node Exporter 后 metrics 页面什么也不显示?
A: 很可能是没有正确启动 Node Exporter,请检查执行命令是否拼写错误,或者端口是否冲突。
Q4:为什么看不到 Grafana 图表?
A: 确保 Grafana 已经成功连接 Prometheus,并且 Prometheus 里已经有抓取到的指标数据。可以用前面提到的查询语句测试数据是否存在。
六、学习建议:下一步你可以做什么?
恭喜你完成了第一个监控系统的搭建!这是迈向自动化运维的第一步。接下来你可以尝试:
1. 探索更多监控指标
除了 CPU 和内存,还有磁盘、网络、进程数等很多指标可以采集。试着自己写一个查询来统计磁盘 I/O 的使用情况。
2. 学习使用 Prometheus 的聚合函数
例如 rate()、avg_over_time()、max() 等,它们能帮助你更智能地分析数据。
3. 自定义告警规则
试着写几个不同类型的告警规则,比如内存过高、磁盘快满、进程过多等。
4. 使用远程存储(可选)
如果你的监控数据量越来越大,可以把数据存在外部数据库,比如 Thanos 或 VictoriaMetrics。
5. 学习使用 Kubernetes 环境下的监控方案(高级)
如果你将来想从事云原生方向的工作,了解 Prometheus Operator、ServiceMonitor 等概念会非常有帮助。
结语:监控不是终点,而是起点

监控工具不仅仅是发现问题的“眼睛”,更是我们理解系统行为、优化性能、提升服务稳定性的基础。作为初学者,掌握它的第一步就是动手实践。
希望你通过这篇教程,能够顺利完成第一个监控系统的搭建,并激发继续学习的兴趣。记住,每一个高手都是从“Hello World”开始的!
📌 附录小技巧:常用的 Prometheus 查询语句汇总
| 功能描述 | 查询语句 |
|---|---|
| 查看 CPU 总体使用率 | 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) |
| 查看内存使用百分比 | (node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100 |
| 查看磁盘读写速率 | rate(node_disk_io_time_seconds_total[5m]) |
| 查看活跃进程数 | count(count by (pid) (node_process_stat)) |
💡 学得怎样?欢迎留言交流经验或提出问题,我们一起进步!
本文为原创教程,版权归属作者所有,未经授权不得转载。

评论 0