Как настроить получателей оповещений

Webhook, Email и Telegram — раздел «Оповещения» → «Получатели».

Получатели настраиваются в GUI: ОповещенияПолучатели. Общие сведения о типах получателей, маршрутах и порядке настройки — в разделе Настройка алертинга.

После создания получателя укажите, какие оповещения отправлять по каналу: ОповещенияМаршруты (см. маршруты).


Webhook

Webhook используется для отправки сообщений в сервисы агрегации уведомлений, service-desk, task-manager.

Параметр Описание
Имя пользователя Используется для авторизации в паре с паролем. Не требуется при использовании Bearer-токена.
Пароль Используется для авторизации в паре с именем пользователя. Не требуется при использовании Bearer-токена.
Bearer-токен Используется для авторизации. Не требуется при использовании имени пользователя и пароля.
URL-прокси
Отправлять решенные Инициирует отправку сообщения о том, что оповещение перестало быть актуальным. По умолчанию: да.
Максимальное количество оповещений, отправляемых в одном сообщении webhook Максимальное количество предупреждений, отправляемых на одно сообщение веб-перехватчика. При значении 0 - включаются все оповещения.
URL-адрес Эндпоинт для отправки HTTP-запросов.
Использовать TLS По умолчанию нет. При необходимости настроить безопасное соединение дополнительно необходимо ввести: Имя сервера, Файл сертификата УЦ, Файл сертификата клиента,Файл ключа клиента
Имя сервера
Файл сертификата УЦ CAFile. Файл сертификата удостоверяющего центра в формате base64.
Файл сертификата клиента Файл сертификата клиента в формате base64.
Файл ключа клиента Файл ключа клиента в формате base64.
Нужно ли отключить проверку сертификата По умолчанию нет.
Файл сертификата должен содержать:
----BEGIN CERTIFICATE---- и ----END CERTIFICATE----

Пример настройки webhook

Шаг 1. Загрузить demo-webhook

Загрузите в кластер управления манифесты объектов Deployment, Service, VMRule с помощью импорта манифестов.

Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-webhook
  namespace: monitoring
  labels:
    app: demo-webhook
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-webhook
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: demo-webhook
    spec:
      terminationGracePeriodSeconds: 30
      automountServiceAccountToken: false
      containers:
      - name: demo-webhook
        image: quay.io/mgoerens/demo-webhook-receiver-alertmanager:0.0.1
        imagePullPolicy: IfNotPresent
        env:
        - name: PORT
          value: "8080"
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
        resources:
          limits:
            cpu: 10m
            memory: 30Mi
          requests:
            cpu: 10m
            memory: 30Mi
        securityContext:
          capabilities:
            drop:
              - ALL
          allowPrivilegeEscalation: false
Service — иллюстрация
apiVersion: v1
kind: Service
metadata:
  name: demo-webhook
  namespace: monitoring
  labels:
    app: demo-webhook
spec:
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
    name: http
  selector:
    app: demo-webhook
VMRule — иллюстрация
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
  labels:
    app: demo-webhook
    role: user
  name: example-alert
  namespace: victoria-metrics
spec:
  groups:
    - concurrency: 1
      interval: 1m
      labels:
        app: demo-webhook
        ruletype: alert
      name: example
      rules:
        - alert: ExampleAlert
          expr: vector(1)
      type: prometheus

Шаг 2. Создать получателя webhook

В кластере, для которого необходимо настроить алертинг, перейдите в раздел КластерОповещенияПолучатели, создайте получателя с типом webhook. В поле URL-адрес введите значение: http://demo-webhook.monitoring.svc/webhook. В качестве имени получателя укажите demo-webhook. Остальные поля оставьте незаполненными. Сохраните внесенные изменения.

Шаг 3. Настроить маршрут

В разделе КластерОповещенияМаршруты настройте отправку оповещений по этому каналу. При необходимости выберите лейблы уведомлений, которые будут служить фильтром для отправки по заданному каналу.

Шаг 4. Проверить логи

