00:00:00터미널 5개를 띄워놓고 끝없이 스크롤하며 도커를 디버깅할 수도 있겠죠.
00:00:04아니면 브라우저 창 하나만 열고 모든 컨테이너 로그를 실시간으로 볼 수도 있습니다.
00:00:08이것이 바로 Dozzle입니다.
00:00:10컨테이너 로그를 브라우저로 실시간 스트리밍해 주는 오픈 소스 로그 뷰어로,
00:00:13로그를 실제로 저장하지는 않습니다.
00:00:15그래서 크기가 7MB 정도로 매우 작고 빠릅니다.
00:00:19지금 바로 어떻게 설정하고 실무에 활용하는지 알아보겠습니다.
00:00:22[음악]
00:00:28보통 터미널을 3개나 5개쯤 열어놓고 계실 겁니다.
00:00:30각 창에서 docker logs 명령어를 실행하고 있죠.
00:00:32스크롤하고, 검색하고, 탭을 전환하면서요.
00:00:35그게 컨테이너 작업에 드는 일종의 비용이었습니다.
00:00:37이제 Dozzle을 쓰면 거창한 로깅 스택을 구축하지 않고도
00:00:41한곳에서 모든 것을 실시간으로 간편하게 볼 수 있습니다.
00:00:43Docker, Docker Swarm, Kubernetes를 지원하며
00:00:46에이전트를 사용한 멀티 호스트 구성도 가능합니다. 게다가 버전 10이 막 출시되었죠.
00:00:50여기에는 알림, 웹훅, 클라우드 지원과 중요한 보안 업데이트가 추가되었습니다.
00:00:54디버깅 중 실시간 가시성을 확보하는 한 가지 목적에만 집중한 툴입니다.
00:00:57이제 설정 방법과 함께 왜 이 툴이
00:00:59도커 앱 디버깅 방식을 완전히 바꿀 수 있는지 보여드리겠습니다.
00:01:02개발 워크플로우에서 시간을 절약하고 싶다면 구독해 주세요.
00:01:06실질적인 변화를 만들어 줄 유용한 도구들을 계속 소개하고 있습니다.
00:01:09Dozzle이라는 이름만 들으면 또 다른 로깅 툴처럼 들릴 수 있습니다.
00:01:12데이터를 저장하고, 무겁고,
00:01:15데이터베이스가 필요한 그런 것 말이죠. 하지만 이건 정반대입니다.
00:01:1960초 안에 설정을 끝내보죠.
00:01:22먼저, 화면에 보이는 명령어로 이미지를 내려받습니다.
00:01:26실행하면서 도커 소켓을 마운트하고 포트를 노출하면 끝입니다.
00:01:30데이터베이스도, 인덱싱도 없고 기다릴 필요도 없습니다.
00:01:33저는 이미 다른 컨테이너를 실행 중이라
00:01:37기본 포트 대신 다른 포트로 변경했습니다.
00:01:39이제 브라우저를 열고 localhost에 접속하면
00:01:42실행 중인 컨테이너들이 즉시 보입니다.
00:01:44설정 단계에서 예상되는 번거로움이 전혀 없습니다.
00:01:47그냥 아주 잘 돌아갑니다.
00:01:49Docker Compose를 쓴다면 이미지가 포함된 서비스를 정의하고, 포트 맵핑,
00:01:53도커 소켓 마운트 후 'no analytics' 플래그를 추가하세요.
00:01:56그러고 나서 docker-compose up을 실행하면 완료됩니다.
00:01:59주의할 점은 소켓 권한 확인과
00:02:02최신 업데이트를 위해 버전 10 이상을 사용하는 것뿐입니다.
00:02:07이게 설정 과정의 전부입니다.
00:02:08특별할 건 없지만, UI와 실용성은 정말 대단합니다.
00:02:13이제 어떤 점이 좋은지 감이 오실 겁니다.
00:02:16Dozzle을 열면 실행 중인 모든 컨테이너 목록이 깔끔하게 보입니다.
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에서는 DuckDB 기반의 SQL 모드도 지원합니다.
00:02:58터미널에서 모드를 전환하고 데이터 조회 같은 쿼리를 실행할 수 있습니다.
00:03:03지금 보여드리는 건 매우 기초적이지만, 쿼리를 만들면
00:03:05그 결과가 Dozzle에 바로 반환됩니다.
00:03:07대략 어떤 느낌인지 아시겠죠?
00:03:09이제 눈으로 로그를 훑는 대신 쿼리로 찾을 수 있는 겁니다.
00:03:13CPU 사용량이 80%를 넘는 것과 같은 조건을 설정하고
00:03:17Slack이나 다른 엔드포인트에 웹훅을 연결할 수도 있어
00:03:20훨씬 더 대화형으로 느껴집니다.
00:03:22이것이 최신 업데이트에 포함된 기능 중 하나입니다.
00:03:24로컬 환경 외부로 이 툴을 노출하기 전에는
00:03:27반드시 인증 기능을 활성화하세요.
00:03:29환경 변수를 설정하고
00:03:31사용자 설정 파일을 제공해 접근 권한을 보호해야 합니다.
00:03:35Kubernetes의 경우 Manifest나 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하지만 컨테이너를 분석하는 실시간 스트리밍 방식으로는
00:04:11이 오픈 소스 도구가 꽤 괜찮다고 생각합니다.
00:04:13터미널을 전환하고 로그를 훑는 데 쓰는 매 분 매 초는
00:04:15정작 문제 해결에는 쓰지 못하는 시간입니다.
00:04:18Dozzle은 최소한 그런 낭비를 확실히 줄여주는 것 같습니다.
00:04:22로그를 중앙 집중화하고 필터링, SQL 쿼리, 분할 뷰를 제공하며
00:04:27버전 10에서는 알림 기능까지 추가되면서도 무겁거나 복잡해지지 않았습니다.
00:04:31다음 도커 프로젝트에 설정해 보세요. 얼마나 빨리 문제를 찾는지 확인해 보시고요.
00:04:35도움이 되셨다면 구독을 통해 더 많은 개발 관련 콘텐츠를 만나보세요.
00:04:39그럼 다음 영상에서 뵙겠습니다.