Оповещения в Telegram

Для пересылки оповещений, регистрируемых с помощью службы Monit, TING использует локальный ретранслятор - почтовый сервер Postfix, выступающий в роли почтового шлюза, который и будет переадресовывать сообщения в указанный Telegram-бот.

Если бот уже есть, то можно приступить сразу к шагу Получение идентификатора чата ChatID.

Создание нового бота в Telegram

Для создания нового бота, нужно найти в поиске в Telegram системного бота @BotFather и в окне для сообщений отправить команду /newbot.

Затем надо будет ввести:

  • name - название бота для отображения в контактах и чатах (любая текстовая строка с любым набором символов, в т.ч. эмодзи);

  • username - уникальное короткое имя бота для использования в поиске, упоминаниях, ссылках t.me. Состоит из 5-32 символов, не чувствительны к регистру, содержат только латинские символы, цифры и символ подчёркивания. username обязательно должно заканчиваться на bot, например: tetris_bot, TetrisBot.

Примечание

Значение username в отличие от name, нельзя будет позже поменять.

В результате будет сгенерировано сообщение об успешном создании бота, содержащее токен вида 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw, который необходим для авторизации и отправки запросов в Bot API. Токен надо хранить в надёжном месте, так как он может быть использован любым пользователем для управления данного бота.

Примечание

Если токен был утерян или утрачен к нему доступ, можно отправить команду /token для генерации нового, либо посмотреть его значение через меню в Telegram: Управление ботом ‣ Изменить настройки бота ‣ API Token.

Получение идентификатора чата ChatID

Для получения ChatID необходимо начать диалог с ботом с помощью команды /start.

Затем открыть в браузере ссылку https://api.telegram.org/botTOKEN/getUpdates (где вместо TOKEN надо подставить токен вашего бота) - страница вернёт ответ в формате JSON с объектом чата, который и содержит идентификатор (значение для элемента id) ChatID:

{"ok":true,"result":[{"update_id":131164910,
"message":{"message_id":1,"from":{"id":
3356520776,"is_bot":false,"first_name":"...","last_name":"...","username":"...",
"language_code":"ru","is_premium":...},"chat":{"id":
3356520776,"first_name":"...","last_name":"...","username":"...","type":"..."},
"date":1756300014,"text":"/start","entities":[{"offset":0,"length":6,"type":
"bot_command"}]}}]}

В данном примере, идентификатором является 3356520776.

Примечание

Для группового чата надо добавить своего бота в группу, отправить сообщение и получить идентификатор группового чата, как было описано ранее. Идентификаторы групповых чатов начинаются с символа «-», например -987654321.

Настройка Postfix

Для ретрансляции сообщений будет использоваться служба Postfix - установить её можно на странице Система ‣ Прошивка ‣ Плагины, плагин os-postfix.

После установки, на странице Службы ‣ Postfix ‣ Общие надо активировать службу: установить флажок для поля Включен и нажать кнопку Сохранить (остальные параметры можно оставить по умолчанию).

Настройка telegram-получателя для Postfix

Теперь надо установить плагин os-postfix-tg-relay, для добавления в Postfix возможности перенаправления в Telegram.

После установки плагина, перейдите на страницу Службы ‣ Postfix ‣ Telegram, нажмите + для добавления адреса бота получателя сообщений и введите необходимые параметры, например:

Включен

Установить флажок

Локальный адрес получателя [1]

tgbot

Описание

для тестирования

Токен Telegram

токен бота

Идентификатор чата Telegram (Chat ID)

идентификатор чата

Нажмите кнопку Сохранить, затем Применить.

Настройка получателя в Monit

Перейдите на страницу Службы ‣ Monit ‣ Настройки, вкладка Основные настройки. Укажите для поля Адрес почтового сервера адрес 127.0.0.1 (если его там не было) и установите флажок для поля Включен для активации службы.

На вкладке Настройка сообщений нажмите + для добавления получателя и укажите следующие данные:

Включить сообщения

Установить флажок

Получатель

tgbot@localhost.localdomain [2]

Нажмите Сохранить, затем Применить.

Теперь уведомления службы Monit начнут приходить в чат Telegram.

Проверка работы

Для проверки можно перезагрузить службу Monit - в чат должно прийти два сообщения, уведомляющие об останове и запуске службы:

../../_images/telegram-message.png