- Добавлена переменная DOCKER_NETWORKS в env.example - Создан скрипт scripts/generate-compose.py для генерации docker-compose.yml - Добавлена команда make generate для обновления конфигурации - Обновлен docker-compose.yml с поддержкой внешних сетей - Добавлена документация по настройке сетей в README.md - Поддержка гибкой настройки сетей для разных проектов - Пример: DOCKER_NETWORKS=iaas,infrastructure_iaas - Автор: Сергей Антропов (https://devops.org.ru)
8.7 KiB
LogBoard+
Автор: Сергей Антропов
Сайт: https://devops.org.ru
LogBoard+ — это веб-панель для просмотра логов микросервисов из docker-compose
в реальном времени с поддержкой:
- Вкладок по сервисам и репликам
- Темная/светлая темы
- Подсветка ANSI-цветов из логов
- Фильтрация по уровням (
debug
,info
,warn
,error
) - Снимки логов в файл (
snapshot
) - Объединение всех реплик сервиса в одну вкладку (aggregate)
- Fan-in группировка нескольких сервисов в одну панель (group)
- Цветовые теги по короткому ID контейнера
- Sticky-фильтры по репликам
- Пауза/возобновление стрима
- Basic Auth для доступа
- Автопереподключение вебсокетов
- Поддержка нескольких клиентов одновременно
Установка и запуск
Быстрый старт с Makefile (рекомендуется)
# Распаковать проект
unzip logboard_plus_fanin_groups.zip
cd logboard_plus
# Показать доступные команды
make help
# Настроить переменные окружения
make setup
# Отредактировать .env файл под свои нужды (опционально)
# nano .env
# Собрать и запустить проект
make build
make up
# Открыть в браузере
http://localhost:9001
Команды Makefile
Команда | Описание |
---|---|
make help |
Показать справку по всем командам |
make setup |
Настроить переменные окружения (копировать env.example в .env) |
make generate |
Сгенерировать docker-compose.yml из .env файла |
make build |
Собрать Docker образ |
make up |
Запустить сервисы в фоновом режиме (с правами root) |
make down |
Остановить и удалить сервисы (с правами root) |
make restart |
Перезапустить сервисы (с правами root) |
make logs |
Показать логи сервисов в реальном времени |
make logs-tail |
Показать последние 100 строк логов |
make status |
Показать статус сервисов |
make clean |
Остановить сервисы и удалить образы |
make shell |
Подключиться к контейнеру |
make dev |
Запуск в режиме разработки (с выводом логов) |
make rebuild |
Пересобрать и запустить сервисы |
Настройка переменных окружения
Проект использует файл .env
для хранения всех настроек. Для настройки:
-
Автоматическая настройка:
make setup
-
Ручная настройка:
cp env.example .env nano .env # или любой другой редактор
Основные переменные окружения:
Переменная | Описание | Значение по умолчанию |
---|---|---|
LOGBOARD_PORT |
Порт веб-интерфейса | 9001 |
LOGBOARD_USER |
Имя пользователя для Basic Auth | admin |
LOGBOARD_PASS |
Пароль для Basic Auth | s3cret-change-me |
LOGBOARD_TAIL |
Количество строк истории | 500 |
LOGBOARD_SNAPSHOT_DIR |
Директория для снимков | /app/snapshots |
LOGBOARD_INDEX_HTML |
Путь к HTML шаблону | ./templates/index.html |
TZ_TS |
Временная зона для меток времени | (пусто) |
COMPOSE_PROJECT_NAME |
Фильтр по проекту Docker Compose | (пусто) |
DOCKER_NETWORKS |
Внешние Docker сети (через запятую) | iaas,infrastructure_iaas |
SECRET_KEY |
Секретный ключ для шифрования | your-secret-key-here |
ENCRYPTION_KEY |
Ключ шифрования | your-encryption-key-here |
⚠️ Важно: Измените значения LOGBOARD_PASS
, SECRET_KEY
и ENCRYPTION_KEY
в продакшене!
Настройка Docker сетей
Для подключения к внешним Docker сетям (например, для работы с другими проектами):
-
Укажите сети в .env файле:
DOCKER_NETWORKS=iaas,infrastructure_iaas,myproject_network
-
Сгенерируйте docker-compose.yml:
make generate
-
Убедитесь, что сети существуют:
docker network ls
-
Создайте сети, если их нет:
docker network create iaas docker network create infrastructure_iaas
Настройка прав доступа к Docker
Приложение запускается с правами root для корректного доступа к Docker socket. Если вы хотите запускать без прав root, добавьте вашего пользователя в группу docker:
sudo usermod -a -G docker $USER
# Перезагрузите систему или перелогиньтесь
Классический способ
# Распаковать проект
unzip logboard_plus_fanin_groups.zip
cd logboard_plus
# Настроить переменные окружения
cp env.example .env
# Отредактировать .env файл
# Запуск через docker-compose
docker compose up --build -d
# Открыть в браузере
http://localhost:9001
По умолчанию логин/пароль для Basic Auth задаются в docker-compose.yml
:
environment:
- LB_USER=admin
- LB_PASS=admin
Интерфейс
Верхняя панель
- Тема — переключатель тёмной/светлой темы
- aggregate — собирает все реплики сервиса в одну вкладку
- group — собирает несколько сервисов в один поток логов
- snapshot — сохраняет текущие логи этой панели в файл
- tail — количество строк истории при подключении
Панель вкладок
- Вкладки по сервисам и репликам
- Клик по вкладке — открыть поток логов
- Цветной чип
[id]
— уникальная реплика, цвет закреплён - Чекбоксы под вкладками — фильтр по репликам
Логи
- Цвета в логах из ANSI-кодов
- Фильтрация по уровню (
debug
,info
,warn
,error
) - Пауза/возобновление стрима
- При выделении текста появляется кнопка "Копировать"
Fan-in группировка
Позволяет объединить несколько разных сервисов в один поток:
- Нажмите кнопку group вверху
- Введите имена сервисов через запятую (например:
api, worker, scheduler
) - Откроется панель с логами всех указанных сервисов, с префиксом
[id service]
- Можно фильтровать по конкретным репликам внизу
Советы
- Если контейнер перезапустился — поток автоматически переподключается
- Можно открыть несколько вкладок браузера с разными сервисами — всё работает параллельно
- Для больших проектов удобно держать одну панель с
aggregate
, вторую — сgroup
по критическим сервисам
Лицензия
MIT
Скриншоты
Тёмная тема:
Светлая тема: