- Обновлен заголовок проекта в README.md - Обновлено описание проекта - Обновлен Makefile с новым названием - Обновлены переменные окружения - Обновлена документация по удаленным клиентам - Обновлены заголовки и описания веб-интерфейса Автор: Сергей Антропов Сайт: https://devops.org.ru
8.0 KiB
8.0 KiB
🌐 Удаленные клиенты 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
- Убедитесь, что сервер LogBoard+ Server запущен и доступен
- Получите API ключ для аутентификации клиентов
На удаленном сервере
- Клонируйте репозиторий клиента:
git clone ssh://git@git.antropoff.ru:222/PetProject/logboard-client.git
cd logboard-client
- Настройте переменные окружения:
cp .env.example .env
# Отредактируйте .env файл
- Запустите клиент:
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 для передачи данных
- Сетевая изоляция: Клиенты должны иметь доступ только к необходимым портам
Устранение неполадок
Клиент не подключается
- Проверьте URL сервера в переменной
LOGBOARD_SERVER_URL
- Убедитесь, что API ключ правильный
- Проверьте сетевое подключение
Логи не отображаются
- Проверьте права доступа к Docker socket
- Убедитесь, что контейнеры запущены
- Проверьте логи клиента
Интерфейс не обновляется
- Откройте консоль браузера (F12)
- Проверьте наличие ошибок JavaScript
- Убедитесь, что WebSocket соединения работают
Автор
Сергей Антропов
🌐 Сайт: https://devops.org.ru
📧 Email: contact@devops.org.ru
Документация обновлена: 2025-08-20