Log
홈 화면 > 프로젝트 선택 > 대시보드 > 컨테이너 맵 > 대상 선택 후 상세 분석 화면 진입 > 로그
쿠버네티스 로그
와탭 쿠버네티스 모니터링 서비스는 쿠버네티스에서 발생하는 로그를 수집하고 저장합니다.
쿠버네티스는 다음 두 종류의 로그가 있습니다.
-
각 컨테이너의 Standard Out(표준 출력) 로그
-
각 컨테이너 내부에서 실행 중인 애플리케이션이 출력하는 로그
이러한 로그는 컨테이너의 상태나 메트릭 정보로는 확인하기 힘든 모니터링의 사각지대를 보완하는 역할을 합니다. 이 로그를 확인하는 방법은 다음과 같습니다.
-
각 컨테이너의 Standard Out 로그의 경우는 컨테이너 내부에 진입하지 않아도 쿠버네티스가 제공하는
kubectl logs
명령을 통해 확인할 수 있습니다. -
각 컨테이너 내부의 애플리케이션 로그는 컨테이너 내부에 진입하여 확인하거나 별도의 로그 수집 방안을 수립해야 합니다.
최근 로그 메시지 (컨테이너 Stdout/Stderr)
현재 컨테이너 로그를 바로 확인할 수 있는 기능입니다. 사용자의 클러스터 환경에서 직접 로그를 가져와 선택한 컨테이너의 실시간 로그 또는 선택한 Pod 내 애플리케이션의 실시간 로그를 확인할 수 있습니다. 일반적으로 컨테이너 로그를 확인하기 위해서는 다음 명령어를 사용합니다.
kubectl logs pod/<Pod명> -n <Namespace명>
Pod 내에 2개 이상의 컨테이너가 존재한다면 개별 컨테이너를 선택해 로그를 확인합니다.
kubectl logs pod/<Pod명> -c <컨테이너명> -n <Namespace명>
로그를 확인하기 위해 매번 터미널 화면에 접근해 커맨드 라인 도구를 실행하는 것은 매우 불편합니다. 와탭 쿠버네티스 모니터링의 로그 기능을 사용하면 편리하게 현재 로그를 확인할 수 있습니다.
다만 생각해봐야 할 점이 있습니다. 우선 컨테이너를 종료하면 더 이상 로그를 확인할 수 없습니다. 또한 컨테이너가 계속 실행 중이더라도 일정 기간 또는 일정 용량의 로그만 확인할 수 있다는 단점이 있습니다. 와탭의 최근 로그 메시지(컨테이너 Stdout/Stderr) 기능은 사용자 쿠버네티스 환경의 로그를 와탭을 통해 볼 수 있게 제공하는 기능으로 사용자 환경에서 사라진 로그는 와탭을 통해서도 확인하기 어렵습니다.
따라서 로그 데이터를 안정적이고 지속적으로 관리하기 위해서는 별도의 관리 방안이 필수적입니다. 특히 마이크로서비스 아키텍처 도입이 확산되면서 비즈니스를 구성하는 컨테이너 수량이 증가함에 따라 로그의 확인, 관리 방안은 더욱 복잡해지고 있습니다.
좋은 방법이 있을까요?
로그 검색
컨테이너 종료 시 관련 로그가 모두 사라지지만 로그 검색 기능을 통해 선택한 컨테이너 또는 Pod에서 과거에 발생한 로그를 확인할 수 있습니다. 컨테이너 Standard Out 로그 저장 시 원하는 만큼 저장 기간을 설정할 수 있고 특정 대상별 정보를 확인하거나 상호 연계 분석을 할 수 있습니다.
-
시간 선택자를 통해 데이터 조회를 원하는 시점을 선택할 수 있습니다.
-
왼쪽 카테고리 옵션을 통해 카테고리를 지정해 조회할 수 있습니다. 조회할 수 있는 카테고리에 대한 설명은 다음의 블록과 그룹 안내를 참조하세요.
-
오른쪽 태그 숨기기를 선택하면 로그 기록 중 태그 정보를 제외한 타임스탬프와 메시지를 확인할 수 있습니다.
-
오른쪽 로그 검색 버튼을 클릭하면 필터 기능 등을 통해 상세 조회할 수 있는 로그 > 로그 검색 메뉴로 이동합니다.
-
더보기 아이콘을 선택하면 해당 로그의 파싱된 키와 값 및 로그 메시지를 확인할 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.
일반 블록과 마이크로 블록
-
일반 블록
컨테이너 맵의 다각형 하나를 블록이라고 합니다. 로그의
containerStdout
카테고리에서containerid
가 일치하는 정보를 확인할 수 있습니다. -
마이크로 블록
에이전트가 설치된 블록을 마이크로 블록이라고 합니다.
containerStdout
카테고리 뿐 아니라AppLog
,AppStdOut
,AppStdErr
등App*
관련 카테고리도 확인할 수 있습니다. 해당 카테고리를 선택할 경우microOid
(블록 내 에이전트 id)가 일치하는 로그 정보를 확인할 수 있습니다.
그룹
컨테이너 맵 화면에서 전체 블록을 선택한 경우 혹은 상세 보기 화면의 카드에서 블록을 다중 선택한 경우 해당 다중 블록을 그룹이라고 합니다. 그룹 선택 시 로그 검색 탭에서 containerStdout
카테고리와 App*
카테고리의 모든 로그를 확인할 수 있습니다.
Standard Out 저장을 위한 노드 에이전트 설정 추가
와탭 로그 서비스를 통해 컨테이너의 Standard Output을 저장하기 위해서는 와탭 쿠버네티스 노드 에이전트에 logsink_enabled=true
옵션을 설정해야 합니다. 설정 및 와탭 로그 모니터링 서비스에 대한 자세한 내용은 다음 문서를 참조하세요.
컨테이너 내부 애플리케이션 로그 수집을 위한 애플리케이션 에이전트 설정 추가
와탭 로그 서비스를 통해 컨테이너 상에서 실행되는 애플리케이션의 로그를 수집하려면 다음 문서를 참조하세요. Java, Python, Go를 지원합니다.
와탭 로그 서비스를 활성화하고 컨테이너의 Standard Output 로그 저장 기능을 사용하면 그에 따른 추가 비용이 청구됩니다. 관련한 요금에 대한 자세한 내용은 다음 문서를 참조하세요.
일부 구 버전 에이전트의 경우는 컨테이너 Standard Output 로그 저장 기능을 제공하지 않습니다. 에이전트 업그레이드 방법은 다음과 같습니다.
kubectl set image daemonset/whatap-node-agent whatap-node-agent=whatap/kube_mon:<에이전트버전> -n whatap-monitoring
와탭 쿠버네티스 에이전트 버전은 다음 문서를 통해 확인할 수 있습니다.