DBMS/AgensSQL

AEM-Monitor의 아키텍쳐 및 데이터 수집 방법

(주)비트나인 2023. 9. 7. 17:22

1. 개요

본 문서는 AEM-Monitor의 아키텍처 및 데이터 수집 방법에 대해 설명한다.

 

2. AEM-Monitor란?

AEM-Monitor는 AgensSQL의 데이터를 실시간으로 모니터링하는 도구이다. 사전에 정의된 데이터를 실시간으로 수집하고, 일정 기간에 한해 과거 데이터 조회가 가능하다. 실시간 대시 보드, 슬로우 쿼리 조회, 알람 설정이 가능한 모니터링 솔루션이다.

 

3. Architecture

AEM-Monitor은 Prometheus, Exporter, Backend, Frontend로 구성된다. 

1. Frontend

A. Frontend는 리액트 기반 웹서비스이며, JAVA Backend / prometheus와 통신한다. Frontend는 React query를 이용하여 설정된 시간마다 BackEnd / Prometheus에 요청을 보내 데이터를 가져온다. 수집 주기 설정이 가능한 실시간 대시보드, 슬로우 쿼리 조회, 알람 설정 및 조회 화면으로 구성된다.

2. Backend

A. Frontend에서 요청이 올 때마다 실시간으로 모니터링 대상 데이터베이스에 접근하여 SQL을 이용해 데이터를 수집한다.

3. Prometheus

A. Prometheus( 이하 프로메테우스)란 시계열 DB를 내장한 메트릭 수집, 시각화, 알림 등의 기능을 제공하는 오픈 소스 모니터링 시스템이다. pull 방식의 메트릭 수집, 시계열 데이터 저장, 전용 쿼리인 PromQl을 활용한 집계 등을 제공한다.

B. 프로메테우스는 단독적으로 사용하는 것이 아니라, Exporter라는 데이터 수집기를 이용한다. Exporter의 종류는 다양하게 있고, 개발자가 직접 만들어 사용할 수도 있다.

4. Exporter

A. AEM-Monitor에서는 postgresql_exporter / node_exporter 2가지를 사용한다.

ⅰ.postrgresql_exporter

     1. postgreSQL의 데이터를 수집하기 위한 Exporter이고, 기본적으로 다양한 메트릭을 제공한다. AEM-Monitor에서 수집하는 일부데이터는 커스텀 메트릭이다. point성 데이터를 query(SQL)을 메트릭으로 등록해두면 해당 데이터를 프로메테우스에서 수집하고 저장한다. 해당 exporter는 pg 데이터베이스에 접근이 가능하면 외부에서도 수집이 가능하다.

 

ⅱ.node_exporter

     1. os 메트릭 수집을 위한 exporter이다. AEM-Monitor에서는 CPU 사용량, 메모리 사용량, 디스크 정보 등 os에서 발생하는 데이터를 수집하기 위해 사용한다. 마찬가지로 메트릭을 통해 프로메테우스로 수집된다. 해당 exporter는 os(서버 / 머신)에서 발생하는 데이터를 수집하기 때문에 수집 대상 서버에 직접 설치/실행 되어야 한다.

 

4. 슬로우 쿼리 조회 기능

AEM-Monitor에서는 슬로우쿼리 조회 기능을 제공한다. 슬로우쿼리란 개별 쿼리의 수행시간이 1초 이상 걸렸을 경우 해당 쿼리를 기록하고, 해당 쿼리의 수행시간, 쿼리 정보 등을 제공한다. 시간을 설정해 조회가 가능하고, 조회시 그려지는 그래프의 x축은 쿼리가 실행된 시간, y축은 쿼리 실행시간(dutration)이다. 그래프를 드래그하여 사각형 영역을 선택할 수 있고, 사각형 영역안에 포함된 모든 슬로우쿼리 정보를 팝업을 통해 리스트로 조회 가능하다.

 

5. 알람

AEM-Monitor는 4가지 알람 설정 및 알람 발생시 조회가 가능하다. 

  1. CPU 사용량
  2. Memory
  3. Replication Delay
  4. Buffer cache ratio

위 4가지 데이터에 대해 퍼센트별 알람 설정이 가능하고, 해당 임계값을 초과 또는 미만의 수치가 수집될 경우 대시보드의 우측에 알람 아이콘에 빨간 불이 들어오고, 클릭시 알람이 발생한 데이터에 대해 조회 가능하다.

 

6. 향후 계획

AEM-Monitor는 차후 버전에서 다음과 같은 기능을 제공하면 더욱 완성도 높은 툴이 될 것 이라 생각된다.

1. 대시보드 편집     A. 대시보드 위젯의 크기, 배치 등을 사용자가 편집하고 저장할 수 있는 기능

2. 수집 데이터 항목 커스터마이징

     A. 현재는 고정된 데이터만 수집하는 구조이다. 사용자가 원하는 수집 데이터를 등록, 제거할 수 있는 기능이 필요하다.

 

3. 알람 항목 커스터마이징

     A. 현재는 고정된 데이터만 알람 설정이 가능한 구조이다. 사용자가 원하는 알람 항목을 등록, 제거할 수 있는 기능이 필요하다.

 

 

글 : 오신엽 선임 ( 비트나인 R&D Lead팀 )