AlertManager 是一个开源警报系统,与 Prometheus 监控系统配合使用。本博客是 Prometheus Kubernetes 教程系列的一部分。在我们之前的文章中,我们研究了以下内容:
在本指南中,我将介绍 Alertmanager 设置及其与 Prometheus 的集成。
注意:在本指南中,所有 Alert Manager Kubernetes 对象都将在名为 monitoring 的命名空间中创建。如果使用不同的命名空间,则可以在 YAML 文件中替换它。
Kubernetes 上的 Alertmanager
Alert manager 有以下关键配置:
- 用于 Alertmanager 配置的 ConfigMap
- 用于 Alertmanager 警报模板的 ConfigMap
- Alertmanager 本身的 Deployment
- Alertmanager 的 Service,用于访问 Web UI
重要注意事项
您应该已经启动并运行了一个 Prometheus。Prometheus 的 config.yaml 中应具有正确的 Alertmanager 地址,如下所示,以便将警报发送到警报管理器。
为了能够接收邮件告警,您需要在 Alertmanager 的 config.yaml 中配置合法的 SMTP 信息。您也可以根据自己的需求自定义邮件告警模板。我们在本指南中给出了通用模板。让我们开始吧。
Alertmanager Kubernetes 清单
本教程中使用的所有 Kubernetes 清单都可以在此 Github 链接中找到。使用以下命令克隆 Github 仓库。
用于 Alertmanager 配置的 ConfigMap
Alert Manager 从 config.yaml 文件中读取其配置。它包含警报模板路径、电子邮件和其他警报接收配置的配置。
在此次部署演示中,我们使用电子邮件和 Slack webhook 接收器。您可以从此处查看所有受支持的警报接收器。
创建名为 AlertManagerConfigmap.yaml 的文件,并复制以下内容。
让我们使用 kubectl 创建 ConfigMap。
用于 Alertmanager 警报模板的 ConfigMap
我们需要为我们使用的所有接收器(电子邮件、Slack 等)提供警报模板。Alertmanager 将动态替换这些值,并根据模板向接收者发送警报。您可以根据需要自定义这些模板。
创建一个名为 AlertTemplateConfigMap.yaml 的文件,并从此文件链接 ==> 警报管理器模板 YAML 中复制内容。
使用 kubectl 创建 configmap。
创建 Deployment
在此 Deployment 中,我们将挂载我们创建的两个 ConfigMap。
使用以下内容创建名为 Deployment.yaml 的文件。
使用 kubectl 创建 Deployment。
创建 Alertmanager 的服务端点
我们需要使用 NodePort 或 Load Balancer 公开警报管理器,以便访问 Web UI。Prometheus 将使用内部服务端点与警报管理器进行通信。
创建包含以下内容的 Service.yaml 文件。
使用 kubectl 创建服务。
现在,您将能够在节点端口 31000 上访问警报管理器。例如
- 英文原文: https://devopscube.com/alert-manager-kubernetes-guide/
- 中文译文: https://flashcat.cloud/blog/alert-manager-kubernetes-guide/
- 译者:巴辉特
本博客出自 Flashcat 的小伙伴们,Flashcat 是一家专注在监控/可观测性领域的初创公司,其团队是开源项目 Open-Falcon、Nightingale 的创始团队。