三天搭建服务器监控系统:Prometheus+Grafana实战指南
2026/8/21 3:11:37 网站建设 项目流程

你的服务器是不是也这样:CPU 使用率偶尔飙高,内存占用悄悄增长,磁盘空间不知不觉就满了,但每次出问题都得靠用户反馈才知道?或者,你看着一堆命令行输出的数字,却很难直观地看出系统的健康趋势?

很多开发者都卡在监控这一步。知道监控重要,但 Prometheus 和 Grafana 这两个名字听起来就复杂,官方文档又长又散,从安装、配置到出图,每一步都可能遇到各种环境问题,最终“从入门到放弃”。

这篇文章要解决的,就是这个问题。我的核心判断是:搭建一套可用的服务器监控面板,核心流程其实非常标准化,三天时间完全足够。关键在于绕过那些分散的、过时的教程,直接抓住一条主线,把安装、配置、数据采集和可视化串联起来。

读完本文,你将能独立完成从零搭建一套 Prometheus + Grafana 监控系统,并得到一个能实时反映服务器 CPU、内存、磁盘、网络等核心指标的可视化监控大盘。更重要的是,你会理解这套组合的核心工作逻辑,知道数据从哪里来、到哪里去、如何展示,从而具备后续自定义监控和排查问题的能力。

1. 为什么是 Prometheus + Grafana?它解决了什么根本问题?

在深入动手之前,我们必须先搞清楚,为什么是这两个工具的组合成为了云原生时代监控的事实标准。这能帮你理解每一步操作背后的意义,而不是机械地复制命令。

传统的服务器监控,你可能用过topfreedf命令,或者一些简单的脚本。但这些方式存在几个致命缺陷:

  1. 历史数据缺失:只能看当前瞬间的状态,无法回溯问题发生前的趋势。
  2. 可视化困难:一堆数字难以形成直观认知,更别提给非技术人员看了。
  3. 告警滞后:往往等问题发生了才被动发现,无法提前预警。
  4. 难以聚合:当服务器数量增多后,分散的信息无法统一管理。

Prometheus + Grafana 的组合,完美地解决了这些问题:

  • Prometheus负责“抓取”和“存储”指标数据。它定时从各个目标(如你的服务器、数据库、应用)拉取(Pull)指标,并按照时间序列存储在本地。它的数据模型(指标名+标签)非常灵活,查询语言(PromQL)功能强大。
  • Grafana负责“展示”和“告警”。它是一个功能强大的可视化平台,可以从 Prometheus 等数据源读取数据,绘制成各种精美的图表、仪表盘,并配置灵活的告警规则。

简单来说,Prometheus 是数据库和采集器,Grafana 是报表和报警系统。这个分工让两者各司其职,都非常专业。

对于个人开发者、中小团队或是想监控自己云服务器的用户来说,这套方案的优势在于:

  • 开源免费:没有授权费用。
  • 生态强大:几乎所有的现代软件(如 MySQL, Redis, Nginx, Node.js, JVM)都提供了 Prometheus 格式的指标接口。
  • 配置即代码:所有配置都是文件,易于版本管理和自动化。
  • 轻量级:单个服务对资源消耗不大,非常适合从一台服务器开始。

接下来,我们就用三天时间,走通从安装到出图的完整流程。

2. 环境准备与规划:你的“三天计划”路线图

在开始下载任何软件之前,做好环境规划能避免后续很多混乱。我们假设一个最典型的场景:你有一台安装了 Linux 的服务器(可以是云服务器如阿里云 ECS、腾讯云 CVM,也可以是本地虚拟机),想监控这台服务器本身。

Day 1 目标:完成 Prometheus 和 Node Exporter 的安装与基础配置,让数据采集跑起来。Day 2 目标:完成 Grafana 的安装,并接入 Prometheus 数据源,看到最基础的图表。Day 3 目标:导入成熟的服务器监控仪表盘,配置核心告警,形成完整可用的监控面板。

