Самый быстрый способ отладки Docker-контейнеров (Dozzle)

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00Можно и дальше отлаживать Docker с пятью терминалами и бесконечной прокруткой.
00:00:04А можно открыть одну вкладку браузера и видеть логи всех контейнеров в реальном времени.
00:00:08Это Dozzle.
00:00:10Инструмент с открытым исходным кодом, который транслирует логи контейнеров в ваш
00:00:13браузер и фактически их не хранит.
00:00:15Вот почему он весит всего около семи мегабайт и работает очень быстро.
00:00:19Давайте посмотрим, как его настроить и применить в деле прямо сейчас.
00:00:22[МУЗЫКА]
00:00:28У вас может быть открыто три терминала, а может и пять.
00:00:30В каждом из них мы запускаем docker logs.
00:00:32Листаем, ищем, переключаемся между вкладками.
00:00:35Это привычная плата за работу с контейнерами.
00:00:37Dozzle предлагает более простой способ видеть всё сразу в одном месте
00:00:41без развертывания полноценного стека логирования.
00:00:43Он поддерживает Docker, Docker Swarm, Kubernetes и
00:00:46мультихостовые конфигурации через агентов. К тому же только что вышла 10-я версия.
00:00:50В ней появились алерты, вебхуки, поддержка облаков и важные обновления безопасности.
00:00:54Он создан для одной цели: наглядности при отладке в реальном времени.
00:00:57Пора показать, как его настроить и
00:00:59почему он может полностью изменить ваш подход к отладке Docker-приложений.
00:01:02Если вам важно экономить время при разработке — подписывайтесь.
00:01:06Мы постоянно разбираем полезные инструменты, которые реально помогают.
00:01:09На первый взгляд Dozzle кажется очередным инструментом для логов.
00:01:12Мы ожидаем чего-то тяжеловесного, хранящего данные,
00:01:15требующего базу данных, но здесь всё наоборот.
00:01:19Давайте настроим его меньше чем за 60 секунд.
00:01:22Для начала скачаем образ командой, которую я запускаю сейчас.
00:01:26Я запущу его, примонтирую сокет Docker и проброшу порт — и всё.
00:01:30Никаких баз данных, никакой индексации, и не нужно ничего ждать.
00:01:33Я изменил порты, потому что у меня уже запущены другие контейнеры,
00:01:37один из которых использует стандартный порт.
00:01:39Теперь я просто открываю браузер на localhost и
00:01:42сразу вижу список запущенных контейнеров.
00:01:44Привычных сложностей с установкой просто не возникает.
00:01:47Всё работает очень гладко.
00:01:49Если используете Docker Compose: укажите образ, пробросьте порт,
00:01:53примонтируйте сокет Docker и передайте флаг отключения аналитики.
00:01:56Затем выполните docker-compose up — и готово.
00:01:59Единственное, за чем стоит следить — это права доступа к сокету и
00:02:02использование версии 10 или выше для доступа к последним обновлениям.
00:02:07Вот и весь цикл настройки.
00:02:08Ничего сверхъестественного, но интерфейс и практичность поражают.
00:02:13А теперь — самое интересное.
00:02:16Открыв Dozzle, вы видите чистый список всех запущенных контейнеров.
00:02:20Никаких лишних дашбордов, только ваши сервисы.
00:02:24Я могу начать вводить в поиске что-то вроде «DB».
00:02:27И контейнер базы данных появится мгновенно, точное имя не требуется.
00:02:32Нажмите на контейнер, и логи начнут транслироваться в прямом эфире.
00:02:35Нам не нужно ничего обновлять, всё происходит само собой.
00:02:38Я создал тестовый контейнер для имитации неудачных запросов,
00:02:41но вы можете просто спровоцировать ошибку в своем приложении.
00:02:46Как только произойдет ошибка, она тут же отобразится в браузере.
00:02:48Мне не нужно переключать терминалы или заново вводить команды.
00:02:51В момент сбоя я сразу увижу его в интерфейсе.
00:02:54В 10-й версии появился SQL-режим на базе DuckDB.
00:02:58Можно переключить режим в терминале и выполнить запрос, например, выборку записей.
00:03:03Здесь это показано упрощенно, но я могу сделать запрос,
00:03:05и результат вернется прямо здесь, в Dozzle.
00:03:07Это дает общее представление о возможностях.
00:03:09Теперь вместо того чтобы искать глазами, можно просто делать запросы к логам.
00:03:13Также можно задать условие, например, превышение CPU на 80%,
00:03:17и привязать вебхук к Slack или другому эндпоинту,
00:03:20что делает мониторинг гораздо более интерактивным.
00:03:22Это была одна из фишек последнего обновления.
00:03:24Прежде чем открывать доступ извне к локальной машине,
00:03:27обязательно включите аутентификацию.
00:03:29Установите переменную окружения и
00:03:31укажите файл конфигурации пользователей для защиты доступа.
00:03:35В Kubernetes развертывайте его через манифесты или Helm.
00:03:38Смонтируйте нужные логи и откройте доступ через сервис.
00:03:42Пара заключительных мыслей, прежде чем закончить.
00:03:44Я хочу четко обозначить, чем этот инструмент является, а чем нет.
00:03:48Dozzle — простой, легкий и сфокусирован на живом стриминге.
00:03:52Он не хранит логи, что делает его быстрым и приватным.
00:03:57Но это также значит, что он не предназначен для долгосрочного хранения.
00:04:00Так что учитывайте это в своей работе.
00:04:02Если вам нужно постоянное хранилище и дашборды,
00:04:04существует масса других решений, которые мы уже используем.
00:04:07Но как open-source способ живого анализа контейнеров,
00:04:11мне он показался очень крутым.
00:04:13Каждая минута, потраченная на переключение терминалов
00:04:15и просмотр логов — это время, когда вы не решаете проблему.
00:04:18Dozzle, похоже, устраняет эту потерю времени.
00:04:22Он централизует логи, добавляет фильтрацию, SQL-запросы, разделение экрана
00:04:27и алерты в 10-й версии, оставаясь при этом легким и понятным.
00:04:31Попробуйте его в следующем Docker-проекте и увидите, как быстро станут заметны ошибки.
00:04:35Если видео было полезным — подписывайтесь на контент для разработчиков.
00:04:39Увидимся в следующих роликах.

