- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
92 lines
4.2 KiB
Markdown
92 lines
4.2 KiB
Markdown
# Настройка ботов
|
||
|
||
## Создание бота в Telegram
|
||
|
||
1. **Создание бота через BotFather:**
|
||
- Откройте Telegram и найдите бота [@BotFather](https://t.me/BotFather)
|
||
- Отправьте команду `/newbot`
|
||
- Следуйте инструкциям BotFather:
|
||
- Введите имя бота (например, "My Monitoring Bot")
|
||
- Введите username бота (должен заканчиваться на `bot`, например, "my_monitoring_bot")
|
||
- BotFather предоставит вам **токен бота** (например, `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`)
|
||
|
||
2. **Настройка бота:**
|
||
- Сохраните токен бота в переменную окружения `TELEGRAM_BOT_TOKEN`
|
||
- Добавьте бота в группу Telegram, куда нужно отправлять сообщения
|
||
- Сделайте бота администратором группы (опционально, но рекомендуется для полной функциональности)
|
||
|
||
3. **Получение Chat ID группы:**
|
||
- Добавьте бота [@userinfobot](https://t.me/userinfobot) в группу
|
||
- Отправьте любое сообщение в группе
|
||
- @userinfobot покажет Chat ID группы (например, `-1001234567890`)
|
||
- Сохраните Chat ID в конфигурацию групп (`config/groups.json`)
|
||
|
||
4. **Получение Thread ID (для тредов):**
|
||
- Создайте тред в группе Telegram
|
||
- Используйте бота [@userinfobot](https://t.me/userinfobot) или API Telegram для получения Thread ID
|
||
- Thread ID можно получить через API Telegram: `getUpdates` или `getChat`
|
||
|
||
**Пример конфигурации для Telegram:**
|
||
```json
|
||
{
|
||
"monitoring": {
|
||
"messenger": "telegram",
|
||
"chat_id": -1001234567890,
|
||
"thread_id": 0,
|
||
"config": {}
|
||
}
|
||
}
|
||
```
|
||
|
||
## Создание бота в MAX/VK
|
||
|
||
1. **Создание приложения в VK:**
|
||
- Перейдите на [VK Developers](https://dev.vk.com/)
|
||
- Создайте новое приложение:
|
||
- Нажмите "Создать приложение"
|
||
- Выберите тип приложения: "Веб-сайт" или "Standalone"
|
||
- Введите название приложения
|
||
- Подтвердите создание
|
||
|
||
2. **Получение Access Token:**
|
||
- В настройках приложения найдите раздел "Токены"
|
||
- Создайте новый токен:
|
||
- Выберите права доступа (scope):
|
||
- `messages` - для отправки сообщений
|
||
- `photos` - для отправки фотографий
|
||
- `docs` - для отправки документов
|
||
- Скопируйте полученный токен
|
||
- Сохраните токен в переменную окружения `MAX_ACCESS_TOKEN`
|
||
|
||
3. **Получение Peer ID (ID чата):**
|
||
- Peer ID можно получить через API VK: `messages.getConversations`
|
||
- Для группы: Peer ID = `2000000000 + group_id`
|
||
- Для беседы: Peer ID можно получить через `messages.getChat`
|
||
|
||
4. **Настройка приложения:**
|
||
- Установите переменные окружения:
|
||
- `MAX_ACCESS_TOKEN` - токен доступа
|
||
- `MAX_API_VERSION` - версия API (по умолчанию `5.131`)
|
||
- `MAX_ENABLED=true` - включить поддержку MAX/VK
|
||
|
||
**Пример конфигурации для MAX/VK:**
|
||
```json
|
||
{
|
||
"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 требуется, чтобы бот был добавлен в группу и имел права администратора
|
||
|