前置条件:

  • 一台 Linux 服务器:本文以CentOS 7.x / Rocky Linux 8.x 或 Ubuntu 20.04/22.04 LTS为例,大部分命令通用。你需要拥有sudo权限。
  • 网络连通:服务器需要能访问互联网以下载安装包。
  • 基础命令行操作:熟悉cd,ls,wget,tar,systemctl,vim/nano等命令。
  • 防火墙/安全组:需要开放相关端口供访问(后续会说明)。

软件版本说明(请以实际最新稳定版为准):

  • Prometheus: 最新稳定版(如 2.45.0)
  • Node Exporter: 最新稳定版(如 1.6.0)
  • Grafana: 最新稳定版(如 10.0.0)

我们将把所有软件安装在/opt目录下,并使用systemd来管理服务,这是生产环境推荐的做法。

3. Day 1:安装 Prometheus 与 Node Exporter,启动数据采集

今天的目标是让 Prometheus 运行起来,并配置它去采集我们服务器的硬件和系统指标,这需要一个叫node_exporter的组件。

3.1 安装 Node Exporter(指标暴露器)

Node Exporter 是 Prometheus 官方提供的采集主机指标(如 CPU、内存、磁盘、网络)的代理。它运行在需要被监控的服务器上,暴露一个 HTTP 接口,Prometheus 会从这个接口拉取数据。

# 1. 创建专用用户(为了安全,不建议用root运行) sudo useradd --no-create-home --shell /bin/false node_exporter # 2. 下载并解压 Node Exporter # 进入临时目录,下载最新版本,请访问 https://prometheus.io/download/ 查看最新版本号 cd /tmp wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz tar -xzf node_exporter-1.6.0.linux-amd64.tar.gz # 3. 移动二进制文件到系统目录并设置权限 sudo mv node_exporter-1.6.0.linux-amd64/node_exporter /usr/local/bin/ sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter # 4. 创建 systemd 服务文件 sudo vim /etc/systemd/system/node_exporter.service

将以下内容写入/etc/systemd/system/node_exporter.service文件:

[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
# 5. 启动 Node Exporter 并设置开机自启 sudo systemctl daemon-reload sudo systemctl start node_exporter sudo systemctl enable node_exporter # 6. 检查服务状态和端口 sudo systemctl status node_exporter # 应该看到 active (running) 状态 curl http://localhost:9100/metrics # 如果看到大量以 `node_` 开头的文本指标输出,说明安装成功!

关键点解释

  • Node Exporter 默认监听在9100端口。
  • 访问http://你的服务器IP:9100/metrics可以看到它暴露的所有指标,这是 Prometheus 抓取数据的源头。
  • 使用systemd管理服务,可以保证进程意外退出后自动重启,并且方便地启停。

3.2 安装与配置 Prometheus(监控服务器)

Prometheus 是主服务器,它需要被安装在一台独立的机器上(在我们的单机场景下,就和 Node Exporter 装在同一台)。

# 1. 创建专用用户 sudo useradd --no-create-home --shell /bin/false prometheus # 2. 创建配置和数据目录 sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus sudo chown prometheus:prometheus /etc/prometheus sudo chown prometheus:prometheus /var/lib/prometheus # 3. 下载并解压 Prometheus cd /tmp wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz tar -xzf prometheus-2.45.0.linux-amd64.tar.gz # 4. 移动二进制文件和配置文件 sudo mv prometheus-2.45.0.linux-amd64/prometheus /usr/local/bin/ sudo mv prometheus-2.45.0.linux-amd64/promtool /usr/local/bin/ sudo chown prometheus:prometheus /usr/local/bin/prometheus sudo chown prometheus:prometheus /usr/local/bin/promtool sudo mv prometheus-2.45.0.linux-amd64/consoles /etc/prometheus/ sudo mv prometheus-2.45.0.linux-amd64/console_libraries /etc/prometheus/ sudo chown -R prometheus:prometheus /etc/prometheus # 5. 创建 Prometheus 主配置文件 sudo vim /etc/prometheus/prometheus.yml

这是 Prometheus 最核心的配置文件,它定义了抓取规则。将以下内容写入/etc/prometheus/prometheus.yml

# 全局配置 global: scrape_interval: 15s # 每15秒抓取一次数据 evaluation_interval: 15s # 每15秒评估一次告警规则 # 告警规则文件配置(暂时不用,后续可添加) rule_files: # - "first_rules.yml" # - "second_rules.yml" # 抓取配置,这里定义要监控的目标 scrape_configs: # 任务名:监控 Prometheus 自身 - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] # Prometheus 自己暴露指标的端口 # 任务名:监控 Linux 服务器节点 - job_name: 'node' static_configs: - targets: ['localhost:9100'] # Node Exporter 的地址和端口 labels: instance: 'my-first-server' # 给这个目标打上一个标签,便于识别
# 6. 设置配置文件权限 sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml # 7. 创建 systemd 服务文件 sudo vim /etc/systemd/system/prometheus.service

将以下内容写入/etc/systemd/system/prometheus.service

[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 [Install] WantedBy=multi-user.target
# 8. 启动 Prometheus 并设置开机自启 sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus # 9. 检查服务状态 sudo systemctl status prometheus

3.3 验证 Day 1 成果

  1. 检查服务端口

    sudo netstat -tlnp | grep -E '(9090|9100)'

    应该看到9090(Prometheus) 和9100(Node Exporter) 端口都在监听。

  2. 访问 Prometheus Web UI: 在浏览器中打开http://你的服务器IP:9090

    • 点击页面上方的“Status” -> “Targets”。你应该看到两个目标:prometheusnode,状态都应为“UP”。这证明 Prometheus 正在成功抓取自身和 Node Exporter 的数据。
    • 点击“Graph”页签,在输入框中尝试输入一个 PromQL 查询,例如node_memory_MemTotal_bytes,然后点击“Execute”。如果能看到图表或数据表格,说明数据流已经完全打通!

第一天总结:你已经成功部署了监控系统的数据采集和存储层。Prometheus 在后台默默地每15秒抓一次数据,并存储在本地时序数据库中。现在,数据已经有了,缺的是一个好看的“脸面”。

4. Day 2:安装 Grafana,连接数据源,绘制第一张图

Grafana 是我们的可视化利器。今天的目标是安装它,并连接到 Prometheus,创建第一个图表。

4.1 安装 Grafana

这里我们使用 Grafana 官方提供的仓库进行安装,方便后续升级。

对于 CentOS/RHEL/Rocky Linux:

# 1. 添加 Grafana 仓库 sudo vim /etc/yum.repos.d/grafana.repo

写入以下内容:

[grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
# 2. 安装 Grafana sudo yum install -y grafana

对于 Ubuntu/Debian:

# 1. 安装依赖和添加 GPG 密钥 sudo apt-get install -y software-properties-common wget sudo wget -q -O /usr/share/keyrings/grafana.key https://packages.grafana.com/gpg.key # 2. 添加稳定版仓库 echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list # 3. 更新并安装 sudo apt-get update sudo apt-get install -y grafana

4.2 启动并配置 Grafana

# 启动 Grafana 服务并设置开机自启 sudo systemctl daemon-reload sudo systemctl start grafana-server sudo systemctl enable grafana-server # 检查服务状态 sudo systemctl status grafana-server

Grafana 默认监听在3000端口。

4.3 登录并添加 Prometheus 数据源

  1. 登录 Grafana:浏览器打开http://你的服务器IP:3000。默认用户名和密码都是admin。首次登录会要求修改密码,请务必修改并牢记。
  2. 添加数据源
    • 登录后,点击左侧导航栏的齿轮图标 (Configuration)->“Data Sources”
    • 点击“Add data source”
    • 选择“Prometheus”
    • “HTTP”部分的“URL”中,填写http://localhost:9090(因为 Grafana 和 Prometheus 装在同一台服务器)。如果不在同一台,则填写 Prometheus 服务器的实际地址和端口。
    • 其他选项保持默认,滚动到页面底部,点击“Save & test”
    • 如果看到绿色的“Data source is working”提示,恭喜你,数据源配置成功!

4.4 创建第一个仪表盘和面板

现在我们来手动创建一个显示 CPU 使用率的图表,理解 Grafana 的工作方式。

  1. 创建仪表盘:点击左侧“田字格图标 (Dashboards)”->“New”->“New dashboard”
  2. 添加面板:在新仪表盘页面,点击“Add visualization”
  3. 选择数据源:在查询编辑器上方,确保数据源是你刚添加的Prometheus
  4. 编写 PromQL 查询
    • 在查询编辑器(通常标记为A)中,输入以下 PromQL 查询来计算 CPU 使用率:
      100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)
    • 这个查询的含义是:计算过去1分钟内,非空闲(idle)状态的CPU时间占比,从而得到使用率。node_cpu_seconds_total是 Node Exporter 提供的指标,mode="idle"筛选出空闲状态的CPU时间,rate函数计算每秒的增长率,avg by (instance)按实例(服务器)聚合。
  5. 配置图表
    • 在右侧的“Visualization”下拉菜单中,选择“Time series”(时间序列图)。
    • “Panel options”中,给面板起个名字,比如 “CPU Usage”。
    • “Standard options”里,可以设置单位(Unit)为Percent (0-100)
  6. 应用并保存:点击右上角的“Apply”保存这个面板。然后点击仪表盘顶部的“Save dashboard”图标,给你的仪表盘起个名字(如 “My Server Monitor”),并保存。

至此,你已经完成了从数据采集到可视化的完整链路!虽然只有一个图,但你已经掌握了最核心的操作:配置数据源 -> 编写 PromQL -> 选择可视化类型

5. Day 3:导入专业仪表盘与配置基础告警

手动创建所有图表效率太低。Grafana 社区有大量制作精良、开箱即用的仪表盘模板。今天,我们通过“导入”功能,快速获得一个全面的服务器监控视图,并配置一个简单的告警。

5.1 导入 Node Exporter 全览仪表盘

Grafana 官网有一个官方维护的、非常全面的 Node Exporter 仪表盘。

  1. 获取仪表盘 ID:访问 Grafana Dashboards 官网 ,搜索 “Node Exporter Full”。通常第一个结果 ID 是1860(请以网站最新为准)。
  2. 在 Grafana 中导入
    • 回到你的 Grafana 界面,点击左侧“田字格图标”->“New”->“Import”
    • “Import via grafana.com”输入框中,填入仪表盘 ID1860,然后点击“Load”
    • 在下一个页面,选择你的 Prometheus 数据源,然后点击“Import”
  3. 查看成果:导入成功后,你会立即看到一个包含数十个图表的专业监控面板!里面涵盖了 CPU、内存、磁盘 IO、网络流量、系统负载、磁盘空间等几乎所有关键指标。花点时间浏览一下,你会对服务器的状态一目了然。

5.2 配置一个磁盘空间不足的告警

可视化是为了看,告警是为了“被通知”。我们配置一个当根目录磁盘使用率超过 80% 时触发告警的规则。

  1. 在 Prometheus 中配置告警规则文件(可选,但推荐): Prometheus 本身可以计算告警条件,但更常见的做法是使用其姐妹项目Alertmanager来管理告警路由和通知(如发邮件、钉钉、Slack)。为了简化,我们先在 Grafana 中配置内置告警。

  2. 在 Grafana 面板上配置告警

    • 打开你刚刚导入的 “Node Exporter Full” 仪表盘。
    • 找到显示“Disk Space Usage”(磁盘空间使用率)的面板。将鼠标悬停在面板标题上,点击出现的“下拉菜单图标”->“Edit”
    • 进入面板编辑模式后,点击右侧的“Alert”选项卡 ->“Create alert”
    • 配置告警规则
      • Rule name:Disk Usage High on {{ $labels.instance }}
      • Evaluate every:1m(每1分钟评估一次)
      • For:2m(持续2分钟满足条件才触发,避免抖动)
    • 配置条件
      • 在查询部分,应该已经有一个查询(比如100 - (node_filesystem_free_bytes{fstype!~”tmpfs|devtmpfs”} / node_filesystem_size_bytes{fstype!~”tmpfs|devtmpfs”} * 100))。确保它查询的是根分区(通常mountpoint=”/”)。
      • “Conditions”部分,设置WHENlast()OFquery(A, 1m, now)IS ABOVE80
      • 意思是:当查询 A 在过去1分钟内的最后一个值高于 80时,触发告警。
    • 配置通知
      • 点击“Notifications”部分,你需要先配置一个“通知渠道”(Contact point)。点击“Create contact point”
      • 这里以“测试”为例,选择类型为Test(它只会在 Grafana 内部生成警报日志,不会真正发送)。你也可以后续配置邮件、钉钉等。
      • 保存联系点后,在告警规则中选择它。
    • 保存:点击右上角的“Save”保存面板,然后保存仪表盘。
  3. 测试告警

    • 告警规则保存后,Grafana 会开始评估。
    • 你可以点击左侧“铃铛图标 (Alerting)”->“Alert rules”查看你创建的规则及其状态。
    • 当磁盘使用率真的超过80%并持续2分钟后,状态会变为“Firing”。你可以在“Alerting”->“Alert instances”中看到触发的告警。

5.3 (可选)开放防火墙端口供外部访问

目前服务只能通过服务器本地访问。如果你想在外部浏览器访问 Grafana 面板,需要开放端口。

重要安全提醒:生产环境务必为 Grafana 配置强密码,并考虑使用 Nginx 反向代理添加 HTTPS 和身份认证。

# 对于 firewalld (CentOS/Rocky) sudo firewall-cmd --permanent --add-port=3000/tcp # Grafana sudo firewall-cmd --permanent --add-port=9090/tcp # Prometheus (通常不建议直接暴露) sudo firewall-cmd --reload # 对于 ufw (Ubuntu) sudo ufw allow 3000/tcp # Grafana # sudo ufw allow 9090/tcp # 谨慎开放 Prometheus 端口 sudo ufw reload

现在,你可以通过http://你的服务器公网IP:3000在任何地方访问你的监控面板了。

6. 核心概念与 PromQL 快速入门

经过三天的实践,系统已经跑起来了。但要真正驾驭它,你需要理解几个核心概念和 PromQL 基础。

6.1 核心概念

  • 指标 (Metric):一个随时间变化的测量值,如node_cpu_seconds_total。它有一个名称和一组键值对标签(Label)。
  • 标签 (Label):指标的维度,用于区分和筛选。例如{job=”node”, instance=”my-first-server”, mode=”idle”}。标签让查询变得极其灵活。
  • 时间序列 (Time Series):一个指标在连续时间点上的值序列。由指标名+一组唯一的标签组合定义。
  • 抓取 (Scrape):Prometheus 定期从目标 HTTP 端点拉取指标数据的过程。
  • PromQL:Prometheus 查询语言,用于从时序数据库中检索和聚合数据。它是生成图表和告警的基础。

6.2 常用 PromQL 示例

理解这些查询,你就能自定义大部分监控视图:

  1. CPU 总使用率(如前所述):

    100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)
  2. 可用内存百分比

    node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100
  3. 磁盘使用率(根分区)

    100 - (node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100)
  4. 网络接收流量速率(eth0网卡)

    rate(node_network_receive_bytes_total{device="eth0"}[1m])
  5. 系统负载(1分钟平均)

    node_load1

关键函数

  • rate(): 计算时间范围内指标的平均增长速率,适用于计数器(只增不减的指标)。
  • increase(): 计算时间范围内的绝对增长量。
  • sum(): 求和。
  • avg(): 求平均值。
  • by ()/without (): 在聚合时,指定分组或排除的标签。

7. 常见问题与排查思路

在部署和使用过程中,你可能会遇到以下问题:

问题现象可能原因排查方式解决方案
Prometheus Targets 状态为DOWN1. 网络不通/端口未监听
2. 防火墙/安全组阻止
3. 目标服务未运行
1. 在 Prometheus 服务器上curl -v http://目标IP:端口/metrics
2.sudo systemctl status <服务名>
3.sudo netstat -tlnp | grep 端口
1. 检查服务状态并启动
2. 配置防火墙规则
3. 检查prometheus.ymltargets地址是否正确
Grafana 中查询不到数据1. 数据源配置错误
2. PromQL 写错
3. 时间范围设置不对
1. 在 Grafana 数据源配置页点击“Save & test”
2. 去 Prometheus Web UI (http://IP:9090) 的 “Graph” 页测试相同查询
3. 检查 Grafana 右上角的时间范围
1. 修正数据源 URL
2. 在 Prometheus UI 中调试 PromQL
3. 调整时间范围为最近几小时
Node Exporter 指标不全(如缺少磁盘)1. 权限不足,无法读取某些系统信息
2. 内核版本或文件系统特殊
1. 查看 Node Exporter 日志sudo journalctl -u node_exporter -f
2. 检查/proc/sys文件系统
1. 确保以root或具有足够权限的用户运行(不推荐生产环境用root,可配置CAP_DAC_READ_SEARCH能力)
2. 启动时添加参数收集特定指标,如--collector.filesystem.ignored-mount-points
磁盘空间报警不准确1. 查询条件未过滤临时文件系统(tmpfs)
2. 监控了非关键分区
在 Prometheus UI 中查询node_filesystem_size_bytesnode_filesystem_free_bytes,查看所有挂载点在 PromQL 中添加过滤器,如fstype!~”tmpfs|devtmpfs”
服务启动失败1. 配置文件语法错误(YAML格式敏感)
2. 目录权限错误
3. 端口被占用
1.sudo journalctl -u prometheus -xe查看详细错误日志
2.promtool check config /etc/prometheus/prometheus.yml检查配置文件
3.sudo lsof -i:9090查看端口占用
1. 根据日志修正配置或权限
2. 使用promtool验证配置
3. 停止占用端口的进程或修改服务监听端口

8. 生产环境最佳实践与进阶方向

当你把监控用于更严肃的环境时,需要考虑以下几点:

  1. 安全加固

    • Grafana:强制修改默认密码,配置强密码策略。通过 Nginx/Apache 设置反向代理,启用 HTTPS。利用 Grafana 的[auth.proxy]或 OAuth 集成公司统一登录。
    • Prometheus:避免将9090端口直接暴露到公网。使用反向代理并配置基础认证。考虑使用--web.external-url参数。
    • Node Exporter:使用非 root 用户运行。通过--collector参数禁用不需要的采集器(如--collector.textfile如果不用的话),减少攻击面。
  2. 数据持久化与备份

    • Prometheus 数据默认存储在--storage.tsdb.path指定的目录。确保该目录所在磁盘空间充足(一般保留至少15-30天的数据)。
    • 考虑使用远程存储(如 Thanos, Cortex, M3DB)来实现长期存储、高可用和全局视图。
    • 定期备份prometheus.yml等配置文件。
  3. 监控更多目标

    • 数据库:MySQL (mysqld_exporter)、Redis (redis_exporter)。
    • Web服务器:Nginx (nginx-prometheus-exporter)。
    • 应用:任何支持暴露 Prometheus 格式指标的应用(如 Spring Boot Actuator, Go 的promhttp包)。
    • 方法:在prometheus.ymlscrape_configs下添加新的job,指向对应 exporter 的地址。
  4. 告警管理升级

    • 部署Alertmanager:用于对 Prometheus 产生的告警进行去重、分组、静默,并路由到不同的接收器(邮件、钉钉、企业微信、PagerDuty等)。
    • 定义有意义的告警标签和注解,方便识别和处理。
  5. 使用服务发现

    • 在动态环境(如 Kubernetes)中,手动维护targets列表不可行。Prometheus 支持多种服务发现机制(DNS, Consul, Kubernetes API 等),可以自动发现监控目标。

三天时间,你从零搭建了一套专业的服务器监控系统。这套系统的价值不在于它本身有多复杂,而在于它为你打开了一扇门:一扇通往可观测性、数据驱动决策和主动运维的大门。接下来,你可以尝试监控你的下一个应用,或者探索 Grafana 更强大的图表和告警功能。监控的世界很大,但第一步,你已经稳稳地迈出去了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询