개발자 / 네트워크

인플럭스DB를 이용해 텔레메트리 모니터링 확장하기

Sam Dillard | InfoWorld 2021.12.06
소프트웨어 애플리케이션에 대한 사용자의 기대치는 계속 높아진다. 요즘 서비스는 365일 24시간 안정적으로 돌아가는 것이 당연시된다. 다운타임은 어떤 종류든 장기적으로 사용자 불만과 비즈니스 손실로 이어진다.
 
ⓒ Getty Images Bank

안정성 개선에서 중요한 요소는 애플리케이션 모니터링이다. 기본적인 모니터링을 설정하기는 쉽지만 서비스에 대한 트래픽 증가에 맞추어 효율적으로 모니터링을 확장하기는 상당히 어렵다. 또한 서비스의 모든 중요한 지표에 대한 가시성을 확보해야 하고, 필요에 따라 실시간으로, 효율적으로 데이터를 질의하고 분석해 수집하는 데이터에서 유용함과 실행 가능성도 확인해야 한다.

간단히 말해 부차적인 프로젝트나 소규모 시스템을 다루며 마주치는 문제와 프로덕션 환경에서 텔레메트리 모니터링을 대규모로 구축하는 과정에서 직면하는 문제는 전혀 다르다.

이런 가운데 시스코의 한 팀이 실험적으로 인플럭스DB(InfluxDB)를 사용해 확장 가능한 텔레메트리 모니터링 아키텍처의 예시를 만들었다. 대규모 프로덕션 환경을 운영하는 다른 기업은 처음부터 시작할 필요 없이 이 아키텍처를 참고하면 된다. 시스코는 이 실험적 아키텍처에서 텔레메트리 데이터 수집을 하루 3TB(분당 약 16GB)로 확장했는데, 아키텍처의 핵심은 시스코 IOS-XR과 인플럭스DB로 구성된다.
 

시스코 텔레메트리 모니터링 아키텍처 개요

시스코의 텔레메트리 아키텍처는 3가지 주 요소로 구성된다. 첫 번째는 텔레메트리 데이터를 생산하는 IOS-XR을 실행하는 시스코 하드웨어다. 두 번째 요소는 이 데이터를 받아서 저장을 위해 최종 스토리지로 보내는 수집기 에이전트이며, 이 데이터를 받아 저장하는 세 번째 요소가 인플럭스DB다. 하나씩 자세히 살펴보자.
 
ⓒ InfluxData
 

시스코 IOS-XR

IOS-XR은 CRS 시리즈, 12000 시리즈, ASR 9000 시리즈 네트워크 라우터와 같은 시스코의 하이엔드 캐리어급 라우터에 사용하는 운영체제다. IOS-XR은 다른 네트워크 운영체제에 비해 개선된 가용성, 대규모 하드웨어 구성을 위한 더 나은 확장성, 라우터 가동 상태에서 업그레이드 또는 패치를 설치하는 기능을 비롯해 경쟁 운영체제에는 없는 많은 기능을 제공한다.

IOS-XR에서 특히 주목할 부분은 텔레메트리 데이터의 통합 스트리밍을 제공해 네트워크 가시성을 개선하고 엔지니어가 텔레메트리 데이터를 근거로 작업을 수행할 수 있는 API가 있다는 점이다.

이 아키텍처를 위해 시스코는 3가지 다른 IOS-XR 플랫폼인 NCS 5500, ASR 9000, 그리고 8000 시리즈 라우터에서 데이터를 스트리밍했다. 각 디바이스는 TCP 연결을 통해 구글 프로토콜 버퍼(GPB)와 함께 다이얼 아웃(dial-out) 모드로 실행되도록 구성됐다. 이 단계에서 텔레메트리 모니터링 아키텍처의 핵심 요소 중 하나는 전체적인 지표와 지표 수집 빈도 측면에서 필요 이상의 데이터를 수집하지 않는 것이다.
 

수집기 에이전트

