在第 5 章中,运行 Prometheus 服务器
,我们有机会尝试使用 Prometheus Operator。由于 Alertmanager 是 Prometheus 堆栈的基本组件,因此 Operator 也能够管理其实例。除了照顾 Alertmanager 集群外,Operator 还负责管理记录和警报规则的配置。
为了深入了解如何使用 Operator 管理 Alertmanager 集群,我们将提供一个完整的设置供您试用。相对于存储库根路径,可以在以下路径中找到用于在我们的 Kubernetes 测试环境中启动和运行 Alertmanager 和 Prometheus 的 Kubernetes 清单:
以下步骤将确保已配置具有所有必需软件的新 Kubernetes 环境,以便我们可以专注于 Alertmanager 组件:
- Validate that no other Kubernetes environment is running:
- Start an empty Kubernetes environment:
- Add the Prometheus Operator components and follow its deployment:
- Add the new Prometheus cluster, ensuring that it's successful:
- Add all the targets to Prometheus and list them:
Kubernetes 测试环境运行后,我们可以继续进行特定于 Alertmanager 的配置。与基于虚拟机的测试环境类似,我们不仅需要配置 Alertmanager 本身,还需要配置 Prometheus 的警报规则。
对于 Alertmanager 配置,由于我们可能想要添加敏感信息,例如电子邮件凭据或寻呼机令牌,因此我们将使用 Kubernetes 机密。这也意味着应该有一个 ServiceAccount 来访问该机密。
我们可以通过应用以下清单来创建 ServiceAccount:
由于我们使用的是机密,因此需要将 Alertmanager 配置编码为 base64。提供了一个最小配置,可以通过发出以下命令进行部署:
作为参考,密码中编码的最小配置如下:
现在,我们可以继续部署,让 Operator 为我们完成繁重的工作。它将抽象 StatefulSet 的创建并使集群启动并运行。为此,我们需要应用以下清单:
上一个清单的重要部分可以在以下代码段中看到:
我们可以通过发出以下指令来跟踪部署的状态:
为了确保 Prometheus 实例可以从新创建的 Alertmanagers 收集指标,我们将添加一个新的 Service 和 ServiceMonitor。为此,我们需要应用以下清单:
现在是添加警报规则的时候了。为此,您只需要应用以下清单:
如果你打开之前的清单,你会看到几个规则。以下片段说明了第一个:
这些规则将被添加到 Prometheus 实例中,并且 Operator 将负责重新加载其配置,而不会导致服务停机。
最后,您可以访问 Prometheus 和 Alertmanager 的 Web 界面,并通过发出以下指令来验证您迄今为止所做的所有配置,这将打开几个浏览器选项卡:
完成测试后,您可以通过发出以下命令来删除这个基于 Kubernetes 的环境:
此设置让您快速了解如何在 Kubernetes 上将 Alertmanager 与 Prometheus 集成。再一次,Prometheus Operator 抽象了大部分复杂性,让您可以专注于最重要的事情。