Download PDF
Download page Отправка уведомлений в Telegram.
Отправка уведомлений в Telegram
Вы можете использовать мессенджер Telegram для получения уведомлений о состоянии инфраструктуры. Для отправки уведомлений платформа использует Telegram-бота.
Бот — это приложение, которое может отправлять сообщения в общий чат или лично пользователю Telegram. Платформа взаимодействует с ботами через API Telegram. Для авторизации используется уникальный токен бота. При настройке уведомлений вы сможете выбрать чаты, в которые бот будет отправлять сообщения.
Чтобы настроить отправку уведомлений в Telegram:
- Создайте бота в Telegram.
- Подключите бота к платформе.
- Добавьте Telegram в качестве канала уведомлений.
Настройка на стороне Telegram
- Откройте диалог с ботом @BotFather.
- Отправьте команду /newbot.
- Введите название бота. Например, Notify Me.
- Введите уникальное имя пользователя для бота. Оно должно оканчиваться сочетанием "bot". Например, notifyme876bot.
- Сохраните значение токена из ответа.
Чтобы бот мог отправлять сообщения в группу Telegram:
Добавьте бота в группу.
- Введите любую команду в чате группы. Например, /start.
- Чтобы бот мог отправлять сообщения пользователю Telegram, пользователь должен открыть диалог с ботом и нажать Запустить.
Настройка на стороне платформы
Подключение бота
- В правом меню нажмите значок → вкладка Мессенджеры → кнопка Подключить мессенджер.
- Вставьте Токен Бота.
- Нажмите кнопку Активировать.
- Выберите нужные чаты для отправки уведомлений.
- Выберите Язык сообщений.
- Нажмите кнопку Сохранить.
Чтобы изменить настройки подключения к боту, нажмите значок рядом с надписью Чаты мессенджеров → введите Токен Бота → кнопка Сохранить.
Чтобы удалить настройки подключения к боту, нажмите значок рядом с надписью Чаты мессенджеров → кнопка Удалить бота.
Управление чатами
Чтобы управлять чатами, в которые бот отправляет сообщения, в правом меню нажмите значок → раздел Мессенджеры. Чатами могут быть группы и отдельные пользователи Telegram.
Перед добавлением чата добавьте в него бота и отправьте ему любую команду. Например, /start.
Чтобы добавить чат:
- Нажмите кнопку Добавить чат.
- Выберите Язык сообщений.
- Укажите произвольное Имя чата.
- Выберите чат из списка или Введите ID чата.
- Укажите произвольное Примечание для чата.
- Нажмите кнопку Добавить. Если чат добавлен успешно, в него должно поступить тестовое сообщение от бота.
Чтобы изменить настройки чата, нажмите значок в строке с чатом.
Чтобы включить или отключить отправку сообщений в чат, нажмите переключатель в строке с чатом.
Чтобы удалить чат, нажмите значок в строке с чатом.
Настройка уведомлений
Чтобы использовать Telegram в качестве канала уведомления:
- Перейдите в раздел Центр уведомлений. Для этого в правом меню нажмите значок → Настройка уведомлений.
- Нажмите на название уведомления.
- Выберите чаты Теlegram в поле В каналы мессенджеров.
- Нажмите кнопку Сохранить.
Особенности работы с супергруппами Telegram
В некоторых случаях Telegram может изменить статус вашей группы на супергруппу. Например, если группа стала публичной или в ней более 200 участников. При изменении статуса группы её id изменится, и уведомления не будут отправляться. Чтобы возобновить отправку уведомлений, укажите новый id в настройках чата.
Вы можете узнать id супергруппы с помощью бота @getmyid_bot.
Если супергруппа использует несколько тем, уведомления будут приходить только в главный чат.
Настройка одновременной отправки уведомлений
По умолчанию платформа одновременно отправляет не более пяти уведомлений в Telegram. Чтобы изменить этот параметр:
- Подключитесь к серверу с платформой по SSH.
Перейдите в контейнер с сервисом отправки сообщений:
Команда для VMmanager 6
docker exec -it msgsender bash
BASHКоманда для DCImanager 6
docker exec -it dci_msgsender_1 bash
BASHДобавьте в секцию [program:msgs_writer] конфигурационного файла /etc/supervisord.conf.d/msgsender.conf параметр:
environment=TELEGRAM_TASK_LIMIT=<number>
CODE<number> — число одновременно отправляемых уведомлений
Не рекомендуем устанавливать значение параметра <number> выше 10. Это может привести к блокировке бота со стороны Telegram.
Выполните команду:
supervisorctl update
BASHВыйдите из контейнера:
exit
BASH
Чтобы проверить работу одновременной отправки сообщений:
- Подключитесь к серверу с платформой по SSH.
Подключитесь к базе данных платформы:
В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:
- VMmanager Hosting — MySQL;
- VMmanager Infrastructure:
- для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
- в остальных случаях — MySQL.
Чтобы определить тип СУБД, выполните на сервере с платформой команду:
docker ps --filter name=pgsql
BASHПример ответа
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3213c5dc94d0 postgres:12 "docker-entrypoint.s…" 5 days ago Up 4 days 5432/tcp pgsql
CODEЕсли вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.
Команда для VMmanager 6 c СУБД MySQL
docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
BASHКоманда для VMmanager 6 c СУБД PostgreSQL
docker exec -it pgsql bash -c "psql -d isp"
BASHКоманда для DCImanager 6
docker exec -it mysql bash -c "mysql auth -p\$MYSQL_ROOT_PASSWORD"
BASHВыполните запрос:
SELECT id, name, lock_tag from taskmgr_task WHERE name = 'msgsender_telegram_send' ORDER BY id desc LIMIT 10;
SQLЧисло в столбце lock_tag показывает номер сообщения в очереди.
Пример ответа
+-------+-------------------------+--------------------------------+ | id | name | lock_tag | +-------+-------------------------+--------------------------------+ | 11493 | msgsender_telegram_send | ["msgsender_telegram_send.6"] | | 11492 | msgsender_telegram_send | ["msgsender_telegram_send.5"] | | 11485 | msgsender_telegram_send | ["msgsender_telegram_send.4"] | | 11484 | msgsender_telegram_send | ["msgsender_telegram_send.3"] | | 11483 | msgsender_telegram_send | ["msgsender_telegram_send.2"] | | 11482 | msgsender_telegram_send | ["msgsender_telegram_send.1"] | | 11481 | msgsender_telegram_send | ["msgsender_telegram_send.7"] | | 11480 | msgsender_telegram_send | ["msgsender_telegram_send.10"] | | 11479 | msgsender_telegram_send | ["msgsender_telegram_send.9"] | | 11478 | msgsender_telegram_send | ["msgsender_telegram_send.8"] | +-------+-------------------------+--------------------------------+
CODEВыйдите из консоли БД:
\q
BASH
Может быть полезно
Связанные статьи: