《监控工具入门指南》——面向完全零基础的初学者

AIExplorer
2025-06-25 17:14
阅读 241

一、开篇:什么是监控工具,为什么我们需要它?

一、开篇:什么是监控工具,为什么我们需要它?

你有没有遇到过这样的情况:你的网站突然打不开了,但你不知道是什么原因;或者是服务器突然变慢了,但你想知道是哪个程序在“搞事情”。这时候,你就需要一个监控工具

监控工具的作用

监控工具就像一台自动运行的“观察者”,它可以:

  • 实时查看系统的资源使用情况(比如 CPU、内存)
  • 检查网站是否在线、访问速度如何
  • 发现异常并通知你(比如发邮件或弹窗提示)
  • 帮助你分析问题发生的时间和原因

简单来说,监控工具就是帮助我们发现系统问题、提前预警,并辅助定位问题根源的好帮手。


二、环境准备:从零开始搭建监控环境

二、环境准备:从零开始搭建监控环境

本教程将使用一个非常流行且适合新手的监控工具组合:Prometheus + Node Exporter

Prometheus 是一个开源的指标收集系统,Node Exporter 是一个用于采集操作系统级别指标的代理软件。

第一步:安装 Prometheus

  1. 打开浏览器,访问 Prometheus官网
  2. 找到最新版本的 Prometheus(适用于你的操作系统,如 Linux/macOS/Windows)
  3. 下载压缩包后解压,你会看到一个文件夹,里面有 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)

给指标加上说明信息,帮助更好区分。例如,你有多个服务器,标签可以告诉你这个指标来自哪台机器、哪个应用。


四、实战项目:构建属于你的第一个监控系统

项目目标

我们将完成以下任务:

  1. 在本地部署 Prometheus 和 Node Exporter
  2. 用 Prometheus 查询 CPU 和内存使用率
  3. 使用一个可视化工具(Grafana)展示监控数据
  4. 设置简单的告警机制

步骤一:确认 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

  1. 登录 Grafana 后,点击左侧菜单中的 "Connections" → "Data Sources" → "+ Add data source"
  2. 选择 Prometheus
  3. URL 填写:http://localhost:9090
  4. 点击 "Save & Test"

步骤三:导入一个现成的仪表盘模板

为了省事,我们可以直接使用一个社区提供的 Node Exporter 仪表板:

  1. 访问 https://grafana.com/grafana/dashboards/
  2. 搜索 “Node Exporter”
  3. 选择一个最受欢迎的(例如编号为 1860 的那个)
  4. 点击 “Import”
  5. 复制 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 等概念会非常有帮助。


结语:监控不是终点,而是起点

调试工具界面-1

监控工具不仅仅是发现问题的“眼睛”,更是我们理解系统行为、优化性能、提升服务稳定性的基础。作为初学者,掌握它的第一步就是动手实践。

希望你通过这篇教程,能够顺利完成第一个监控系统的搭建,并激发继续学习的兴趣。记住,每一个高手都是从“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

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