В неймспейсе monitoring кластера управления перейдите к просмотру пода с именем demo-webhook. Откройте окно просмотра логов контейнера. В случае корректной настройки в логах будут сообщения сработавших алертов в кластере.

Скриншот интерфейса платформы

Скриншот: Шаг 4. Проверить логи

Скриншот интерфейса: Скриншот интерфейса платформы


Telegram

Шаг 1. Подготовить бота и получателя

Для настройки отправки оповещений в telegram необходимо:

  1. Создать telegram-бота.
Токен бота выдается однократно при создании через @BotFather.
  1. Определить получателя: это может быть отправка пользователю или в чат группе пользователей.

Шаг 2. Настроить получателя в интерфейсе

Когда бот и получатели определены, в графическом интерфейсе настройте получателя:

Параметр Описание
Telegram API URL Имеет дефолтное значение, необязательно для заполнения.
Формат сообщения Markdown, Markdownv2, HTML. По умолчанию HTML.
Токена бота От имени которого будет отправляться оповещение.
Идентификатор чата Индивидуального или группового. Узнать идентификатор можно, стартовав из требуемого чата диалог в боте: https://t.me/userinfobot
Отправлять решенные Инициирует отправку сообщения о том, что оповещение перестало быть актуальным. По умолчанию: да.
Отключить уведомления Сообщения будут приходить без звукового уведомления. По умолчанию нет.
Шаблон уведомления в текстовом формате Если шаблон не заполнить, то будет приходить сообщение по стандартному шаблону оператора, например:
Пример оповещения без настройки шаблона

Alerts Firing: Labels:

  • alertname = example
  • alertgroup = warning
  • cluster = clustername
  • ruletype = alert
  • severity = warning Annotations:
  • description = demo
  • summary = demo Source: http://vmalert-vmalert-503055269-6467fdc88f-5srrs:8080/vmalert/alert?group_id=13440678846293985821&alert_id=946083850580454XXX

Кроме того, вы можете настроить шаблон непосредственно в поле шаблона. Так, например, чтобы вывести информацию о дате и времени срабатывания, уровне критичности и описании, можно использовать шаблон непосредственно в поле “Шаблон уведомления в текстовом формате “:

Пример настройки шаблона
{{ define "telegram.message" }}
{{ if eq .Status "firing" }}🔥{{ else }}{{ end }} *[{{ .Status | toUpper }}] {{ .CommonLabels.alertname }}*

{{ range .Alerts }}
*Severity:* {{ .Labels.severity | title }}
*Summary:* {{ .Annotations.summary }}
*Time:* {{ .StartsAt.Format "2006-01-02 15:04:05 UTC" }}

{{ if .Annotations.description }}*Description:* {{ .Annotations.description }}
{{ end -}}
{{ if .Annotations.runbook }}[Runbook]({{ .Annotations.runbook }})
{{ end -}}
{{ end }}
{{ template "telegram.message" . }}

Тогда оповещение будет иметь вид:

Пример оповещения по шаблону из примера выше

🔥 [FIRING] TargetDown

Severity: Warning Summary: One or more targets are unreachable. Time: 2025-06-20 03:20:30 UTC

Description: 50% of the vector/ targets in logging namespace are down.

Параметр Описание
Использовать TLS Да/нет. По умолчанию нет.

Учетные данные для отправки (НЕОБЯЗАТЕЛЬНО): пара “Имя пользователя”/“Пароль” или “Bearer-токен”.

Параметр Описание
Имя пользователя Используется для авторизации в паре с паролем. Не требуется при использовании Bearer-токена.
Пароль Используется для авторизации в паре с именем пользователя. Не требуется при использовании Bearer-токена.
Bearer-токен Используется для авторизации. Не требуется при использовании имени пользователя и пароля.

При необходимости настроить безопасное соединение дополнительно необходимо ввести:

Параметр Описание
Имя сервера
Файл сертификата УЦ CAFile. Файл сертификата удостоверяющего центра в формате base64.
Файл сертификата клиента Файл сертификата клиента в формате base64.
Файл ключа клиента Файл ключа клиента в формате base64.
Нужно ли отключить проверку сертификата По умолчанию нет.

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


Email

