상세보기 - Log

  • 메뉴 위치 : [컨테이너 맵] > [상세보기] > [로그]

쿠버네티스 로그에 대하여

쿠버네티스에는 다음과 같은 종류의 로그가 있습니다.

  • 각 컨테이너의 Standard Out (표준 출력) 로그

  • 각 컨테이너 내부에서 실행 중인 애플리케이션이 출력하는 로그

이러한 로그는 컨테이너의 상태나 메트릭 정보로는 확인하기 힘든 모니터링의 사각지대를 보완하는 역할을 합니다. 이러한 로그는 어떻게 확인할 수 있을까요?

  • 각 컨테이너의 Standard Out 로그의 경우는 컨테이너 내부에 진입하지 않아도 쿠버네티스가 제공하는 kubectl logs 명령을 통해 확인할 수 있습니다.

  • 각 컨테이너 내부의 애플리케이션 로그는 컨테이너 내부에 진입하여 확인하거나 별도의 로그 수집 방안을 수립해야 합니다.

로그 > 최근 로그 메시지 (컨테이너 Stdout/Stderr)

현재 컨테이너 로그를 바로 확인할 수 있는 기능입니다.

일반적으로 컨테이너 로그를 확인하기 위해서는 다음과 같은 명령어를 사용해야 합니다.

kubectl logs pod/<Pod명> -n <Namespace명>

만약 Pod 내에 2개 이상의 컨테이너가 존재한다면 로그를 확인하려는 개별 컨테이너를 지정해야 합니다.

kubectl logs pod/<Pod명> -c <컨테이너명> -n <Namespace명>

하지만 로그를 확인하기 위해 매번 터미널 화면에 접근하여 커맨드 라인 도구를 실행하는 것은 매우 불편합니다. 이 기능을 사용하면 편리하게 현재 로그를 확인할 수 있습니다.

whatap kubernetes container map log runtime
Figure 1. 로그 > 최근 로그 메시지

다만 생각해봐야 할 점이 있습니다. 우선 컨테이너를 종료하면 더 이상 로그를 확인할 수 없습니다. 또한 컨테이너가 계속 실행 중이더라도 일정 기간 또는 일정 용량의 로그만 확인할 수 있다는 단점이 있습니다. 와탭의 [최근 로그 메시지] 기능은 사용자 쿠버네티스 환경의 로그를 와탭을 통해 볼 수 있게 제공하는 기능으로 사용자 환경에서 사라진 로그는 와탭을 통해서도 확인하기 어렵습니다.

따라서 로그 데이터를 안정적이고 지속적으로 관리하기 위해서는 별도의 관리 방안이 필수적입니다. 특히 마이크로서비스 아키텍처 도입이 확산되면서 비즈니스를 구성하는 컨테이너 수량이 증가함에 따라 로그의 확인, 관리 방안은 더욱 복잡해지고 있습니다.

좋은 방법이 있을까요?

로그 > 로그 조회

와탭 로그 서비스를 통해 컨테이너 Standard Out 로그를 저장하면 원하는 만큼 저장 기간을 설정할 수 있고 특정 대상별 정보를 확인하거나 상호 연계 분석을 할 수 있습니다.

whatap kubernetes container map log search
Figure 2. 로그 > 로그 조회

와탭 로그 서비스를 활성화하고 컨테이너의 Standard Output 로그 저장 기능을 사용하면 그에 따른 추가 비용이 청구됩니다.

일부 구 버전 에이전트의 경우는 컨테이너 Standard Output 로그 저장 기능을 제공하지 않습니다. 에이전트 업그레이드 방법은 다음과 같습니다.

에이전트 업데이트
kubectl set image daemonset/whatap-node-agent whatap-node-agent=whatap/kube_mon:<에이전트버전> -n whatap-monitoring

와탭 쿠버네티스 에이전트 버전은 https://hub.docker.com/r/whatap/kube_mon/tags 를 통해 확인할 수 있습니다.

Standard Out 저장을 위한 노드 에이전트 설정 추가

와탭 로그 서비스를 통해 컨테이너의 Standard Output을 저장하기 위해서는 와탭 쿠버네티스 노드 에이전트에 logsink_enabled=true 설정을 추가해야 합니다. (와탭 쿠버네티스 노드 에이전트는 DaemonSet 형태입니다)

  • 와탭 콘솔 [에이전트 설정]을 통해 logsink_enabled=true 설정 추가

    • 쿠버네티스 프로젝트 전체 노드를 대상으로 설정을 추가하려면 [프로젝트 디폴트] → [노드] 대상으로 설정 추가

    • 일부 노드를 대상으로 설정을 추가하려면 단일 또는 복수 노드 선택 후 설정 추가

whatap kubernetes container map logsink enabled
Figure 3. 에이전트 설정 > 노드 에이전트 선택 > [+ 옵션 추가 ] > [모든 에이전트에 적용할 옵션 선택] > 적용 대상 노드 선택

와탭 로그 서비스 기능 사용

와탭 로그 서비스의 자세한 기능은 [로그 모니터링] 문서에 자세히 설명되어 있습니다.

로그 검색기 이동

로그 화면 우측의 버튼 클릭 시 로그 상세 확인을 위한 검색기 화면으로 이동합니다.

whatap kubernetes container map log button
Figure 4. 로그 검색기 이동 버튼