# LogBoard+ **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru LogBoard+ — это веб-панель для просмотра логов микросервисов из `docker-compose` в **реальном времени** с поддержкой: - Вкладок по сервисам и репликам - Темная/светлая темы - Подсветка ANSI-цветов из логов - Фильтрация по уровням (`debug`, `info`, `warn`, `error`) - Снимки логов в файл (`snapshot`) - Объединение всех реплик сервиса в одну вкладку (**aggregate**) - Fan-in группировка нескольких сервисов в одну панель (**group**) - Цветовые теги по короткому ID контейнера - Sticky-фильтры по репликам - Пауза/возобновление стрима - Basic Auth для доступа - Автопереподключение вебсокетов - Поддержка нескольких клиентов одновременно --- ## Установка и запуск ### Быстрый старт с Makefile (рекомендуется) ```bash # Распаковать проект unzip logboard_plus_fanin_groups.zip cd logboard_plus # Показать доступные команды make help # Собрать и запустить проект make build make up # Открыть в браузере http://localhost:9001 ``` ### Команды Makefile | Команда | Описание | |---------|----------| | `make help` | Показать справку по всем командам | | `make build` | Собрать Docker образ | | `make up` | Запустить сервисы в фоновом режиме | | `make down` | Остановить и удалить сервисы | | `make restart` | Перезапустить сервисы | | `make logs` | Показать логи сервисов в реальном времени | | `make logs-tail` | Показать последние 100 строк логов | | `make status` | Показать статус сервисов | | `make clean` | Остановить сервисы и удалить образы | | `make shell` | Подключиться к контейнеру | | `make dev` | Запуск в режиме разработки (с выводом логов) | | `make rebuild` | Пересобрать и запустить сервисы | ### Классический способ ```bash # Распаковать проект unzip logboard_plus_fanin_groups.zip cd logboard_plus # Запуск через docker-compose docker compose up --build -d # Открыть в браузере http://localhost:9001 ``` По умолчанию логин/пароль для Basic Auth задаются в `docker-compose.yml`: ```yaml environment: - LB_USER=admin - LB_PASS=admin ``` --- ## Интерфейс ### Верхняя панель - **Тема** — переключатель тёмной/светлой темы - **aggregate** — собирает все реплики сервиса в одну вкладку - **group** — собирает несколько сервисов в один поток логов - **snapshot** — сохраняет текущие логи этой панели в файл - **tail** — количество строк истории при подключении ### Панель вкладок - Вкладки по сервисам и репликам - Клик по вкладке — открыть поток логов - Цветной чип `[id]` — уникальная реплика, цвет закреплён - Чекбоксы под вкладками — фильтр по репликам ### Логи - Цвета в логах из ANSI-кодов - Фильтрация по уровню (`debug`, `info`, `warn`, `error`) - Пауза/возобновление стрима - При выделении текста появляется кнопка "Копировать" --- ## Fan-in группировка Позволяет объединить несколько разных сервисов в один поток: 1. Нажмите кнопку **group** вверху 2. Введите имена сервисов через запятую (например: `api, worker, scheduler`) 3. Откроется панель с логами всех указанных сервисов, с префиксом `[id service]` 4. Можно фильтровать по конкретным репликам внизу --- ## Советы - Если контейнер перезапустился — поток автоматически переподключается - Можно открыть несколько вкладок браузера с разными сервисами — всё работает параллельно - Для больших проектов удобно держать одну панель с `aggregate`, вторую — с `group` по критическим сервисам --- ## Лицензия MIT ## Скриншоты Тёмная тема: ![Dark](screenshots/dark.png) Светлая тема: ![Light](screenshots/light.png)