Key Takeaway

Dozzle представляет собой максимально быстрый и нетребовательный к ресурсам способ централизованной отладки Docker-контейнеров через браузер, заменяющий утомительную работу с множеством терминалов.

Highlights

Dozzle — это легковесный инструмент с открытым исходным кодом весом всего 7 МБ для мониторинга логов Docker в реальном времени.

Инструмент не требует базы данных и не хранит логи на диске, что обеспечивает высокую скорость работы и приватность.

В 10-й версии добавлены продвинутые функции: SQL-запросы через DuckDB, алерты и поддержка облачных конфигураций.

Настройка занимает меньше минуты и сводится к запуску одного контейнера с пробросом Docker-сокета.

Поддерживаются различные среды исполнения, включая Docker Swarm, Kubernetes и мультихостовые конфигурации через агентов.

Интерфейс предоставляет интеллектуальный поиск по контейнерам и автоматическую трансляцию логов без необходимости обновления страницы.

Timeline

Введение в Dozzle и его преимущества

Автор противопоставляет классический метод отладки через пять терминалов современному подходу с использованием одной вкладки браузера. Dozzle позиционируется как инструмент с открытым исходным кодом, который транслирует логи в реальном времени, практически не потребляя ресурсы. Благодаря отсутствию локального хранилища данных, приложение весит всего семь мегабайт и работает крайне быстро. В новой десятой версии разработчики добавили критически важные функции, такие как вебхуки, алерты и улучшенную безопасность. Этот раздел подчеркивает, что главная цель инструмента — обеспечить максимальную наглядность при разработке и экономить время инженеров.

Быстрая настройка и запуск

Процесс установки Dozzle демонстрируется как максимально упрощенный и занимающий менее 60 секунд. Для запуска достаточно скачать образ, примонтировать сокет Docker и пробросить необходимый порт, избегая сложных манипуляций с базами данных или индексацией. Автор также приводит пример конфигурации через Docker Compose, где важно не забыть про права доступа к сокету и флаг отключения аналитики. Основной акцент сделан на том, что после запуска пользователь сразу получает доступ к списку контейнеров через localhost. Это делает порог вхождения в использование инструмента минимальным даже для начинающих разработчиков.

Обзор интерфейса и живая отладка

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

SQL-режим, алерты и безопасность

Десятая версия Dozzle привнесла инновационный SQL-режим на базе DuckDB, позволяющий выполнять аналитические запросы прямо к потоку логов. Теперь разработчики могут использовать привычный синтаксис выборки записей вместо визуального поиска по тексту, что значительно ускоряет сложную отладку. Инструмент также поддерживает настройку условий мониторинга, например, уведомление в Slack при превышении нагрузки на CPU более чем на 80%. Особое внимание уделяется вопросам безопасности: при открытии доступа извне обязательно нужно настроить аутентификацию и файлы конфигурации пользователей. Для крупных инфраструктур упоминается возможность развертывания в Kubernetes через Helm-чарты или стандартные манифесты.

Заключение и выбор правильного инструмента

В финальной части автор четко разграничивает сферы применения Dozzle, указывая на то, чем этот инструмент не является. Поскольку Dozzle не хранит логи постоянно, он не подходит для долгосрочного аудита или построения исторических отчетов, для чего лучше использовать тяжеловесные стеки. Однако в качестве решения для живого анализа и оперативной отладки он назван одним из лучших благодаря своей легкости и функциональности. Основная идея заключается в том, что каждая минута, сэкономленная на переключении терминалов, — это время, направленное на решение реальных бизнес-задач. Зрителю предлагается протестировать Dozzle в своем следующем проекте, чтобы лично оценить скорость обнаружения ошибок.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video