Главы 3.3: Мониторинг логов с 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.