클라우드 네이티브 어플리케이션은 클러스터와 컨테이너 기술을 사용합니다. 클러스터는 인프라와 컨테이너 관리를 담당하고, 컨테이너는 어플리케이션 배포와 실행을 담당합니다. 따라서 모니터링 대상도 기존 어플리케이션과 차이가 있습니다.
클러스터는 노드(Node)로 구성 됩니다. 노드는 CPU, Memory, Disk를 가진 컴퓨팅 머신으로 운영체계(OS)와, 컨테이너를 실행하는 런타임(Container Runtime)이 있습니다. 따라서 컨테이너 실행에 필요한 물리적 자원 사용량과 성능 모니터링은 노드에서 데이터(모니터링에서는 매트릭이라 합니다.)를 수집해서 합니다.
컨테이너 관리는 쿠버네티스가 담당합니다. 쿠버네티스는 다수의 컴포넌트로 구성되며, 클러스터의 마스터 노드에 설치 됩니다. 쿠버네티스 장애가 발생하면, 컨테이너 관리를 할 수 없어, 마스터 노드와 설치된 컴포넌트도 모니터링이 필요 합니다. 마스터 노드의 자원 사용량, 컴포넌트의 상태 등을 모니터링 합니다.
클러스터의 각 노드와 컨테이너는 서로 통신을 합니다. 이 통신은 물리적인 네트워크와 쿠버네티스가 제어하는 논리 네트워크를 통합니다. 네트워크의 사용량 모니터링은 이 두 영역을 대상으로 합니다.
클러스터 모니터링은 컨테이너 실행에 필요한 인프라 자원을 대상으로 합니다. 반면 컨테이너 모니터링은 자원 사용량 뿐 아니라 실행 상태, 수명주기를 모니터링 합니다. 또한 컨테이너 간 통신량, 지연 시간 같은 요청부터 처리까지 과정도 모니터링 합니다.
컨테이너 모니터링은 쿠버네티스 API와 서비스 매시(컨테이너 간 통신 구성) API에서 매트릭을 제공합니다.
알림은 모니터링 매트릭 데이터가 일정 조건이 되었을 때 발생합니다. 이 조건을 알림 규칙(Rule)이라 합니다. 알림 규칙은 기본 제공되는 것 이외에 사용자가 설정 할 수 있습니다.
이벤트는 쿠버네티스 리소스 변경 시 발생합니다. 예를 들어 파드 생성, 실행, 업데이트, 삭제가 있습니다. 칵테일 클라우드에서는 이벤트를 수집하여 알림으로 제공합니다.
알림과 이벤트 모두 운영 중 발생하는 정보로, 어플리케이션과 클러스터의 상태와 장애 발생 전 대비를 할 수 있게 도와 줍니다.
쿠버네티스의 로그는 크게 3가지 유형이 있습니다. 먼저 쿠버네티스 마스터가 기록 하는 로그로, 마스터 운영에 필요한 정보를 제공합니다. 다음으로 컨테이너 로그로, 컨테이너 실행 시 표준 출력(STDOUT/STDERR)에 표시되는 로그입니다. 마지막으로 어플리케이션 로그로, 컨테이너에서 표준 출력 외에 별도 파일로 기록하는 로그입니다.
칵테일 클라우드는 세가지 유형의 로그를 모드 수집하여, 조회/분석 할 수 있는 환경을 제공합니다.