logboard/docs/remote-clients.md
Сергей Антропов 0e0e0fcdd6 refactor: переименование проекта в LogBoard+ Server
- Обновлен заголовок проекта в README.md
- Обновлено описание проекта
- Обновлен Makefile с новым названием
- Обновлены переменные окружения
- Обновлена документация по удаленным клиентам
- Обновлены заголовки и описания веб-интерфейса

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-08-20 20:14:26 +03:00

194 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🌐 Удаленные клиенты 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*