- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
4.2 KiB
4.2 KiB
Настройка ботов
Создание бота в Telegram
-
Создание бота через BotFather:
- Откройте Telegram и найдите бота @BotFather
- Отправьте команду
/newbot - Следуйте инструкциям BotFather:
- Введите имя бота (например, "My Monitoring Bot")
- Введите username бота (должен заканчиваться на
bot, например, "my_monitoring_bot")
- BotFather предоставит вам токен бота (например,
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
-
Настройка бота:
- Сохраните токен бота в переменную окружения
TELEGRAM_BOT_TOKEN - Добавьте бота в группу Telegram, куда нужно отправлять сообщения
- Сделайте бота администратором группы (опционально, но рекомендуется для полной функциональности)
- Сохраните токен бота в переменную окружения
-
Получение Chat ID группы:
- Добавьте бота @userinfobot в группу
- Отправьте любое сообщение в группе
- @userinfobot покажет Chat ID группы (например,
-1001234567890) - Сохраните Chat ID в конфигурацию групп (
config/groups.json)
-
Получение Thread ID (для тредов):
- Создайте тред в группе Telegram
- Используйте бота @userinfobot или API Telegram для получения Thread ID
- Thread ID можно получить через API Telegram:
getUpdatesилиgetChat
Пример конфигурации для Telegram:
{
"monitoring": {
"messenger": "telegram",
"chat_id": -1001234567890,
"thread_id": 0,
"config": {}
}
}
Создание бота в MAX/VK
-
Создание приложения в VK:
- Перейдите на VK Developers
- Создайте новое приложение:
- Нажмите "Создать приложение"
- Выберите тип приложения: "Веб-сайт" или "Standalone"
- Введите название приложения
- Подтвердите создание
-
Получение Access Token:
- В настройках приложения найдите раздел "Токены"
- Создайте новый токен:
- Выберите права доступа (scope):
messages- для отправки сообщенийphotos- для отправки фотографийdocs- для отправки документов
- Скопируйте полученный токен
- Выберите права доступа (scope):
- Сохраните токен в переменную окружения
MAX_ACCESS_TOKEN
-
Получение Peer ID (ID чата):
- Peer ID можно получить через API VK:
messages.getConversations - Для группы: Peer ID =
2000000000 + group_id - Для беседы: Peer ID можно получить через
messages.getChat
- Peer ID можно получить через API VK:
-
Настройка приложения:
- Установите переменные окружения:
MAX_ACCESS_TOKEN- токен доступаMAX_API_VERSION- версия API (по умолчанию5.131)MAX_ENABLED=true- включить поддержку MAX/VK
- Установите переменные окружения:
Пример конфигурации для MAX/VK:
{
"max_alerts": {
"messenger": "max",
"chat_id": "123456789",
"thread_id": null,
"config": {
"access_token": "your_access_token_here",
"api_version": "5.131"
}
}
}
Примечания:
- MAX/VK не поддерживает треды (thread_id всегда
null) - Peer ID может быть как числом, так и строкой
- Для работы с группами VK требуется, чтобы бот был добавлен в группу и имел права администратора