CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/Prometheus/基于指标的告警
文档目录
Prometheus 入门Prometheus 入门使用基于文件的服务发现来发现抓取目标使用 Node Exporter 监控 Linux 主机指标理解指标类型对用 Go 编写的 HTTP 服务器进行插桩使用 Grafana 可视化指标基于指标的告警

Prometheus

基于指标的告警

在本教程中,我们将基于之前在对用 Go 编写的 HTTP 服务器进行插桩教程中插桩的 pingrequestcount 指标创建告警。 为了本教程的目的,我们将在 pingrequestcount 指标大于 5 时触发告警。查看实际的最佳实践以了解更多关于告警原则的信息。 从此处下载适用于你操作系统的最新版本的 Alertmanager。 Alertmanager 支持多种接收器,如...

在本教程中,我们将基于之前在对用 Go 编写的 HTTP 服务器进行插桩教程中插桩的 ping_request_count 指标创建告警。

为了本教程的目的,我们将在 ping_request_count 指标大于 5 时触发告警。查看实际的最佳实践以了解更多关于告警原则的信息。

从此处下载适用于你操作系统的最新版本的 Alertmanager。

Alertmanager 支持多种接收器,如 email、webhook、pagerduty、slack 等,通过这些接收器可以在告警触发时发出通知。你可以在此处找到接收器列表及其配置方式。本教程我们将使用 webhook 作为接收器,前往 webhook.site 并复制 webhook URL,稍后我们将用它来配置 Alertmanager。

首先让我们设置带有 webhook 接收器的 Alertmanager。

alertmanager.yml

global:
  resolve_timeout: 5m
route:
  receiver: webhook_receiver
receivers:
    - name: webhook_receiver
      webhook_configs:
        - url: '<INSERT-YOUR-WEBHOOK>'
          send_resolved: false

将 alertmanager.yml 文件中的 <INSERT-YOUR-WEBHOOK> 替换为我们之前复制的 webhook,然后使用以下命令运行 Alertmanager。

alertmanager --config.file=alertmanager.yml

Alertmanager 启动并运行后,导航到 http://localhost:9093,你应该能够访问它。

现在我们已经配置了带有 webhook 接收器的 Alertmanager,让我们将规则添加到 Prometheus 配置中。

prometheus.yml

global:
 scrape_interval: 15s
 evaluation_interval: 10s
rule_files:
  - rules.yml
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - localhost:9093
scrape_configs:
 - job_name: prometheus
   static_configs:
       - targets: ["localhost:9090"]
 - job_name: simple_server
   static_configs:
       - targets: ["localhost:8090"]

注意,evaluation_interval、rule_files 和 alerting 部分已添加到 Prometheus 配置中。evaluation_interval 定义了规则被评估的间隔,rule_files 接受定义规则的 yaml 文件数组,alerting 部分定义了 Alertmanager 配置。如本教程开头所述,我们将创建一个基本规则,当 ping_request_count 值大于 5 时触发告警。

rules.yml

groups:
 - name: Count greater than 5
   rules:
   - alert: CountGreaterThan5
     expr: ping_request_count > 5
     for: 10s

现在让我们使用以下命令运行 Prometheus。

prometheus --config.file=./prometheus.yml

在浏览器中打开 http://localhost:9090/rules 查看规则。接下来运行已插桩的 ping 服务器并访问 http://localhost:8090/ping 端点,至少刷新页面 6 次。你可以通过导航到 http://localhost:8090/metrics 端点来检查 ping 计数。要查看告警状态,请访问 http://localhost:9090/alerts。一旦条件 ping_request_count > 5 持续超过 10 秒为真,state 将变为 FIRING。现在如果你导航回你的 webhook.site URL,你将看到告警消息。

同样,Alertmanager 可以配置其他接收器,以便在告警触发时发出通知。