Перейти к основному содержимому
Версия: 1.11

Отправка алертов в 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-бота

  1. В приложении Telegram открыть пользователя @BotFather.

  2. Выполнить команду:

    /newbot
  3. Указать:

    • отображаемое имя бота;
    • username бота (обязательно должен оканчиваться на bot).
  4. После создания бот вернет токен следующего формата:

    123456789:ABCDefGhIJKlmnoPQRstuvWxyZ
    warning

    Токен является чувствительными данными и должен храниться в защищенном виде!

3. Получение chat_id

Алерты могут направляться:

  • в личный чат,
  • в группу,
  • в канал.

3.1 Личный чат

  1. Найти созданного бота в Telegram.

  2. Нажать Start.

  3. Выполнить запрос:

    curl -s "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates"
  4. В ответе найти значение:

    message.chat.id

    Пример:

    {
    "result": [
    {
    "message": {
    "chat": {
    "id": 123456789,
    "type": "private"

    Значение id и является chat_id.

3.2 Группа

  1. Добавить бота в группу.

  2. Отправить любое сообщение в группе или упомянуть бота.

  3. Выполнить запрос:

    curl -s "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates"
  4. Извлечь message.chat.id.

    Для групп chat_id обычно имеет отрицательное значение (например, -100...).

    Если обновления не отображаются:

    • проверить настройки приватности бота через BotFather;
    • упомянуть бота в сообщении.

4. Настройка канала алертов (Webhook)

4.1 Создание адреса

  1. Перейти в раздел Алерты → Адреса.

  2. Нажать кнопку +Адрес.

  3. Заполнить параметры:

    • Тип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-чат.