Инфраструктура¶
Руководство по развертыванию полной инфраструктуры Р13.Орбита с использованием Docker Compose.
Docker Compose Stack¶
Р13.Орбита предоставляет готовую инфраструктуру в docker_dev/docker-compose.yml.
Запуск инфраструктуры¶
Это запустит:
- PostgreSQL (метаданные Р13.Орбита) - порт 5433
- PostgreSQL (Keycloak) - порт 5432
- ClickHouse (аналитические данные) - порты 8123, 9000
- Redis (кэш, rate limiting) - порт 6379
- Keycloak (SSO аутентификация) - порт 8080
- Jaeger (distributed tracing) - порт 16686
- OTEL Collector (OpenTelemetry) - порты 4317, 4318
- Prometheus (метрики) - порт 9090
- Grafana (дашборды) - порт 3000
- Loki (логи) - порт 3100
- Promtail (сборщик логов) - -
Проверка статуса¶
Все сервисы должны быть в статусе Up.
Компоненты инфраструктуры¶
PostgreSQL (Метаданные)¶
Порт: 5433 База данных: orbita
Подключение:
Для Р13.Орбита в .env:
ClickHouse (Аналитические данные)¶
Порт HTTP: 8123 Порт Native: 9000
Проверка:
Для Р13.Орбита в .env:
Redis (Кэш)¶
Порт: 6379
Проверка:
Для Р13.Орбита в .env:
Keycloak (SSO)¶
Порт: 8080 Admin UI: http://localhost:8080 Credentials: admin / admin
Настройка realm:
- Войдите в админку: http://localhost:8080
- Создайте realm
orbita - Создайте client
orbita-api - Скопируйте client_secret
Для Р13.Орбита в .env:
AUTH_ENABLED=true
KEYCLOAK_SERVER_URL=http://localhost:8080
KEYCLOAK_REALM=orbita
KEYCLOAK_CLIENT_ID=orbita-api
KEYCLOAK_CLIENT_SECRET=your-secret-here
Jaeger (Трейсинг)¶
UI: http://localhost:16686
Просмотр распределенных трейсов запросов Р13.Орбита.
Для Р13.Орбита в .env:
Prometheus (Метрики)¶
UI: http://localhost:9090
Сбор метрик: количество запросов, латентность, использование токенов LLM.
Grafana (Дашборды)¶
UI: http://localhost:3000 Credentials: admin / admin
Визуализация метрик из Prometheus и логов из Loki.
Импорт дашбордов:
- Войдите в Grafana
- Import → Upload JSON
- Используйте дашборды из
docker_dev/grafana/dashboards/
Профили Docker Compose¶
Только инфраструктура (по умолчанию)¶
Запускает все сервисы кроме Р13.Орбита API (API запускается локально для разработки).
С Р13.Орбита API в Docker¶
Включает сервис orbita-api на порту 3001.
Volumes и персистентность¶
Данные сохраняются в Docker volumes:
orbita_postgres_data- БД метаданныхorbita_clickhouse_data- ClickHouse данныеorbita_redis_data- Redis персистентностьorbita_grafana_data- Grafana настройки
Удаление всех данных:
Мониторинг и алерты¶
Prometheus Metrics¶
Р13.Орбита экспортирует метрики:
llm_requests_total- количество запросов к LLMllm_tokens_used_total- использованные токеныsql_queries_total- SQL запросыapi_request_duration_seconds- латентность API
Просмотр в Prometheus:
http://localhost:9090/graph
Пример запроса:
Grafana Dashboards¶
Готовые дашборды в docker_dev/grafana/dashboards/:
- Р13.Орбита Overview - общая статистика
- LLM Usage - использование LLM
- Database Performance - производительность БД
- API Metrics - метрики API
Jaeger Traces¶
Просмотр трейсов выполнения запросов:
- Откройте http://localhost:16686
- Service → orbita-api
- Найдите операцию (например,
POST /api/query) - Просмотрите детали выполнения
Logs (Loki + Promtail)¶
Просмотр логов в Grafana¶
- Откройте Grafana → Explore
- Data source → Loki
- Query:
Фильтрация по уровню¶
Резервное копирование¶
ClickHouse¶
# Backup
docker exec clickhouse clickhouse-client --query "BACKUP DATABASE default TO Disk('backups', 'backup_$(date +%Y%m%d).zip')"
# Restore
docker exec clickhouse clickhouse-client --query "RESTORE DATABASE default FROM Disk('backups', 'backup_20240315.zip')"
PostgreSQL¶
# Backup
docker exec postgres-metadata pg_dump -U orbita_user orbita > backup.sql
# Restore
docker exec -i postgres-metadata psql -U orbita_user orbita < backup.sql
Production Development¶
Для production используйте:
- Kubernetes вместо Docker Compose
- Managed PostgreSQL (AWS RDS, Azure Database)
- ClickHouse Cluster (не standalone)
- Redis Cluster или Sentinel
- External LoadBalancer (Nginx, Traefik)
- Secrets management (Vault, AWS Secrets Manager)
Следующие шаги¶
- Решение проблем - диагностика инфраструктуры
- Руководство пользователя - начало работы