Приемники диспетчера оповещений автоматизации

Добрый день, может кто сталкивался с автоматизацией заполнения ресиверов в alertmanager из аннотаций кастомных подов?

Я имею в виду, что я хочу, чтобы алерменеджеры брали приемники из аннотаций pod, как бы не руками. Например, если пространство имен _, то получатели получают из custom.io/owner (например).

Я имею в виду, может ли это выглядеть

- name: smthg
  email_configs:
  - to: "__meta_kubernetes_pod_annotation_custom_io_owner"

заранее спасибо

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование ярлыков для направления уведомлений по электронной почте Удобной особенностью Alertmanager является то, что почти все поля уведомлений являются шаблонными. Это можно использовать для маршрутизации электронной почты на основе меток.

Если вы отправляете уведомления по электронной почте напрямую клиентам, было бы полезно не создавать маршрут и получателя для каждого клиента в Alertmanager. Это может быть полезно, если вы являетесь хостинговой компанией, предоставляющей оповещения на машинах, которые вы арендуете, или поставщиком общих услуг внутри компании.

Я предполагаю, что у вас уже есть работающая настройка уведомлений по электронной почте, такая как была показана ранее с Gmail.

Начнем с Прометея. Нам нужно поместить целевой адрес электронной почты в метку оповещения. Допустим, вы построили временной ряд, который выглядит так:

mymetric{job = "myjob",email_to = "[email protected]",instance = "host1"}
mymetric{job = "myjob",email_to = "[email protected]",instance = "host2"}

Затем вы можете написать предупреждение, которое распространяет эту метку email_to, например:

groups:
- name: test.rules
  rules:
  - alert: MyAlert
    expr: mymetric > 1

Теперь в Alertmanager нам нужно сделать две вещи. Нам нужно убедиться, что каждый уникальный адрес электронной почты получает собственное уведомление через группировку, и нам нужно сделать так, чтобы затем перейти на этот адрес электронной почты.

route:
  group_by: [email_to]
  receiver: email_router

receivers:
- name: email_router
  email_configs:
  - to: "{{ .GroupLabels.email_to }}"
    from: [email protected]
    # Add whatever other settings you need to talk to your SMTP server
    headers:
      subject: "You have {{ .Alerts.Firing | len }} firing alerts"
    html: |
      Hi {{ .GroupLabels.email_to }},

      <p>
      You have the following firing alerts:
      <ul>
      {{ range .Alerts }}
      <li>{{.Labels.alertname}} on {{ .Labels.instance }}</li>
      {{ end }}
      </ul>
      </p>

Поскольку email_to находится в группе group_by, мы можем получить к нему доступ через .GroupLabels. В противоположность этому, поскольку в одном уведомлении могут быть оповещения с разными именами оповещений и метками экземпляров, нам нужно выполнить итерацию по ним, чтобы перечислить их все.

https://www.robustperception.io/using-labels-to-direct-email-notifications

Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 16.05.2022 02:35

Привет! Добро пожаловать в StackOverflow, пожалуйста, не копируйте всю веб-страницу. Возможно, вы захотите объяснить своими словами, как предоставленный вами ответ относится к вопросу ОП.

the_coding_cat 16.05.2022 02:36

Другие вопросы по теме