Initial commit: Add infrastructure and bot project

This commit is contained in:
2025-08-31 17:55:55 +03:00
commit 7378179d98
21 changed files with 3139 additions and 0 deletions

133
README.md Normal file
View File

@@ -0,0 +1,133 @@
# Production Environment
Проект для управления ботами и мониторинга инфраструктуры.
## Структура проекта
```
prod/
├── bots/ # Боты и их конфигурации
├── infra/ # Инфраструктура
│ ├── grafana/ # Дашборды Grafana
│ ├── monitoring/ # Модуль мониторинга сервера
│ └── prometheus/ # Конфигурация Prometheus
├── scripts/ # Скрипты развертывания
├── docker-compose.yml # Docker Compose конфигурация
├── env.template # Шаблон переменных окружения
└── README.md # Этот файл
```
## 🚀 Быстрый запуск
### 1. Настройка переменных окружения
Скопируйте шаблон и настройте переменные:
```bash
cp env.template .env
```
Отредактируйте `.env` файл, добавив реальные значения:
```env
# Telegram Bot Configuration
TELEGRAM_MONITORING_BOT_TOKEN=your_bot_token_here
GROUP_MONITORING_FOR_LOGS=your_telegram_group_id_here
IMPORTANT_MONITORING_LOGS=your_important_logs_channel_id_here
# Monitoring Configuration
THRESHOLD=80.0
RECOVERY_THRESHOLD=75.0
# Prometheus Configuration
PROMETHEUS_RETENTION_DAYS=30
# Grafana Configuration
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=admin
```
### 2. Запуск всех сервисов
```bash
docker-compose up -d
```
### 3. Проверка статуса
```bash
docker-compose ps
```
## 📊 Сервисы
- **Prometheus** (порт 9090) - сбор метрик
- **Grafana** (порт 3000) - дашборды
- **Server Monitor** - мониторинг системы + Telegram уведомления
## 🌐 Доступные адреса
| Сервис | Адрес | Описание |
|--------|-------|----------|
| **Grafana** | http://localhost:3000 | Дашборды мониторинга (admin/admin) |
| **Prometheus** | http://localhost:9090 | API метрик и веб-интерфейс |
| **Метрики сервера** | http://localhost:9091/metrics | Endpoint для Prometheus |
| **Health check** | http://localhost:9091/health | Проверка состояния мониторинга |
## 🔧 Модуль мониторинга
Модуль автоматически:
- Собирает метрики CPU, RAM, диска каждые 30 секунд
- Отправляет статусы каждые 30 минут в Telegram
- Отправляет алерты при превышении пороговых значений
- Интегрирован с Prometheus/Grafana
### 📈 Собираемые метрики
- **CPU**: использование, load average (1m, 5m, 15m)
- **RAM**: использование оперативной памяти
- **Disk**: использование диска, I/O активность
- **Swap**: использование swap
- **System**: uptime системы и мониторинга
## 📝 Логи
```bash
# Все сервисы
docker-compose logs
# Только мониторинг
docker-compose logs -f server_monitor
# Prometheus
docker logs bots_prometheus
# Grafana
docker logs bots_grafana
```
## 🔍 Проверка статуса
### Автоматическая проверка
```bash
cd infra/monitoring
python3 check_grafana.py
```
### Ручная проверка
```bash
# Проверка метрик
curl http://localhost:9091/metrics
# Проверка Prometheus targets
curl http://localhost:9090/api/v1/targets
# Проверка Grafana
curl http://localhost:3000/api/health
```
## 🛑 Остановка
```bash
docker-compose down
```