와탭 블로그

전체보기

모니터링 초보자를 위한 '모니터링이란'

2019년 6월 25일

blog_35_main
모니터링이란

모니터링(Monitoring)이란 어떤 대상을 감시, 관찰한다는 뜻으로 모니터링의 목적은 지속적인 감시, 감찰을 통해 대상의 상태나 가용성, 변화 등을 확인하고 대비하는 것입니다. 즉 "어떤 대상의 상태나 상황을 지속적으로 감시, 관찰하여 예기치 못한 상황과 오류를 대비하고 극복한다."라고 할 수 있습니다. 특히 IT 서비스 분야에서는 기본적으로 미리 계획되어 한정된 비용과 리소스를 가지고 서비스를 제공하기 때문에 사용자 경험을 중요시하는 IT 서비스에서는 그 서비스가 어떤 환경에서 운영되든 모니터링의 중요성은 결코 낮을 수가 없습니다. 특히 확장성과 유연성을 가진 클라우드 플랫폼에서는 지속적인 모니터링을 통해 수집된 데이터를 기반으로 시스템 규모의 확장과 축소를 빠르게 결정해야 하기 때문에 더욱더 중요합니다.

그럼 모니터링의 의미인 "어떤 대상의 상태나 상황을 지속적으로 감시, 관찰하여 예기치 못한 상황과 오류를 대비하고 극복한다."를 중점으로 와탭을 이용해 하나씩 풀어가며 어떤 중요 지표와 데이터 기록들이 제공되고 있는지 살펴보겠습니다.

모니터링 대상

그룹
blog_35_0 그룹에 생성된 프로젝트들

와탭에서는 모니터링 대상을 그룹화 할 수 있습니다. 대규모 분산 처리 시스템에서 서비스 규모 증가로 복잡도 높은 분산 처리 시스템에서 모니터링을 구성하고 구분하는데 어려움을 겪을 수 있는데 와탭에서 그룹을 생성하고 여러 프로젝트를 생성하여 원하는 모니터링 대상을 등록할 수 있는 구조로 제공하고 있습니다. 원하는 그룹에 다른 사용자를 초대하여 그룹을 공유할 수도 있고 권한을 설정하여 프로젝트 수정 권한을 제한할 수 있습니다.

프로젝트
blog_35_1 프로젝트 생성시 선택할 수 있는 프로젝트 타입들

프로젝트 생성 시 고유의 프로젝트 코드(PCODE)가 지정되며 PCODE는 프로젝트를 구분하는 숫자입니다. 프로젝트 생성시 선택할 수 있는 프로젝트 타입은 총 12개이며 URL 타입을 제외한 나머지 타입들은 동일한 타입의 프로젝트를 1개 이상 생성할 수 있습니다. 각 유형에 맞는 대상을 원하는 프로젝트에 등록할 수 있습니다. 하나의 프로젝트에는 동일 타입을 가진 여러 모니터링 대상들이 등록될 수 있습니다. 예를 들어 'myServer'라는 이름을 가진 java 타입의 프로젝트를 생성하면 이 프로젝트에 여러 개의 java 기반 WAS 서버들을 등록할 수 있습니다. 그리고 프로젝트 생성시 모니터링 데이터를 수집하는 와탭 수집 서버들의 지리적 위치(리전)를 원하는 곳으로 지정할 수 있습니다. (예:서울, 도쿄 등..)

설정

프로젝트를 생성하고 들어가면 모니터링 대상이 될 서버나 애플리케이션에 맞는 에이전트 설치 파일과 설치 방법이 나와 있습니다. 프로젝트에서 에이전트 라이선스를 발급받아 매뉴얼에 따라 설정을 진행합니다. 라이선스를 기반으로 대상은 본인이 속한 프로젝트를 찾아갑니다. 모니터링될 서버나 애플리케이션에 대한 자세한 정보와 설치 방법은 와탭 가이드에 자세히 나와 있습니다.

대상의 상태나 상황을 지속적으로 확인

