Telegram

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

  1. Создать telegram-бота. Обратите внимание, токен бота выдается однократно при создании через @BotFather.
  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 }}
{{ 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;
  • Нужно ли отключить проверку сертификата (по умолчанию нет);

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

×