Telegram
Для настройки отправки оповещений в telegram необходимо:
- Создать telegram-бота. Обратите внимание, токен бота выдается однократно при создании через @BotFather.
- Определить получателя: это может быть отправка пользователю или в чат группе пользователей.
Когда бот и получатели определены, в графическом интерфейсе настройте получателя:
- 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;
- Нужно ли отключить проверку сертификата (по умолчанию нет);
По завершении настройки получателя необходимо настроить, какие оповещения будут отправляться по этому каналу. Для этого в разделе Кластер/Оповещения/Маршруты настройте отправку оповещений по этому каналу. При необходимости выберите лейблы уведомлений, которые будут служить фильтром для отправки по заданному каналу.