사용자가 모니터링에서 가장 먼저 보게 되는 첫 화면인 대시보드에서는 사용자의 기본적인 궁금증을 해소할 수 있어야하고 결정적인 데이터를 직관적인 지표로 보여줘야 합니다. 또한 여러 서버에서 보내지는 데이터를 보여줄 때는 대상의 상황의 변화를 지속적으로 보여줄 수 있어야 합니다.

서버 모니터링의 대시보드
blog_35_2 와탭 서버 모니터링 대시보드

서버 모니터링의 대시보드를 예로 설명하자면, 서버 모니터링에서 가장 중요한 리소스인 CPU, 메모리 디스크에 관한 지표들을 보여주고 있습니다. 해당 프로젝트에 등록된 총 서버 수와 전체 코어 수, 평균적인 리소스 사용량 등을 지속적으로 보여줍니다. 리소스 점유율이 높은 프로세스 5개를 순서대로 보여주어 어떤 서버에서 어떤 프로세스의 CPU와 메모리 점유율이 높은지 보여줍니다. 또한 프로젝트에서 사용자가 설정한 이벤트 정책을 기준으로 발생한 최근 이벤트 5개도 보여줍니다.

대시보드에서 핵심인 CPU 리소스 맵은 대시보드에서 가장 큰 화면을 차지하고 있습니다. 직관적으로 서버들의 상태를 바로 알 수 있게 해주는 지표입니다. 가로축은 시간, 세로축은 CPU 점유율을 의미합니다. 최근 10분 동안의 CPU 점유율 변화를 보여주고 5초 주기로 데이터가 계속 갱신됩니다. 특정 셀이 진하게 표시되면 그 시간대에 해당 점유율을 가졌던 서버들이 많았다는 뜻입니다. 이러한 방식으로 리소스 맵 전체를 한번 보는 것만으로 빠르게 전체 서버들의 포화 상태를 알 수 있습니다. 원한다면 마우스로 드래그해서 원하는 영역에 해당하는 서버들의 상세 정보와 상세 지표를 볼 수도 있습니다.

안정적이지만 시스템 요청이 거의 없거나 과한 성능을 가진 형태
부하를 대비해 놓은 시스템을 가진 형태
클라우드 플랫폼을 이용한 시스템의 상태

최근 10분 동안 5% 미만의 셀이 많이 분포하고 있다면 서버들의 CPU 처리량이 적다는 것을 의미합니다. 반면 셀이 지속적으로 100% 점유율에 가깝게 계속해서 분포되고 있다면 특정 서버나 다수의 서버들이 포화 상태에 있어 응답 지연이 일어날 수 있으므로 엔지니어 개입이 필요한 상황입니다.

필요할 때는 프로젝트에서 '서버 상세 정보 보기' 페이지에 CPU, Disk, Network의 구체적인 데이터들을 확인할 수 있습니다. 자세한 건 서버 모니터링 서비스 가이드에서 볼 수 있습니다.

JAVA 애플리케이션 모니터링의 상세 분석
blog_35_3 와탭 Java 애플리케이션 대시보드

애플리케이션 모니터링의 대시보드 역시 꼭 필요한 지표들을 직관적으로 보여주며 시스템 전체 현황을 파악할 수 있게 구성되어 있습니다. 애플리케이션 모니터링은 지표상에 에러가 발생하거나 지연 현상이 나타날 때 이를 빠르게 분석하기 위한 프로파일을 제공합니다. 예로 히트맵에서 주황색으로 표시된 셀이나 처리 시간이 지나치게 높은 선상에 위치한 셀을 드래그하면 프로파일을 볼 수 있는 히트맵 트랜잭션 페이지로 이동합니다.

클라이언트의 요청을 서버에서 받아 처리하고 다시 돌려주기까지를 트랜잭션이라 합니다. 트랜잭션 과정에서 데이터베이스와 연결하기 위한 과정이나 데이터베이스 요청을 기다리거나, API 요청, 내부 메서드나 처리, 다른 트랜잭션과 연계되는 등 복잡한 과정이 숨어 있고 이를 분석하기엔 쉽지 않습니다. 이러한 과정에서 트랜잭션의 요청 시간이 특정 구간에서 지나치게 오래 걸리거나, 실패하는 등 예기치 못한 상황이 발생했을 때 정확한 분석을 위해서는 상세 정보를 봐야만 합니다. 또한 트랜잭션이 다른 서버로 전이되고 이에 대한 처리도 분석할 수 있어야하는 복잡한 상황도 생길 수 있습니다.

blog_35_4 트랜잭션 상세보기 페이지

와탭에서는 위 이미지와 같이 해당 요청을 처리하기 위한 클라이언트 정보부터 서버에서 소요된 시간, SQL 처리 시간, 쿼리 정보 등 상세 정보를 볼 수 있습니다. 또한 '액티브 스택'으로 함수 호출 기록이나, 멀티 트랜잭션으로 처리의 전이 과정을 볼 수 있습니다. 이러한 정보들은 에러를 빠르게 처리하게 하고 성능을 개선하기 위한 핵심 지표의 기준이 됩니다.

애플리케이션 모니터링에서 구체적으로 어떤 데이터를 볼 수 있는지는 애플리케이션 모니터링 서비스 가이드에서 확인할 수 있습니다.

예기치 못한 상황과 오류를 대비하고 극복

예기치 못한 상황과 오류가 발생하면 다양한 방법으로 엔지니어에게 알려야 합니다. 그리고 이런 상황과 오류는 사람이 개입하거나 자동화하여 극복하여야 합니다. 그런데 모니터링 대상이 되는 대상의 서비스는 다양하기 때문에 서비스마다 정한 임계치가 다를 수 밖에 없고 엔지니어에게 필수로 알려야 할 에러의 중요도 또한 다릅니다. 무엇보다 지나치게 빈번한 호출은 엔지니어에게 피로를 느끼게 하고 이에 익숙해져 중요한 알림조차 무시할 수 있는 상황이 생길 수 있습니다.

blog_35_5 서버 모니터링 이벤트 상세 설정

와탭에서는 이벤트(알림)에 대한 조건을 상세화할 수 있습니다. 서버 모니터링에서의 이벤트 대상은 서버 리소스들, 프로세스, 로그파일입니다. 예를 들어 CPU 점유율이 70~80% 사이에서 5분 이상 머물고 있을 때는 '경고'로 이벤트를 발생시키지만, 81~100% 상태가 10분 이상 지속될 때는 '위험' 이벤트를 발생시킵니다. 이벤트는 사용자가 지정한 이메일이나 SMS, 텔레그램 등을 통해 전송됩니다.

로그 이벤트에서는 지정한 로그 파일에서 특정 키워드가 감지되었을 때, 사람의 개입이 필요하지 않고 자동화 할 수 있는 상황이라면 스크립트 경로를 지정하여 대응할 수 있습니다.

마무리

모니터링 의미를 생각해보며 모니터링에서 중요한 부분과 핵심 지표들을 와탭 모니터링을 이용해 간략하게 정리 해보았습니다. 모니터링을 함으로써 얻을 수 있는 결과는 다양하지만 주로 서비스의 트렌드를 분석, 문제 원인 발견과 분석, 대응, 시스템 성능 분석에 대한 결과를 얻을 수 있습니다.

모니터링을 해본 적이 없으시다면 와탭 SaaS 서비스를 이용하여 쉽게 모니터링 대상을 등록하고 원하는 지표들을 수집하여 볼 수 있습니다. 와탭에서는 다양한 방식으로 모니터링 지표들을 최대한 쉽게 볼 수 있도록 하고 있으니 와탭 모니터링에 대한 개념을 배워보는 것도 좋을 것 같습니다. 자세한 기능과 설정 방법들을 알고 싶으시다면 와탭 가이드에서 찾아봐 주시길 바랍니다.

whatap_taehoon_kim
김태훈(taehoon@whatap.io)
Pre-sales Consulting TeamPre-sales Engineer
<  이전 글

다음 글  >

최신글