Перейти к основному контенту

Главы 3.2: Мониторинг логов с Dozzle.

Хотя в Portainer есть встроенный просмотр логов, он имеет существенный минус: логи там статичны. Чтобы увидеть новые записи, нужно постоянно нажимать кнопку обновления. Когда вы отлаживаете сложный сервис или следите за ошибками в реальном времени, это дико неудобно.

Для этого в нашу экосистему мы добавим Dozzle — невероятно легковесный (всего около 10–15 МБ оперативной памяти), быстрый и красивый инструмент, который специализируется исключительно на логах. Он выводит логи всех ваших контейнеров «живым потоком» (стримингом) прямо в браузер с удобным поиском и подсветкой синтаксиса.


1. Подготовка папки и манифеста

Соблюдаем наш стандарт гигиены. Создаем отдельную папку для Dozzle и переходим в нее:

mkdir -p /stacks/dozzle
cd /stacks/dozzle

Теперь создаем файл docker-compose.yml:

nano docker-compose.yml

Вставьте туда следующую минималистичную конфигурацию:

services:
  dozzle:
    image: amir20/dozzle:latest
    container_name: dozzle
    restart: unless-stopped
    ports:
      - "8888:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

2. Разбор безопасности: Что означает флаг :ro?

Вы могли заметить, что мы снова, как и в Portainer, пробрасываем внутрь приложения системный сокет Docker. Но обратите внимание на важный флаг в самом конце строки волюма:

- /var/run/docker.sock:/var/run/docker.sock:ro

Флаг ro расшифровывается как Read-Only (Только для чтения).

Поскольку Dozzle должен только читать текстовые логи и не имеет функций управления (он не умеет удалять или запускать контейнеры, в отличие от Portainer), мы жестко ограничиваем его права на уровне системы. Даже если бы в коде Dozzle была уязвимость, злоумышленник через этот сокет не смог бы отдать команду движку Docker на создание или уничтожение контейнеров. Это пример правильного, безопасного проектирования селф-хостинга.


3. Запуск и использование

Поднимем наш стример логов одной командой:

docker compose up -d

Теперь открывайте браузер и переходите по адресу: http://ip_вашего_сервера:8888

Веб-интерфейс встретит вас стильной темной темой (по умолчанию). В левом меню вы увидите наглядный список вообще всех контейнеров, работающих на вашем сервере Debian. Рядом с каждым именем будет гореть зеленый (запущен) или красный (остановлен) индикатор.

Фишки Dozzle, которые облегчают жизнь новичку:

  • Живой поток: Кликните на любой контейнер (например, bookstack_app). Вы увидите, как логи бегут по экрану в реальном времени. Если вы в этот момент нажмете кнопку на самом сайте Wiki, в Dozzle мгновенно отобразится строчка этого запроса.
  • Умный поиск (Фильтр): Сверху есть строка поиска. Если ваш сайт выдает ошибку, вам не нужно перечитывать мегабайты текста. Просто вбейте туда слово error, warning, critical или конкретный код ошибки (например, 500) — Dozzle мгновенно скроет всё лишнее и подсветит проблемные строчки.
  • Режим "Следовать за логом" (Scroll back): Если логов падает слишком много, вы можете нажать иконку замочка сверху, чтобы зафиксировать экран и спокойно изучить текст, не боясь, что новые строчки ускроллят его вверх.
  • Регулярные выражения: Поиск поддерживает регулярные выражения (Regex) для продвинутых сисадминов, позволяя собирать сложные фильтры логов на ходу.

💡 Итог:
Dozzle — это идеальный инструмент для повседневной отладки. Он не нагружает процессор вашего сервера, запускается за секунду и дает потрясающую наглядность того, чем живет ваш домашний сервер прямо в эту милисекунду.

Теперь наша экосистема визуализирована и прозрачна. У нас есть и общая панель, и стриминг логов. Пришло время автоматизировать самую нудную рутину — обновление приложений. Переходим к Главе 3.4: Автообновление с Watchtower.