Отправка алертов в Telegram
1. Сетевые требования
Отправка алертов в Telegram осуществляется с хоста(ов), на которых установлен компонент pager (см. hosts.yml).
С указанных хостов должен быть обеспечен исходящий сетевой доступ к Telegram Bot API:
https://api.telegram.org(TCP 443)
Проверка доступности
curl -sS https://api.telegram.org
Требования к сетевой инфраструктуре
-
При использовании proxy или firewall необходимо разрешить исходящие соединения на
api.telegram.org:443. -
При наличии корпоративного proxy требуется корректная настройка proxy на стороне хоста с
pager.
2. Создание Telegram-бота
-
В приложении Telegram открыть пользователя @BotFather.
-
Выполнить команду:
/newbot -
Указать:
- отображаемое имя бота;
- username бота (обязательно должен оканчиваться на
bot).
-
После создания бот вернет токен следующего формата:
123456789:ABCDefGhIJKlmnoPQRstuvWxyZwarningТокен является чувствительными данными и должен храниться в защищенном виде!
3. Получение chat_id
Алерты могут направляться:
- в личный чат,
- в группу,
- в канал.
3.1 Личный чат
-
Найти созданного бота в Telegram.
-
Нажать Start.
-
Выполнить запрос:
curl -s "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates" -
В ответе найти значение:
message.chat.idПример:
{"result": [{"message": {"chat": {"id": 123456789,"type": "private"Значение
idи являетсяchat_id.
3.2 Группа
-
Добавить бота в группу.
-
Отправить любое сообщение в группе или упомянуть бота.
-
Выполнить запрос:
curl -s "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates" -
Извлечь
message.chat.id.Для групп
chat_idобычно имеет отрицательное значение (например,-100...).Если обновления не отображаются:
- проверить настройки приватности бота через BotFather;
- упомянуть бота в сообщении.
4. Настройка канала алертов (Webhook)
4.1 Создание адреса
-
Перейти в раздел Алерты → Адреса.
-
Нажать кнопку +Адрес.
-
Заполнить параметры:
- Тип:
Webhook - Имя: произвольное
- Тенант: указать соответствующий тенант
- Группа: указать группу доступа
- Тип:
При выборе группы автоматически устанавливается соответствующий тенант.
Нажать Продолжить.
4.2 Настройка HTTP-запроса
- Метод:
POST - URL:
https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/sendMessage - Query parameters:
chat_id— идентификатор чатаparse_mode—MarkdownV2
4.3 Настройка тела запроса
В разделе Body указать JSON-шаблон:
{ "text": "🚨 Alert {{ metadata.AlertName }}\n{{ metadata.Message }}" }
Допускается изменение шаблона сообщения в соответствии с требованиями.
5. Тестирование
Для проверки работоспособности использовать кнопку Test webhook.
При корректной настройке сообщение должно быть доставлено в соответствующий Telegram-чат.