logboard/docs/installation.md
Сергей Антропов c40b2b312e docs: update documentation to reflect new project structure
- Update README.md with new project structure and installation instructions
- Update docs/installation.md with simplified setup process
- Update docs/configuration.md with correct file paths
- Update docs/index.md with new documentation structure
- Add docs/project-structure.md with detailed architecture overview
- Reflect changes from refactoring: app/ directory structure, .env file usage
- Update installation instructions to use docker compose up --build -d
- Add comprehensive project structure documentation
2025-08-20 18:32:31 +03:00

13 KiB
Raw Blame History

Установка и настройка LogBoard+

Автор: Сергей Антропов
Сайт: https://devops.org.ru

Содержание

  1. Обзор и применение
  2. Предварительные требования
  3. Установка
  4. Настройка
  5. Первый запуск
  6. Проверка установки
  7. Настройка для продакшена

Обзор и применение

🎯 Идеально для локальной разработки

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/services" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

# Проверка списка проектов
curl -X GET "http://localhost:9001/api/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

Устранение проблем установки

Частые ошибки

  1. Ошибка доступа к Docker socket

    # Решение: добавление пользователя в группу docker
    sudo usermod -aG docker $USER
    newgrp docker
    
  2. Ошибка порта уже используется

    # Решение: изменение порта в .env
    LOGBOARD_PORT=9002
    
  3. Ошибка недостаточно памяти

    # Решение: увеличение лимитов Docker
    sudo systemctl edit docker
    # Добавьте:
    # [Service]
    # MemoryLimit=2G
    
  4. Ошибка 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

Следующие шаги

После успешной установки:

  1. Настройте безопасность
  2. Изучите API документацию
  3. Настройте конфигурацию
  4. Изучите WebSocket API