Skip to content

kujifined/Telegram-Bot-Health-Checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

User-бот-Health-Checker Telegram-ботов

Система мониторинга Telegram-ботов, которая автоматически проверяет их доступность, отправляя команду /start и измеряя время отклика.

Возможности

  • 🔄 Автоматическая проверка списка ботов каждый час
  • ⚡ Измерение latency (время отклика)
  • 🔍 Двухэтапная проверка: сначала /start, затем дополнительные команды для выявления скрытых ошибок
  • 🚨 Алерты в Telegram при недоступности ботов
  • 📊 Логирование всех проверок
  • 🔧 Гибкая настройка через переменные окружения

Быстрый старт

1. Получение API ключей

  1. Перейдите на my.telegram.org
  2. Войдите в свой аккаунт Telegram
  3. Создайте новое приложение в разделе "API development tools"
  4. Сохраните API_ID и API_HASH

2. Настройка проекта

# Клонируйте репозиторий
git clone <your-repo>
cd Health-Checker

# Установите зависимости
pip install -r requirements.txt

# Создайте файл конфигурации
cp .env.example .env

3. Заполните .env файл

TG_API_ID=ваш_api_id
TG_API_HASH=ваш_api_hash
SESSION_NAME=hc_userbot
BOTS_FILE=bots.txt

# Опционально для алертов:
ALERT_TOKEN=токен_бота_для_алертов
ALERT_CHAT=id_чата_для_алертов

# Углубленная проверка (по умолчанию включена):
DEEP_CHECK=true  # или false для отключения

4. Настройте список ботов

Отредактируйте файл bots.txt, добавив ботов для мониторинга:

@YourBot1
@YourBot2
SomeBotWithoutAt

Использование

Одноразовая проверка

python -m pingbot.runner

Вывод:

[12:05:01] @ShopBot      OK 320 ms
[12:05:01] @WeatherBot  FAIL timeout
[12:05:01] @WidgetSupportBot OK 156 ms

Непрерывный мониторинг

# С интервалом 60 минут (по умолчанию)
python -m pingbot.scheduler

# С кастомным интервалом (в минутах)
python -m pingbot.scheduler 30

Через crontab

Добавьте в crontab для проверки каждый час:

crontab -e
0 * * * * cd /path/to/Health-Checker && /usr/bin/python3 -m pingbot.runner >> /var/log/ping.log 2>&1

Настройка алертов

Для получения уведомлений о недоступности ботов:

  1. Создайте бота через @BotFather
  2. Получите токен бота
  3. Добавьте бота в чат/канал и получите Chat ID
  4. Укажите ALERT_TOKEN и ALERT_CHAT в .env

Структура проекта

.
├── pingbot/
│   ├── __init__.py          # Версия пакета
│   ├── config.py            # Загрузка конфигурации
│   ├── models.py            # Модели данных
│   ├── pinger.py            # Логика проверки ботов
│   ├── runner.py            # Основной runner
│   └── scheduler.py         # Планировщик задач
├── bots.txt                 # Список ботов
├── .env.example             # Пример конфигурации
├── requirements.txt         # Зависимости
└── README.md               # Документация

Статусы проверки

  • OK - бот отвечает нормально
  • timeout - бот не ответил в течение 3 секунд
  • blocked - бот заблокировал пользователя
  • flood_wait - слишком частые запросы (Telegram ограничения)
  • service_error - бот ответил с ошибкой сервиса ("Произошла ошибка, попробуйте позже")
  • error - другая ошибка

Тестирование

pytest tests/

Требования

  • Python 3.8+
  • Telegram аккаунт для user-бота
  • API ключи Telegram

Лицензия

MIT License

🤖 Интерактивный Telegram бот для статистики

Новая функция: Telegram бот с кнопками для получения статистики!

Возможности бота:

🔍 Главное меню с кнопками:

  • 📊 Текущая статистика - общие данные мониторинга
  • 🔄 Запустить проверку - мгновенная проверка всех ботов
  • 📈 История проверок - последние 10 проверок
  • 🤖 Список ботов - статус всех отслеживаемых ботов

Команды бота:

  • /start - Главное меню с кнопками
  • /stats - Быстрая статистика
  • /check - Запуск проверки ботов

Запуск бота статистики:

# Запуск интерактивного бота
source venv/bin/activate && python -m pingbot.bot

# Для работы бота требуется ALERT_TOKEN в .env файле

Что показывает статистика:

  • 🕐 Время последней проверки
  • 📈 Общее количество проверок
  • Процент успешности
  • Средняя задержка ответа
  • 📊 Статус каждого бота с латентностью
  • 📈 История проверок с временными метками

Пример отчета:

📊 СТАТИСТИКА МОНИТОРИНГА

🕐 Последняя проверка: 2024-06-24 01:35:00
📈 Всего проверок: 15
✅ Успешность: 66.7%
⚡ Средняя задержка: 285ms

📊 Статус ботов:
✅ @BotFather - 292ms
✅ @userinfobot - 278ms  
❌ @SomeBot - timeout

Бот автоматически обновляет статистику при каждой проверке и сохраняет историю!

About

Automated Telegram bot health monitoring with detailed alerts and statistics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages