Самохостинг (часть 5) - логи
Часто при развертывании нового сервиса есть сложность с чем-либо и нужно посмотреть что же идет не так. Можно всегда зайти на сервер по ssh и посмотреть логи, но иногда сильно удобнее их смотреть через веб-интерфейс. И вот тут нам на помощь приходит Dozzle.
Что такое Dozzle?
Dozzle — это open-source проект, спонсируемый Docker OSS. Это веб-приложение, предназначенное для упрощения мониторинга и отладки контейнеров. Dozzle предлагает потоковую передачу логов в реальном времени, фильтрацию и поиск через интуитивно понятный интерфейс.
С помощью Dozzle пользователи могут быстро получать доступ к логам, генерируемым их Docker-контейнерами. Это делает его незаменимым инструментом для отладки и устранения неполадок в Docker-среде. По умолчанию Dozzle поддерживает логи в формате JSON с интеллектуальной цветовой разметкой, что упрощает чтение и анализ данных.
Основные возможности Dozzle
- Потоковая передача логов в реальном времени: Dozzle позволяет отслеживать логи контейнеров в режиме реального времени, что особенно полезно при отладке работающих приложений.
- Фильтрация и поиск: Инструмент предоставляет возможность фильтровать логи по контейнерам и искать конкретные сообщения, что значительно ускоряет процесс анализа.
- Цветовая разметка: Логи в формате JSON автоматически выделяются цветами, что делает их более читаемыми.
- Простота установки и настройки: Dozzle легко развернуть с помощью Docker, а его минималистичный интерфейс не требует сложной настройки.
- Поддержка аутентификации: Dozzle поддерживает простую аутентификацию, что позволяет защитить доступ к логам.
Как установить Dozzle?
Dozzle можно легко развернуть с помощью Docker Compose. Добавляем в наш docker-compose.yaml следующий сервис:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
environment:
- DOZZLE_AUTH_PROVIDER=simple
- DOZZLE_NO_ANALYTICS=true
- DOZZLE_AUTH_TTL=48h
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/docker/dozzle/data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.logs-opt.rule=Host(`logs.home.example.com`)"
- "traefik.http.routers.logs-opt.entrypoints=https"
- "traefik.http.routers.logs-opt.tls.certresolver=myresolver"
- "traefik.http.services.logs-opt.loadbalancer.server.port=8080"
- "traefik.http.services.logs-opt.loadbalancer.server.scheme=http"
Запускаем с помощью уже изученной команды:
docker compose up -d
После запуска контейнера Dozzle будет доступен через веб-интерфейс, где вы сможете просматривать логи всех ваших контейнеров.