- Обновлен заголовок проекта в README.md - Обновлено описание проекта - Обновлен Makefile с новым названием - Обновлены переменные окружения - Обновлена документация по удаленным клиентам - Обновлены заголовки и описания веб-интерфейса Автор: Сергей Антропов Сайт: https://devops.org.ru
194 lines
8.0 KiB
Markdown
194 lines
8.0 KiB
Markdown
# 🌐 Удаленные клиенты LogBoard+ Server
|
||
|
||
## Обзор
|
||
|
||
LogBoard+ Server поддерживает сбор логов с удаленных серверов через специальные клиенты. Это позволяет централизованно мониторить логи контейнеров с нескольких машин.
|
||
|
||
## Архитектура
|
||
|
||
```
|
||
┌─────────────────┐ HTTP API ┌─────────────────┐
|
||
│ Удаленный │ ──────────────► │ LogBoard+ │
|
||
│ сервер │ │ Сервер │
|
||
│ │ │ │
|
||
│ ┌─────────────┐ │ │ ┌─────────────┐ │
|
||
│ │ Клиент │ │ │ │ Web UI │ │
|
||
│ │ LogBoard+ │ │ │ │ │ │
|
||
│ └─────────────┘ │ │ └─────────────┘ │
|
||
└─────────────────┘ └─────────────────┘
|
||
```
|
||
|
||
## Компоненты
|
||
|
||
### 1. Серверная часть (LogBoard+ Server)
|
||
|
||
- **API эндпоинты**: Прием логов от удаленных клиентов
|
||
- **Хранение логов**: Сохранение в файловой системе
|
||
- **Web интерфейс**: Отображение локальных и удаленных контейнеров
|
||
- **Визуальное разделение**: Четкое различие между локальными и удаленными контейнерами
|
||
|
||
### 2. Клиентская часть (LogBoard+ Client)
|
||
|
||
- **Сбор логов**: Чтение логов Docker контейнеров
|
||
- **Отправка данных**: HTTP POST запросы на сервер
|
||
- **Автоматизация**: Docker Compose для простого развертывания
|
||
|
||
## Установка и настройка
|
||
|
||
### На сервере LogBoard+ Server
|
||
|
||
1. Убедитесь, что сервер LogBoard+ Server запущен и доступен
|
||
2. Получите API ключ для аутентификации клиентов
|
||
|
||
### На удаленном сервере
|
||
|
||
1. Клонируйте репозиторий клиента:
|
||
```bash
|
||
git clone ssh://git@git.antropoff.ru:222/PetProject/logboard-client.git
|
||
cd logboard-client
|
||
```
|
||
|
||
2. Настройте переменные окружения:
|
||
```bash
|
||
cp .env.example .env
|
||
# Отредактируйте .env файл
|
||
```
|
||
|
||
3. Запустите клиент:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
Подробная документация по установке и настройке клиента доступна в репозитории: [LogBoard+ Client](ssh://git@git.antropoff.ru:222/PetProject/logboard-client.git)
|
||
|
||
## Использование
|
||
|
||
### Web интерфейс
|
||
|
||
После настройки клиентов, в веб-интерфейсе LogBoard+ вы увидите:
|
||
|
||
#### 📍 Локальные контейнеры
|
||
- Контейнеры с текущего сервера
|
||
- Обычное отображение без дополнительных индикаторов
|
||
|
||
#### 🌐 Удаленные контейнеры
|
||
- Контейнеры с удаленных серверов
|
||
- Визуальное разделение по хостам
|
||
- Индикаторы удаленного доступа (глобус 🌐)
|
||
- Время последнего обновления
|
||
- Статистика по хостам
|
||
|
||
### Функции интерфейса
|
||
|
||
#### 🔽 Сворачивание секций
|
||
- **Секции контейнеров**: Можно сворачивать/разворачивать секции "Локальные контейнеры" и "Удаленные контейнеры"
|
||
- **Секции хостов**: Каждый хост в удаленных контейнерах можно сворачивать отдельно
|
||
- **Кнопки управления**: Стрелки для сворачивания/разворачивания
|
||
- **Сохранение состояния**: Состояние сворачивания сохраняется между сессиями
|
||
|
||
#### ⚡ Периодическое обновление
|
||
- **Автоматическое обновление**: Список контейнеров обновляется каждые 30 секунд
|
||
- **Фильтрация остановленных**: Остановленные контейнеры автоматически скрываются из интерфейса
|
||
- **Обновление счетчиков**: Количество контейнеров в секциях обновляется в реальном времени
|
||
- **Логирование изменений**: В консоли браузера отображается информация об изменениях
|
||
|
||
#### 📱 Адаптивный интерфейс
|
||
- **Свернутый sidebar**: Миникарточки контейнеров с иконками статуса
|
||
- **Развернутый sidebar**: Полная информация о контейнерах с возможностью сворачивания секций
|
||
- **Мобильная поддержка**: Адаптивный дизайн для мобильных устройств
|
||
|
||
### API эндпоинты
|
||
|
||
#### Получение контейнеров
|
||
```http
|
||
GET /api/containers/services
|
||
Authorization: Bearer <token>
|
||
```
|
||
|
||
**Ответ:**
|
||
```json
|
||
[
|
||
{
|
||
"id": "container-id",
|
||
"name": "container-name",
|
||
"status": "running",
|
||
"is_remote": false,
|
||
"hostname": "localhost",
|
||
"project": "project-name",
|
||
"service": "service-name"
|
||
},
|
||
{
|
||
"id": "remote-hostname-container",
|
||
"name": "remote-container",
|
||
"status": "running",
|
||
"is_remote": true,
|
||
"hostname": "remote-host",
|
||
"last_modified": "2025-08-20T16:30:00",
|
||
"size": 1024
|
||
}
|
||
]
|
||
```
|
||
|
||
#### Получение логов удаленного контейнера
|
||
```http
|
||
GET /api/logs/{container_id}
|
||
Authorization: Bearer <token>
|
||
```
|
||
|
||
#### Получение статистики логов
|
||
```http
|
||
GET /api/logs/stats/{container_id}
|
||
Authorization: Bearer <token>
|
||
```
|
||
|
||
## Мониторинг и отладка
|
||
|
||
### Логи клиента
|
||
```bash
|
||
docker-compose logs -f logboard-client
|
||
```
|
||
|
||
### Проверка здоровья
|
||
```bash
|
||
curl http://localhost:8080/health
|
||
```
|
||
|
||
### Тестирование API
|
||
```bash
|
||
python3 test_interface.py
|
||
```
|
||
|
||
## Безопасность
|
||
|
||
- **API ключи**: Обязательная аутентификация клиентов
|
||
- **HTTPS**: Рекомендуется использовать HTTPS для передачи данных
|
||
- **Сетевая изоляция**: Клиенты должны иметь доступ только к необходимым портам
|
||
|
||
## Устранение неполадок
|
||
|
||
### Клиент не подключается
|
||
1. Проверьте URL сервера в переменной `LOGBOARD_SERVER_URL`
|
||
2. Убедитесь, что API ключ правильный
|
||
3. Проверьте сетевое подключение
|
||
|
||
### Логи не отображаются
|
||
1. Проверьте права доступа к Docker socket
|
||
2. Убедитесь, что контейнеры запущены
|
||
3. Проверьте логи клиента
|
||
|
||
### Интерфейс не обновляется
|
||
1. Откройте консоль браузера (F12)
|
||
2. Проверьте наличие ошибок JavaScript
|
||
3. Убедитесь, что WebSocket соединения работают
|
||
|
||
## Автор
|
||
|
||
**Сергей Антропов**
|
||
🌐 Сайт: https://devops.org.ru
|
||
📧 Email: contact@devops.org.ru
|
||
|
||
---
|
||
|
||
*Документация обновлена: 2025-08-20*
|
||
|