IOS-XR 하드웨어의 텔레메트리 데이터는 로드 밸런서로 전송되고, 로드 밸런서는 3가지 수집기 에이전트에 걸쳐 데이터를 전달한다. 규모가 큰 경우 싱글 스레드 수집기 시스템은 시스템으로 전송되는 많은 양의 데이터를 처리할 수 없는 한계가 있다. 멀티 스레드 수집기도 모두 별도의 연결을 통해 데이터베이스에 업로드하는 데 이 과정에서 발생하는 나름의 문제가 있다.

시스코는 이 문제를 해결하기 위해 멀티 프로세싱 수집기 에이전트를 개발했다. 이 코드는 깃허브에 오픈소스로 공개돼 있다. 수집기 에이전트의 주 프로세스는 데이터를 파싱해 인플럭스DB에 업로드하는 작업자 풀과 분리돼 있다. 주 프로세스는 스트리밍되어 들어오는 데이터를 대기열에 추가하고, 텔레메트리 데이터를 작업자 풀에 일괄 전송한다. 수집기 에이전트는 이와 같은 분리된 아키텍처 덕분에 초당 몇 기가바이트의 데이터를 처리하면서도 안정적인 상태를 유지할 수 있다.
 
ⓒ InfluxData
 

인플럭스DB

텔레메트리 아키텍처의 마지막 조각은 데이터를 저장하는 데 사용하는 인플럭스DB다. 시스코 프로젝트에서 인플럭스DB는 향상된 안정성과 성능을 지원하기 위해 데이터 노드 2개, 메타 노드 3개로 클러스터를 구성하는 형태로 구축됐다.

인플럭스DB는 시간과 함께 기록된 대량의 데이터를 처리하도록 설계된 전용 시계열 데이터베이스이므로 시스코의 텔레메트리 모니터링 사용 사례에는 안성맞춤이었다. 또한 인플럭스DB는 대량의 데이터를 쓰고 실시간으로 이 데이터를 쿼리할 수 있어야 하는 워크로드에 효과적이다. 이 밖에도 사물인터넷(IoT), 분석, 애플리케이션 모니터링에도 사용할 수 있다.

인플럭스DB는 오픈소스이며 자체 인프라에 배포하거나 인플럭스데이터(InfluxData)의 클라우드 서비스인 인플럭스DB 클라우드(InfluxDB Cloud)를 사용해 몇 분 만에 설치할 수 있다. 인플럭스DB 클라우드는 완전 관리형 탄력적 시계열 데이터 플랫폼으로, 신속하게 시작해서 요구사항에 맞게 손쉽게 확장할 수 있다. 흡수된 데이터는 인플럭스DB 클라우드의 내장 대시보드를 통해 표시되며 시계열 워크로드에 맞게 설계된 인플럭스 데이터의 함수형 쿼리 언어인 플럭스(Flux)를 사용해 데이터를 쿼리할 수 있다.

시스코의 사용 사례에서는 특정 요구에 맞게 최적화하기 위해 인플럭스DB의 표준 구성에서 몇 가지를 변경했다. 첫 번째로 기본 캐시(버퍼) 메모리 크기를 조정했다. 수집기 에이전트에서 일괄로 데이터를 썼으므로 데이터가 작성되는 중에 데이터를 계속 유지하기 위해 인플럭스DB에 더 많은 메모리를 확보해야 했기 때문이다. 클러스터 수준에서는 노드 간에 비순차 복제본 쓰기를 허용하도록 했다. 이렇게 해서 데이터 도착 순서와 포인트의 해당 타임스탬프 간 관계에 더 높은 유연성을 확보했다.

텔레메트리 데이터 확장은 어려운 작업으로, 많은 기업이 그동안 나름의 해결을 시도해왔다. 이 실험에서 시스코의 목표는 다른 기업이 각자의 사용 사례에 맞추어 다시 만드는 수고를 할 필요 없이 간편히 활용할 수 있는 블루프린트 아키텍처를 제공하는 것이다. 이 시스코 솔루션에서 핵심은 성능, 사용 편의성, 오픈소스 코드 베이스라는 장점을 갖춘 인플럭스DB다. editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.