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

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

8.0 KiB
Raw Blame History

🌐 Удаленные клиенты 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. Клонируйте репозиторий клиента:
git clone ssh://git@git.antropoff.ru:222/PetProject/logboard-client.git
cd logboard-client
  1. Настройте переменные окружения:
cp .env.example .env
# Отредактируйте .env файл
  1. Запустите клиент:
docker-compose up -d

Подробная документация по установке и настройке клиента доступна в репозитории: LogBoard+ Client

Использование

Web интерфейс

После настройки клиентов, в веб-интерфейсе LogBoard+ вы увидите:

📍 Локальные контейнеры

  • Контейнеры с текущего сервера
  • Обычное отображение без дополнительных индикаторов

🌐 Удаленные контейнеры

  • Контейнеры с удаленных серверов
  • Визуальное разделение по хостам
  • Индикаторы удаленного доступа (глобус 🌐)
  • Время последнего обновления
  • Статистика по хостам

Функции интерфейса

🔽 Сворачивание секций

  • Секции контейнеров: Можно сворачивать/разворачивать секции "Локальные контейнеры" и "Удаленные контейнеры"
  • Секции хостов: Каждый хост в удаленных контейнерах можно сворачивать отдельно
  • Кнопки управления: Стрелки для сворачивания/разворачивания
  • Сохранение состояния: Состояние сворачивания сохраняется между сессиями

Периодическое обновление

  • Автоматическое обновление: Список контейнеров обновляется каждые 30 секунд
  • Фильтрация остановленных: Остановленные контейнеры автоматически скрываются из интерфейса
  • Обновление счетчиков: Количество контейнеров в секциях обновляется в реальном времени
  • Логирование изменений: В консоли браузера отображается информация об изменениях

📱 Адаптивный интерфейс

  • Свернутый sidebar: Миникарточки контейнеров с иконками статуса
  • Развернутый sidebar: Полная информация о контейнерах с возможностью сворачивания секций
  • Мобильная поддержка: Адаптивный дизайн для мобильных устройств

API эндпоинты

Получение контейнеров

GET /api/containers/services
Authorization: Bearer <token>

Ответ:

[
  {
    "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
  }
]

Получение логов удаленного контейнера

GET /api/logs/{container_id}
Authorization: Bearer <token>

Получение статистики логов

GET /api/logs/stats/{container_id}
Authorization: Bearer <token>

Мониторинг и отладка

Логи клиента

docker-compose logs -f logboard-client

Проверка здоровья

curl http://localhost:8080/health

Тестирование API

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