基于Prometheus的全方位监控平台--告警平台(Alertmanager)部署管理

一、AlertManager简介

Alertmanager | Prometheus

1.1、AlertManager 常用的功能

1.2、Prometheus 和 AlertManager 的关系

二、部署搭建Alertmanager

2.1、创建AlertManager数据的存储PVC资源 alertmanager-storage.yaml

2.2、创建AlertManager配置文件ConfigMap(邮件方式)

参数说明:

2.3、创建AlertManager部署文件 alertmanager-deploy.yaml

2.4、创建AlertManager外部服务暴露 alertmanager-ingress.yaml

访问验证:

三、AlertManager的三个核心概念

3.1、分组

被触发的警报合并为一个警报进行通知,避免瞬间突发性的接受大量警报通知,使得管理员无法对问题进行快速定位。

场景:

在Kubernetes集群中,运行着重量级规模的实例,即便是集群中持续很小一段时间的网络延迟或者延迟导致网络抖动,也会引发大量类似服务应用无法连接 DB 的故障。如果在警报规则中定义每一个应用实例都发送警报,那么到最后的结果就是会有大量的警报信息通过Alertmanager发送给咱们的运维及研发小伙伴。

3.2、抑制

Inhibition 是 当某条警报已经发送,停止重复发送由此警报引发的其他异常或故障的警报机制。

场景:

在我们的灾备体系中,当原有集群故障宕机业务彻底无法访问的时候,会把用户流量切换到备份集群中,这样为故障集群及其提供的各个微服务状态发送警报机会失去了意义,此时, Alertmanager 的抑制特性就可以在一定程度上避免管理员收到过多无用的警报通知。

3.3、静默

Silences 提供了一个简单的机制,根据标签快速对警报进行静默处理;对传进来的警报进行匹配检查,如果接受到警报符合静默的配置,Alertmanager 则不会发送警报通知。

场景:

四、Prometheus添加告警配置

修改ConfigMap资源文件prometheus-config.yaml,改动内容如下:

修改 prometheus-config.yaml

按上面方法重载 Prometheus,打开 Prometheus 的 Target 页面,就会看到 上面定义的 mysql-exporter 任务

Prometheus UI查看配置和告警规则是否生效

告警规则是否生效:

五、总结

  1. 可视化:Alertmanager提供了丰富的可视化功能,包括交互式控制台和Web界面,使用户可以轻松地查看警报和监控状态,以及管理警报的路由和通知。
  2. 多功能:通过分组,抑制,静默等多功能。这意味着这款工具可以适配更多的场景,做不同维度的功能释放。
  3. 与Prometheus的集成:Alertmanager是由Prometheus团队开发的,这意味着它与Prometheus监控系统紧密集成。Alertmanager可以与Prometheus进行无缝协作,从而实现更全面、更高效的监控和警报功能。