В зависимости от провайдера вашей почты для настройки оповещения по Email потребуется заполнить данные. Так, например, Gmail обязательно требует авторизационные данные.

Параметр Описание
Идентификатор авторизации Необходим для SMTP авторизации с использованием PLAIN.
Имя пользователя Необходимо для SMTP авторизации с использованием CRAM-MD5, LOGIN или PLAIN. Если авторизация не используется, оставьте поле незаполненным.
Пароль Необходим для SMTP авторизации с использованием CRAM-MD5, LOGIN или PLAIN. Если авторизация не используется, оставьте поле незаполненным.
Секрет авторизации Необходим для SMTP авторизации с использованием CRAM-MD5. Если авторизация с CRAM-MD5 не используется, оставьте поле незаполненным.
E-mail получателя Целевой e-mail-адрес для получения оповещений.
Служебные заголовки Состоящие из имени заголовка и тела заголовка.
Hostname для идентификации SMTP-сервера Необязательное.
Шаблон уведомления в формате HTML
Отправлять решенные Инициирует отправку сообщения о том, что оповещение перестало быть актуальным. По умолчанию: да.
SMTP сервер Обязательное поле.
Для получения оповещений по e-mail:
  • на стороне сервера должны быть открыты порты 25 и/или 587 для SMTP, 465 для SMTPS;
  • при алертинге в кластере (клиентском, управления) платформы “Штурвал” не установлено ограничений на выход по перечисленным портам.

Пример настройки отправки на devmail

Шаг 1. Подготовить конфигурацию maildev

Подготовьте файл конфигурации maildev:

Манифест файла конфигурации maildev
image:
  registry: mirror.gcr.io
  repository: maildev/maildev
  pullPolicy: IfNotPresent
#  tag: "2.2.1"

resources:
  limits:
    cpu: 200m
    memory: 256Mi
  requests:
    cpu: 100m
    memory: 128Mi

ingress:
  annotations:
    cert-manager.io/cluster-issuer: <ваше значение параметра>
  enabled: true
  className: "nginx"

  hosts:
    - host: <ваше значение параметра>
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls:
    - secretName: maildev-ingress-tls
      hosts:
        - <ваше значение параметра>
Параметр Описание Тип данных По умолчанию
cert-manager.io/cluster-issuer Имя Clusterissuer кластера управления string corp-acme
host Хост будущего maildev. Формируется по принципу maildev.имя-кластера-управления.<base_domain>. string maildev.clustername.ip-XX-XX-XXX-XXX.shturval.link

Шаг 2. Установить devmail

Установите devmail с полученным файлом конфигурации в неймспейс monitoring кластера управления.

Команда для установки devmail

Не забудьте в конце команды вместо ИМЯ-ФАЙЛА-КОНФИГУРАЦИИ вписать имя, с которым вы сохранили конфигурационный файл!

helm upgrade --install -n monitoring maildev https://github.com/christianknell/helm-charts/releases/download/maildev-1.3.4/maildev-1.3.4.tgz -f ИМЯ-ФАЙЛА-КОНФИГУРАЦИИ

В случае, если настройка корректна, в неймспейсе monitoring кластера управления появится Pod с префиксом maildev.

Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Шаг 3. Создать получателя email

В кластере, для которого требуется настроить отправку оповещения на почту, в разделе КластерОповещенияПолучатели создайте получателя с типом “email”.

Заполните отправителя, получателя. Пропишите SMTP сервер: maildev-smtp.monitoring.svc:1025.

Если настройка верна, то по адресу, указанному в качестве хоста в конфигурационном файле (https://maildev.имя-кластера-управления.<base_domain>/#/) будет доступен maildev.

Шаг 4. Настроить маршрут и проверить

В разделе КластерОповещенияМаршруты настройте отправку оповещений по этому каналу. При необходимости выберите лейблы уведомлений, которые будут служить фильтром для отправки по заданному каналу.

Скриншот интерфейса платформы

Скриншот: Шаг 4. Настроить маршрут и проверить

Если настройка оказалось верной, то на devmail вы увидите уведомление следующего вида:

Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы