VMmanager

Отправка уведомлений в Telegram

Вы можете использовать мессенджер Telegram для получения уведомлений о состоянии виртуальных машин и узлов кластера. Для отправки уведомлений VMmanager использует Telegram-бота.

Чтобы настроить отправку уведомлений в Telegram:

  1. Создайте бота в Telegram.
  2. Подключите бота к VMmanager.
  3. Добавьте Telegram в качестве канала уведомлений.

Настройка на стороне Telegram

  1. Откройте диалог с ботом @BotFather.
  2. Отправьте команду /newbot.
  3. Введите название бота. Например, VMmanager Notifier.
  4. Введите имя пользователя для бота. Оно должно оканчиваться сочетанием "bot". Например, vmnotifybot.
  5. Сохраните значение токена из ответа.
  6. Добавьте бота в группу Telegram для отправки уведомлений. 

    Чтобы бот мог отправлять сообщения пользователю Telegram, пользователь должен открыть диалог с ботом и нажать Запустить.

Пример создания бота

Настройка на стороне VMmanager

Подключение бота

  1. Перейдите в МессенджерыПодключить мессенджер.
  2. Вставьте Токен Бота.
  3. Нажмите Активировать.
  4. Выберите нужные чаты для отправки уведомлений.
  5. Выберите Язык сообщений.
  6. Нажмите Сохранить.

Чтобы изменить настройки бота, нажмите значок → введите Токен БотаСохранить.

Чтобы удалить подключенного бота, нажмите значок Удалить ботаУдалить.

Пример подключения бота

Управление каналами

В разделе Мессенджеры вы можете управлять каналами, в которые бот будет отправлять сообщения. Каналами могут быть группы и отдельные пользователи Telegram.

Для добавления канала:

  1. Нажмите Добавить канал.
  2. Выберите Язык сообщений.
  3. Укажите произвольное Имя канала.
  4. Выберите канал из списка или Введите ID чата.
  5. Укажите произвольное Примечание для канала.
  6. Нажмите Добавить.

Чтобы изменить настройки канала, нажмите значок .

Чтобы включить/отключить отправку сообщений в канал, нажмите переключатель .

Чтобы удалить канал, нажмите .

Интерфейс раздела "Мессенджеры"

Добавление канала к уведомлению

Чтобы использовать Telegram в качестве канала уведомления:

  1. Перейдите в раздел "Центр уведомлений": Настройка уведомлений.
  2. Нажмите на название уведомления.
  3. Выберите каналы в поле В каналы мессенджеров.
  4. Нажмите Сохранить.

Подробнее об управлении уведомлениями см. в статье Уведомления.


Добавление канала уведомления

Настройка одновременной отправки уведомлений

По умолчанию VMmanager одновременно отправляет не более пяти уведомлений в Telegram. Чтобы изменить этот параметр:

  1. Подключитесь к серверу с VMmanager по SSH.
  2. Перейдите в контейнер msgsender: 

    docker exec -it msgsender bash
  3. Добавьте в секцию [program:msgs_writer] конфигурационного файла /etc/supervisord.conf.d/msgsender.conf параметр:

    environment=TELEGRAM_TASK_LIMIT=<number>
    Пояснения
    Не рекомендуем устанавливать значение параметра <number> выше 10. Это может привести к блокировке бота со стороны Telegram.
  4. Выполните команду: 

    supervisorctl update
  5. Выйдите из контейнера: 

    exit

Чтобы проверить работу одновременной отправки сообщений:

  1. Подключитесь к серверу с VMmanager по SSH.
  2. Подключитесь к базе данных платформы:

    В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:

    • VMmanager Hosting — MySQL;
    • VMmanager Infrastructure:
      • для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
      • в остальных случаях — MySQL.

    Чтобы определить тип СУБД, выполните на сервере с платформой команду: 

    docker ps --filter name=pgsql
    Пример ответа
    CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
    3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql

    Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.

     
    MySQL
    docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
    PostgreSQL
     docker exec -it pgsql bash -c "psql -d isp"
  3. Выполните запрос: 

    SELECT id, name, lock_tag from taskmgr_task WHERE name = 'msgsender_telegram_send' ORDER BY id desc LIMIT 10;

    Число в столбце 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"]  |
    +-------+-------------------------+--------------------------------+
  4. Выйдите из консоли БД: 

    \q


Может быть полезно
Связанные статьи: