TeleBotSupervisor – это система для надзора за работоспособностью ботов Telegram, инициализированных с помощью systemd на дистрибутивах Linux.
Принцип работы заключается в отправке боту команды /start и отслеживания ответа. Таким образом проверяется именно фактическая работа бота. Также поддерживается отправка сообщений об ошибках, логов journald и перезапуск юнита systemd.
- Скачать и распаковать последний релиз либо клонировать репозиторий.
- Убедиться в доступности на вашем устройстве Python версии 3.10 или новее.
- Открыть каталог со скриптом в консоли: можно воспользоваться командой
cdили встроенными возможностями файлового менеджера. - Создать виртуальное окружение Python.
python -m venv .venv- Активировать вирутальное окружение.
source .venv/bin/activate- Установить зависимости.
pip install -r requirements.txt- Создать файлы конфигурации ботов и зарегестрировать для них аккаунты.
- Активировать сервис командой
python main.py. - Для автоматического запуска рекомендуется провести инициализацию сервиса через systemd.
Для создания пустого файла конфигурации вашего бота выполните python main.py config {BOT_NAME}, где имя бота это его идентификатор в Telegram (например, @testbot).
По пути Configs/{BOT_NAME}.json будет создан файл следующего содержания.
{
"bot_token": "",
"systemd_unit": "",
"period": 60,
"timeout": 15,
"on_failure": {
"report_to": [],
"attach_logs": false,
"restart": false
}
}Отредактируйте его согласно вашим нуждам, используя пояснения ниже.
"bot_token": ""Сюда необходимо занести токен бота Telegram (можно получить у BotFather). От имени этого бота вам будут приходить отчёты об ошибках.
"systemd_unit": ""Название юнита systemd, отвечающего за работу бота.
"period": 60Период отправки команды /start в минутах.
Warning
Не рекомендуется задавать менее 10 минут, так как это может привести к кратковременной блокировке аккаунта за флуд боту.
"timeout": 15Время ожидания реакции бота на команду /start в секундах.
"report_to": []Список ID пользователей, которым нужно отправлять отчёты об остановке бота. ID можно получить Chat ID Bot, написав /start.
"attach_logs": falseУказывает, следует ли прикрепить к сообщению логи юнита из journald.
"restart": falseУказывает, требуется ли перезапускать юнит бота при отсутствии ответа. В случае перезапуска работоспособность бота проверяется ещё раз вне очереди, а результат прикрепляется к отчёту.
Copyright © DUB1401. 2025.