docs: Полная переработка документации проекта

- Удалена старая документация с эмодзи
- Создана новая техническая документация на русском языке
- Добавлены подробные руководства:
  * README.md - обзор проекта
  * docs/installation.md - установка и настройка
  * docs/configuration.md - конфигурация
  * docs/api.md - API документация
  * docs/management.md - управление проектом
  * docs/security.md - безопасность
  * docs/troubleshooting.md - устранение неполадок
- Обновлены конфигурационные файлы
- Улучшена структура проекта

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-08-18 22:03:27 +03:00
parent 749b40a494
commit 86a2c44333
17 changed files with 1156 additions and 1940 deletions

459
README.md
View File

@@ -1,459 +0,0 @@
# LogBoard+ - Веб-панель для просмотра логов микросервисов
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru
**Версия:** 1.0.0
## 📋 Описание
LogBoard+ - это современная веб-панель для просмотра логов Docker контейнеров в реальном времени. Приложение предоставляет удобный интерфейс для мониторинга логов микросервисов с поддержкой множественного просмотра, фильтрации, поиска и экспорта логов.
## ✨ Основные возможности
### 🔍 Просмотр логов
- **Single View режим** - просмотр логов одного контейнера
- **Multi View режим** - одновременный просмотр логов нескольких контейнеров
- **Real-time обновление** через WebSocket соединения
- **AJAX обновление** - периодическое получение новых логов без WebSocket
- **Умное управление кнопками** - кнопка refresh скрывается при включенном AJAX autoupdate, кнопка update показывает состояние
- **Автопрокрутка** логов
- **Пауза/возобновление** потока логов
### 🎨 Интерфейс
- **Современный адаптивный дизайн**
- **Темная и светлая темы**
- **Мобильная версия**
- **Интуитивно понятная навигация**
### 🔧 Управление логами
- **Фильтрация по уровням логирования** (DEBUG, INFO, WARN, ERROR, OTHER)
- **Поиск по регулярным выражениям**
- **Настройка количества строк** (Tail Lines)
- **Перенос строк** (Word Wrap)
- **Счетчики логов** по уровням
### 📊 Статистика и мониторинг
- **Счетчики логов** в реальном времени
- **Статистика по уровням логирования**
- **Мониторинг состояния контейнеров**
- **Health check статусы**
### 💾 Экспорт и сохранение
- **Скачивание логов** в формате .log
- **Отдельные файлы** для каждого контейнера в Multi View режиме
- **Автоматическое именование файлов** с временными метками
- **Сохранение снимков** логов
### 🔐 Безопасность
- **JWT аутентификация**
- **Настраиваемые пользователи**
- **Защищенные API endpoints**
- **Шифрование чувствительных данных**
## 🚀 Быстрый старт
### Предварительные требования
- Docker и Docker Compose
- Python 3.8+
- Доступ к Docker socket
### Установка и запуск
1. **Клонирование репозитория**
```bash
git clone <repository-url>
cd logboard
```
2. **Настройка переменных окружения**
```bash
make setup
# Отредактируйте .env файл под свои нужды
```
3. **Генерация docker-compose.yml**
```bash
make generate
```
4. **Запуск приложения**
```bash
make up
```
5. **Открытие в браузере**
```
http://localhost:9001
```
### Команды управления
```bash
make help # Показать справку по командам
make setup # Настроить переменные окружения
make generate # Сгенерировать docker-compose.yml
make build # Собрать Docker образ
make up # Запустить сервисы
make down # Остановить сервисы
make restart # Перезапустить сервисы
make logs # Показать логи
make status # Показать статус сервисов
make shell # Подключиться к контейнеру
make clean # Очистить проект
```
## ⚙️ Конфигурация
### Основные настройки (.env)
```bash
# Основные настройки приложения
LOGBOARD_PORT=9001 # Порт приложения
LOGBOARD_TAIL=500 # Количество строк логов по умолчанию
LOGBOARD_USER=admin # Имя пользователя
LOGBOARD_PASS=s3cret-change-me # Пароль
# Директория для снимков логов
LOGBOARD_SNAPSHOT_DIR=/app/snapshots
# Фильтр по проекту Docker Compose
COMPOSE_PROJECT_NAME=myproj
# Настройки множественных проектов
LOGBOARD_PROJECTS=project1,project2,project3
# Настройки безопасности
SECRET_KEY=your-secret-key-here
ENCRYPTION_KEY=your-encryption-key-here
# Настройки производительности
MAX_CONNECTIONS=100
CONNECTION_TIMEOUT=30
READ_TIMEOUT=60
# Настройки аутентификации
AUTH_ENABLED=true
AUTH_METHOD=jwt
SESSION_TIMEOUT=3600
```
### Docker сети
Приложение поддерживает подключение к внешним Docker сетям:
```yaml
networks:
- default: {}
- iaas:
external: true
- infrastructure_iaas:
external: true
```
## 🔌 API Endpoints
### Аутентификация
- `POST /api/auth/login` - Вход в систему
- `POST /api/auth/logout` - Выход из системы
- `GET /api/auth/me` - Информация о текущем пользователе
### Сервисы и контейнеры
- `GET /api/services` - Список всех сервисов/контейнеров
- `GET /api/projects` - Список проектов Docker Compose
- `GET /api/logs/stats/{container_id}` - Статистика логов контейнера
### Управление исключениями
- `GET /api/excluded-containers` - Список исключенных контейнеров
- `POST /api/excluded-containers` - Добавить контейнер в исключения
### Снимки логов
- `POST /api/snapshot` - Создать снимок логов
### WebSocket endpoints
- `WS /ws/logs/{container_id}` - Поток логов контейнера
- `WS /ws/fan/{service_name}` - Агрегированный поток логов сервиса
- `WS /ws/fan_group` - Групповой поток логов
### Системные
- `GET /healthz` - Проверка здоровья приложения
- `GET /` - Главная страница
- `GET /login` - Страница входа
## 🎯 Режимы просмотра
### Single View режим
- Просмотр логов одного выбранного контейнера
- Полноэкранный режим отображения
- Детальная статистика по уровням логирования
- Возможность паузы и возобновления потока
### Multi View режим
- Одновременный просмотр логов нескольких контейнеров
- Адаптивная сетка (1-4 колонки в зависимости от количества контейнеров)
- Отдельные счетчики для каждого контейнера
- Возможность скачивания отдельных файлов логов для каждого контейнера
## 🔍 Фильтрация и поиск
### Уровни логирования
- **DEBUG** - Отладочная информация
- **INFO** - Информационные сообщения
- **WARN** - Предупреждения
- **ERROR** - Ошибки
- **OTHER** - Прочие сообщения
### Поиск
- **Регулярные выражения** для поиска в логах
- **Фильтрация в реальном времени**
- **Подсветка найденных совпадений**
### Настройки отображения
- **Tail Lines** - количество отображаемых строк
- **Word Wrap** - перенос длинных строк
- **Автопрокрутка** - автоматическая прокрутка к новым логам
## ⌨️ Горячие клавиши
### Навигация по контейнерам
- **`[`** или **`Ctrl + ←`** - Переключение к предыдущему контейнеру
- **`]`** или **`Ctrl + →`** - Переключение к следующему контейнеру
### Тема оформления
- **`Ctrl + T`** - Переключение между темной и светлой темой
### Формы и ввод
- **`Enter`** - В форме входа: отправка формы авторизации
- **`Enter`** - В поле добавления исключений: добавление контейнера в исключения
### Условия работы горячих клавиш
- Горячие клавиши работают только когда фокус не находится в полях ввода
- Навигация по контейнерам работает только в Single View режиме
- Переключение темы работает на всех страницах приложения
## 📱 Мобильная версия
Приложение полностью адаптивно и поддерживает:
- **Адаптивный дизайн** для мобильных устройств
- **Сенсорное управление**
- **Оптимизированный интерфейс** для маленьких экранов
- **Боковое меню** для мобильных устройств
## 🔧 Расширенные возможности
### Управление проектами
- **Множественные проекты** Docker Compose
- **Фильтрация по проектам**
- **Переключение между проектами**
### Исключения контейнеров
- **Добавление контейнеров в исключения**
- **Постоянное хранение исключений**
- **Управление через веб-интерфейс**
### Мониторинг состояния
- **Health check статусы** контейнеров
- **Фильтрация нездоровых контейнеров**
- **Автоматическое обновление статусов**
### Производительность
- **Ограничение количества соединений**
- **Таймауты для операций**
- **Оптимизированная обработка логов**
- **Кэширование данных**
## 🛠️ Разработка
### Структура проекта
```
logboard/
├── app.py # Основное приложение FastAPI
├── docker-compose.yml # Конфигурация Docker Compose
├── Dockerfile # Docker образ
├── requirements.txt # Зависимости Python
├── templates/ # HTML шаблоны
│ ├── index.html # Главная страница
│ ├── login.html # Страница входа
│ └── error.html # Страницы ошибок
├── scripts/ # Вспомогательные скрипты
│ └── generate-compose.py
├── snapshots/ # Директория для снимков логов
├── Makefile # Команды управления
├── env.example # Пример переменных окружения
└── README.md # Документация
```
### Технологии
- **Backend**: FastAPI, Python 3.8+
- **Frontend**: HTML5, CSS3, JavaScript (ES6+)
- **WebSocket**: Асинхронные соединения для real-time логов
- **Docker**: Интеграция с Docker API
- **JWT**: Аутентификация и авторизация
- **Docker Compose**: Управление контейнерами
### Разработка и отладка
```bash
# Запуск в режиме разработки
make dev
# Подключение к контейнеру
make shell
# Просмотр логов
make logs
# Пересборка
make rebuild
```
## 🔒 Безопасность
### Аутентификация
- **JWT токены** для сессий
- **Настраиваемые пользователи** через переменные окружения
- **Автоматический выход** по истечении сессии
- **Защищенные API endpoints**
### Шифрование
- **Шифрование чувствительных данных** с помощью Fernet
- **Безопасное хранение** токенов и паролей
- **Защищенные переменные окружения**
### Сетевая безопасность
- **HTTPS поддержка** (при настройке)
- **Валидация входных данных**
- **Защита от XSS и CSRF атак**
## 📊 Мониторинг и логирование
### Логирование приложения
- **Настраиваемые уровни логирования** (DEBUG, INFO, WARN, ERROR)
- **JSON формат** логов
- **Структурированное логирование**
### Метрики
- **Количество активных соединений**
- **Статистика WebSocket соединений**
- **Время отклика API**
- **Использование ресурсов**
### Health checks
- **Проверка состояния** приложения
- **Мониторинг Docker соединения**
- **Проверка доступности** зависимостей
## 🚀 Развертывание
### Продакшн настройки
1. **Настройка безопасности**
```bash
# Измените секретные ключи
SECRET_KEY=your-production-secret-key
ENCRYPTION_KEY=your-production-encryption-key
# Настройте пользователей
LOGBOARD_USER=your-admin-user
LOGBOARD_PASS=your-secure-password
```
2. **Настройка сети**
```bash
# Настройте внешние сети
DOCKER_NETWORKS=your-network1,your-network2
```
3. **Настройка производительности**
```bash
# Увеличьте лимиты для продакшна
MAX_CONNECTIONS=500
CONNECTION_TIMEOUT=60
READ_TIMEOUT=120
```
### Docker Swarm
```yaml
version: '3.8'
services:
logboard:
image: logboard:latest
deploy:
replicas: 2
resources:
limits:
memory: 512M
reservations:
memory: 256M
networks:
- logboard-network
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- logboard-snapshots:/app/snapshots
```
### Kubernetes
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: logboard
spec:
replicas: 2
selector:
matchLabels:
app: logboard
template:
metadata:
labels:
app: logboard
spec:
containers:
- name: logboard
image: logboard:latest
ports:
- containerPort: 9001
volumeMounts:
- name: docker-sock
mountPath: /var/run/docker.sock
- name: snapshots
mountPath: /app/snapshots
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: snapshots
persistentVolumeClaim:
claimName: logboard-snapshots
```
## 🤝 Поддержка и обратная связь
### Автор
- **Сергей Антропов**
- **Сайт**: https://devops.org.ru
- **Email**: [contact@devops.org.ru]
### Сообщество
- **Issues**: Сообщайте о багах и предлагайте улучшения
- **Pull Requests**: Приветствуются вклады в развитие проекта
- **Документация**: Помогите улучшить документацию
### Лицензия
Проект распространяется под лицензией MIT.
## 📝 Changelog
### v1.0.0 (2024-12-17)
- ✨ Первый релиз LogBoard+
- 🔍 Поддержка Single View и Multi View режимов
- 🔐 JWT аутентификация
- 📱 Адаптивный дизайн
- 🔧 Полная интеграция с Docker API
- 📊 Статистика и мониторинг логов
- 💾 Экспорт логов в файлы
- 🎨 Темная и светлая темы
---
**LogBoard+** - современное решение для мониторинга логов микросервисов в Docker среде.