13 KiB
13 KiB
Установка и настройка LogBoard+
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Содержание
- Обзор и применение
- Предварительные требования
- Установка
- Настройка
- Первый запуск
- Проверка установки
- Настройка для продакшена
Обзор и применение
Идеально для локальной разработки
LogBoard+ создан специально для разработчиков, работающих с микросервисной архитектурой. Если вы используете Docker и Docker Compose для локальной разработки, этот инструмент станет незаменимым помощником:
- Второй монитор - Держите логи всех микросервисов постоянно видимыми
- Быстрая отладка - Мгновенный доступ к логам без переключения между терминалами
- Мониторинг в реальном времени - Видите проблемы сразу, как они возникают
- Централизованный просмотр - Все логи в одном месте, а не в десятках терминалов
Оптимизирован для Docker и Docker Compose
Если ваша инфраструктура основана на Docker и Docker Compose, LogBoard+ предоставляет:
- Автоматическое обнаружение всех проектов Docker Compose
- Быстрый просмотр логов всех контейнеров в проекте
- Фильтрация по проектам - легко переключаться между разными проектами
- Multi-view режим - одновременный просмотр логов нескольких контейнеров
- Интеграция с Docker API - прямая работа с контейнерами
Сценарии использования
- Локальная разработка - мониторинг логов микросервисов на втором мониторе
- Отладка проблем - быстрый поиск ошибок в логах
- Тестирование - наблюдение за поведением системы в реальном времени
- Демонстрации - показ работы системы клиентам или команде
Предварительные требования
Системные требования
- Операционная система: Linux (Ubuntu 20.04+, CentOS 8+, RHEL 8+)
- Docker Engine: 20.10.0 или выше
- Docker Compose: 2.0.0 или выше
- RAM: Минимум 1 GB, рекомендуется 2 GB
- CPU: Минимум 1 ядро, рекомендуется 2 ядра
- Дисковое пространство: Минимум 2 GB свободного места
Проверка системы
# Проверка версии Docker
docker --version
# Docker version 20.10.21, build baeda1f
# Проверка версии Docker Compose
docker compose version
# Docker Compose version v2.12.2
# Проверка доступной памяти
free -h
# total used free shared buff/cache available
# Mem: 7.7Gi 2.1Gi 4.2Gi 0.0Ki 1.4Gi 5.3Gi
# Проверка свободного места
df -h /
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 100G 20G 80G 20% /
Установка
Метод 1: Клонирование из Git
# Клонирование репозитория
git clone https://github.com/your-username/logboard.git
cd logboard
# Проверка структуры проекта
ls -la
# Настройка переменных окружения
cp env.example .env
Метод 2: Скачивание архива
# Скачивание и распаковка
wget https://github.com/your-username/logboard/archive/refs/tags/v1.0.0.tar.gz
tar -xzf v1.0.0.tar.gz
cd logboard-1.0.0
Настройка
1. Создание файла переменных окружения
# Копирование примера конфигурации
make setup
# Или вручную
cp env.example .env
2. Редактирование конфигурации
Откройте файл .env
и настройте основные параметры:
# Основные настройки
LOGBOARD_PORT=9001
LOGBOARD_USER=admin
LOGBOARD_PASS=your-secure-password
# Безопасность (обязательно измените!)
SECRET_KEY=your-very-secure-secret-key-here
ENCRYPTION_KEY=your-encryption-key-here
# Настройки Docker
DOCKER_HOST=unix:///var/run/docker.sock
3. Настройка прав доступа к Docker
# Создание группы docker (если не существует)
sudo groupadd docker
# Добавление пользователя в группу docker
sudo usermod -aG docker $USER
# Проверка прав доступа
ls -la /var/run/docker.sock
# srw-rw-rw- 1 root docker 0 Jan 15 10:00 /var/run/docker.sock
# Перезагрузка группы (или перелогин)
newgrp docker
4. Создание директорий
# Создание директории для снимков логов
mkdir -p snapshots
# Установка прав доступа
chmod 755 snapshots
Первый запуск
1. Сборка и запуск приложения
# Сборка и запуск в одном команде
docker compose up --build -d
# Или пошагово:
# Сборка образа
docker compose build --no-cache
# Запуск в фоновом режиме
docker compose up -d
3. Проверка статуса
# Проверка статуса контейнеров
make status
# Просмотр логов
make logs
Проверка установки
1. Проверка доступности веб-интерфейса
# Проверка HTTP ответа
curl -I http://localhost:9001
# HTTP/1.1 200 OK
# Content-Type: text/html; charset=utf-8
# Проверка health check
curl http://localhost:9001/healthz
# ok
2. Проверка API
# Получение токена аутентификации
curl -X POST "http://localhost:9001/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"your-secure-password"}'
# Ответ должен содержать access_token
3. Проверка Docker интеграции
# Проверка списка контейнеров
curl -X GET "http://localhost:9001/api/containers/services" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
# Проверка списка проектов
curl -X GET "http://localhost:9001/api/containers/projects" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
4. Проверка WebSocket соединений
# Тестирование WebSocket (требует специального клиента)
# Используйте браузер или wscat для тестирования
Настройка для продакшена
1. Безопасность
Изменение паролей и ключей
# Генерация секретного ключа
openssl rand -hex 32
# 8a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6
# Генерация ключа шифрования
openssl rand -hex 32
# 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7
# Обновление .env файла
LOGBOARD_PASS=your-very-secure-password
SECRET_KEY=8a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6
ENCRYPTION_KEY=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7
Настройка HTTPS
Создайте файл nginx.conf
:
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location / {
proxy_pass http://localhost:9001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket поддержка
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
2. Мониторинг
Настройка логирования
# Создание директории для логов
sudo mkdir -p /var/log/logboard
sudo chown $USER:$USER /var/log/logboard
# Обновление docker-compose.yml
volumes:
- /var/log/logboard:/app/logs
Настройка systemd сервиса
Создайте файл /etc/systemd/system/logboard.service
:
[Unit]
Description=LogBoard+ Docker Compose
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/path/to/logboard
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
# Включение автозапуска
sudo systemctl enable logboard.service
sudo systemctl start logboard.service
3. Резервное копирование
Скрипт резервного копирования
Создайте файл backup.sh
:
#!/bin/bash
# Скрипт резервного копирования LogBoard+
BACKUP_DIR="/backup/logboard"
DATE=$(date +%Y%m%d_%H%M%S)
# Создание директории для резервных копий
mkdir -p $BACKUP_DIR
# Резервное копирование конфигурации
tar -czf $BACKUP_DIR/logboard_config_$DATE.tar.gz \
.env \
excluded_containers.json \
docker-compose.yml
# Резервное копирование снимков логов
tar -czf $BACKUP_DIR/logboard_snapshots_$DATE.tar.gz \
snapshots/
# Удаление старых резервных копий (старше 30 дней)
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
echo "Резервное копирование завершено: $DATE"
# Установка прав на выполнение
chmod +x backup.sh
# Добавление в cron (ежедневно в 2:00)
crontab -e
# 0 2 * * * /path/to/logboard/backup.sh
4. Обновление
Скрипт обновления
Создайте файл update.sh
:
#!/bin/bash
# Скрипт обновления LogBoard+
echo "Начинаем обновление LogBoard+..."
# Остановка сервисов
make down
# Получение обновлений
git pull origin main
# Пересборка образов
make build
# Запуск сервисов
make up
# Проверка статуса
make status
echo "Обновление завершено!"
# Установка прав на выполнение
chmod +x update.sh
Устранение проблем установки
Частые ошибки
-
Ошибка доступа к Docker socket
# Решение: добавление пользователя в группу docker sudo usermod -aG docker $USER newgrp docker
-
Ошибка порта уже используется
# Решение: изменение порта в .env LOGBOARD_PORT=9002
-
Ошибка недостаточно памяти
# Решение: увеличение лимитов Docker sudo systemctl edit docker # Добавьте: # [Service] # MemoryLimit=2G
-
Ошибка SSL сертификатов
# Решение: использование самоподписанных сертификатов для тестирования openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout private.key -out certificate.crt
Логи для диагностики
# Просмотр логов приложения
make logs
# Просмотр логов Docker
docker logs logboard
# Проверка статуса контейнера
docker inspect logboard
Следующие шаги
После успешной установки: