REMON – 레디스 모니터링 솔루션(Redis Monitoring Solution)

최근 NoSQL의 사용이 늘어나고 있습니다. NoSQL은 Not Only SQL의 약자로 기존 RDB(Relational Database)의 ACID(Atomicity, Consistency, Isolation, Durability) 특성보다 BASE(Basically Available, Soft State, Eventually Consistent) 특성을 추구하는 데이터베이스를 말합니다. NoSQL은 비정형의 초고용량 데이터를 빠르게 처리하고자 할 때 기존의 RDB보다 뛰어난 성능을 보여주기 때문에 최근 소셜 미디어 등 비정형 데이터를 다루는 곳에서 광범위하게 사용되고 있습니다. 이렇게 NoSQL을 널리 사용하게 되면서 함께 대두된 것이 시스템 상에 새롭게 발생하는 장애 포인트에 대한 적절한 모니터링입니다.

여기서는 레디스에 대한 멀티 인스턴스 모니터링을 제공하는 REMON이라는 솔루션을 통해 어떻게 레디스에 대한 모니터링을 수행할 수 있는지 살펴보겠습니다.

⒈ REMON 이란?

Redis Multi-instance Monitoring 의 약자로 이름에서 보면 알 수 있듯이 Redis 데이터베이스의 상태를 모니터링하여 사용자에게 Redis 인스턴스들이 정상적으로 작동되고 있는지 한눈에 볼 수 있도록 편리기능을 지원하는 소프트웨어입니다.

정보의 수집은 Agent를 통해 일어나는데 Redis뿐만 아니라  OS의 정보도 수집할 수 있어서 현재 OS의 리소스를 얼마나 사용하고 있는지 또한 알 수 있습니다.

이렇게 일정 주기마다 수집하는 정보를 바탕으로 Redis나 OS에 문제가 생겼을경우 빠르게 파악하고 대응이 가능하도록 하는 솔루션입니다.

⒉ Remon의 주요 구성 요소

REMON 아키텍처

(1) Agent(에이전트)

Agent는 OS의 자원(CPU 및 메모리 사용량, 네트워크 속도, 디스크 상태)과 Redis 인스턴스의 정보(Keyspace 히트율, 사용하는 메모리 등)를 수집하여 로그를 일정 주기(SCN, default 20sec)에 따라 DB에 적재합니다.

수집된 로그는 메시지로 변환되어 콘솔 화면에서 어떤 시점에 어떤 알람이 발생했는지 볼 수 있으며, 자료가 방대하다면 항목을 필터링하여 부분적으로 보는 기능도 제공됩니다.

REMON 로그 화면

(2) Syncer

Syncer는 Agent 동기화 관리, cluster 투표, SCN(System Change Number) 번호를 생성합니다. SCN 생성 주기는 설정 정보 변경을 통해 초단위로 설정할 수 있습니다. 다만 SCN 주기를 1초로 설정하게 되면 초마다 Read/Write 과정이 일어나므로 실시간 시스템이 아니라면 적절히 조정하여 사용하는 것을 권장드립니다.

(3) Web Client

사용자가 모니터링할 때 시각적으로 데이터를 볼 수 있는 웹 환경 클라이언트입니다. 아래 화면은 REMON 의 메인화면으로 OS와 Redis의 요약 정보를 볼 수 있습니다. 상세 정보를 모니터링 하고 싶다면, 모니터링 대상의 Redis 인스턴스, OS, Cluster 바로가기를 선택하시면 선택된 인스턴스의 자세한 모니터링 정보들이 표시 됩니다.

REMON 웹 클라이언트 화면

⒊ 주요 기능 및 특장점

(1) Matrix View

Remon의 가장 큰 장점은 여러대의 Redis 인스턴스의 실행 상태를 한 화면에 볼 수 있는 Matrix View가 제공된다는 점이다. 운영 환경에서는 Redis 하나하나 모니터링 하기보다 전체 인스턴스를 보며 이상현상이 생긴 인스턴스를 대응합니다.

Matrix View에서는 그룹별로 묶어서 모니터링이 가능합니다. 만약 다른 계열사의 Redis 인스턴스까지 모니터링하고 싶다면 DB에 인스턴스에 대한 정보만 추가해주면 됩니다. (단, Syncer와 연결이 가능한 네트워크 망 이어야합니다.)

REMON 매트릭스 뷰 화면

(2) CPU의 부하가 적다

1코어 기준 Agent 부하가 평균 2% 미만으로 리소스 사용량이 적은편 입니다.

REMON 매트릭스 뷰 – 개별 서버 상태

(3) 임계치 알림 및 빠른 이동 지원

REMON 소프트웨어에는 임계치 설정 메뉴에서 CPU, Memory 사용량 뿐만 아니라, 다양한 항목들에 대한 임계치를 부여할 수 있는 서비스가 존재합니다. 동적옵션(Delta)에도 알람을 설정할 수 있어 이전 SCN과 비교하여 갑자기 크게 변화한 이상수치가 있으면 즉시 탐지할 수 있습니다.

CPU 사용량 임계치 설정에 따른 장애 알림

설정한 임계치가 넘어가는 값이 발견 될 경우 설정 이후 다음 주기부터 알림을 발생시킵니다. 평소에 Matrix View 를 띄워둔 상태로 모니터링 하다가 알람이 발생했을때 클릭으로 알람이 발생한 인스턴스로 빠른 이동이 가능합니다.

앞에서 REMON을 통한 레디스 서버의 시스템 모니터링과 장애 탐지, 장애 알림 등을 살펴보았습니다. 레디스는 그 빠른 속도와 안정성 때문에 웹 서비스의 세션 서버나 모바일 게임 서버의 캐시 서버, API 서버 등 다양한 분야에서 사용되고 있습니다. 레디스 서버 자체가 마스터-슬레이브 구조를 제공하고 센티널 기능 등으로 높은 안정성을 제공하고 있지만 이를 관리, 운용하는 측면에서는 좀 더 편리한 모니터링 솔루션이 필요합니다. 그래프 기반의 대시보드가 제공되어 즉시성이 있는 현황 모니터링이 가능하고 다양한 지표에 대한 임계치 설정을 시스템 운영자가 직접 조정할 수 있어 적절한 수준의 장애 탐지가 가능한 솔루션의 필요성은 매우 높다고 하겠습니다. 따라서 REMON과 같은 솔루션을 사용할 경우 레디스 서버에 대한 보다 안정적인 관리 및 운영이 가능하다고 하겠습니다.

REMON의 도입 및 활용을 검토하고자 하시는 분들은 아래 연락처로 문의 가능합니다.

· 주소 : 서울특별시 마포구 월드컵북로 396, 누리꿈스퀘어 비즈니스타워 8층 (주)씨에스리
· 전화번호 : 02-307-0182
· E-mail : sypark@cslee.co.kr