# 🌐 Удаленные клиенты 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 ``` **Ответ:** ```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 ``` #### Получение статистики логов ```http GET /api/logs/stats/{container_id} Authorization: Bearer ``` ## Мониторинг и отладка ### Логи клиента ```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*