TWC Alert Bot — аддон для Kubernetes, который отправляет уведомления о событиях в кластере в Telegram, Discord или Slack. Он отслеживает рестарты подов, ошибки liveness
- и readiness
-проб, недоступность нод и другие потенциально критичные события. Дополнение поможет быстро реагировать на проблемы и поддерживать стабильность инфраструктуры.
Установка
Перейдите во вкладку «Дополнения» в панели управления кластером и нажмите на карточку аддона «TWC Alert Bot».
Обязательный параметр для работы уведомлений — clusterName
. Это произвольное имя кластера, которым будут подписываться уведомления. По умолчанию используется имя кластера.
Параметры для подключения Telegram, Slack или Discord описаны в разделе о настройке уведомлений.
Сами уведомления настраиваются в секции alerts:
в манифесте. Доступные варианты:
Параметр |
Описание |
|
Алерты по рестартам контейнеров в подах |
|
Алерты при создании и удалении подов |
|
Алерты при создании и удалении деплойментов |
|
Алерты при создании и удалении сервисов |
|
Алерты по зависшим или ошибочным подам ( |
|
Алерты по сбоям |
|
Алерты при переходе ноды в состояние |
|
Алерты по превышению порогов CPU/Memory на нодах |
|
Алерты по прочим Warning-событиям (например, |
После настройки нажмите «Установить».
Проверьте, что установка завершена корректно. Для этого выполните команду
kubectl get all -n twc-alert-bot
Вы увидите примерно такой вывод:
NAME READY STATUS RESTARTS AGE
pod/twc-alert-bot-7955f9c94b-j57w6 1/1 Running 0 19s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/twc-alert-bot 1/1 1 1 19s
NAME DESIRED CURRENT READY AGE
replicaset.apps/twc-alert-bot-7955f9c94b 1 1 1 19s
Настройка уведомлений
Чтобы получать уведомления от бота, подключите один или несколько мессенджеров.
Telegram
Чтобы бот отправлял уведомления в Telegram, укажите в конфигурации:
telegramEnabled: true
Обязательные параметры для работы уведомлений:
telegramBotToken
— токен, полученный с помощью бота @BotFather.telegramChatId
— ID чата или канала, в который будут отправляться уведомления.clusterName
— произвольное имя кластера, которым будут подписываться уведомления.
Получение токена
Токен необходим для управления ботом. Для создания бота перейдите к @BotFather. Создайте нового бота, отправив команду /newbot
. Затем укажите имя и юзернейм бота. После этого @BotFather пришлет токен нового бота.
Этот токен необходимо указать в конфигурации дополнения:
telegramBotToken: "8119738188:AAnjknsd788asd0kl2309s3pipa11239"
Добавьте созданного бота в группу или канал с правом на отправку сообщений.
Получение ID чата
Бот может взаимодействовать с пользователями в канале, группе или личном чате. Чтобы получить нужный chat_id
, выполните одно из следующих действий:
- Добавьте бота в группу
- Добавьте бота в канал в качестве администратора
- Откройте личный чат с ботом
После этого отправьте любое сообщение в соответствующий чат (группу, канал или личный).
Затем откройте в браузере ссылку:
https://api.telegram.org/bot<ТОКЕН_БОТА>/getUpdates
Вы увидите JSON с последними сообщениями, полученными ботом. Найдите блок chat.id
— он содержит нужный идентификатор:
- Для групп и каналов — значение будет отрицательным.
- Для личных чатов — положительным.
В конфигурации дополнения укажите полученный ID:
telegramChatId: "-1001236503122"
По умолчанию также включен параметр:
telegramSendTestMessage: true
Благодаря этому параметру бот сразу после установки попытается отправить тестовое сообщение. Если все подключено корректно, вы его увидите.
Slack
Создайте App. Перейдите на страницу создания App, нажмите кнопку «Create an App» и выберите пункт «From scratch». Укажите имя App и выберите воркспейс для подключения. Затем нажмите «Create App».
Сразу после создания вы будете перенаправлены на страницу настроек App. Перейдите в раздел «Incoming Webhooks», включите вебхуки и создайте новый, нажав кнопку «Add New Webhook».
В открывшемся окне выберите канал, в который приложение сможет отправлять сообщения. Затем нажмите «Allow».
После этого вы снова окажетесь на странице настроек, где теперь будет отображаться URL вебхука. Скопируйте его.
Вернитесь к конфигурации дополнения и найдите фрагмент:
webhooks: []
# - type: slack
# url: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
# - type: discord
# url: https://discord.com/api/webhooks/...
Удалите квадратные скобки и раскомментируйте строки, связанные со Slack. В поле url укажите URL вебхука, который вы получили ранее. В итоге конфигурация должна выглядеть так:
webhooks:
- type: slack
url: "https://hooks.slack.com/services/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Jz"
# - type: discord
# url: "https://discord.com/api/webhooks/..."
Discord
Создайте вебхук. Для этого перейдите в настройки канала, в который будут отправляться уведомления.
В открывшемся окне настроек перейдите в раздел «Интеграции» и нажмите кнопку «Создать вебхук».
Затем в появившемся окне снова нажмите «Создать вебхук». После этого разверните его настройки, нажав на созданный вебхук.
Скопируйте URL вебхука — он понадобится для настройки интеграции.
Вернитесь к конфигурации дополнения и найдите фрагмент:
webhooks: []
# - type: slack
# url: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
# - type: discord
# url: https://discord.com/api/webhooks/...
Удалите квадратные скобки и раскомментируйте строки, связанные с Discord. В поле url укажите скопированный ранее вебхук. Конфигурация должна выглядеть так:
webhooks:
# - type: slack
# url: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
- type: discord
url: "https://discord.com/api/webhooks/14178357700512334/Z97wSlcrpipanjsS5hsbonushUqD5bSg_WcSptOmckvOj0pBslEZrm8"