기존의 모놀리스한 방식의 소프트웨어와 달리, 다수의 Micro service들을 통해 서비스가 만들어지는 Container 및 kubernetes 환경에서 개별 동작에 대한 가시성의 확보는 점점 중요해지고 있다. 시스템, 소프트웨어, 서비스 등 IT 전반에서 정상적 운영과 활용을 위해 운영 자원들에 대한 모니터링은 필수 요소이다.

TACO는 Cloud Native한 환경을 지원하기 위한 Container 플랫폼을 제공하고 있으며, 플랫폼 및 내부의 구성요소를 모니터링 하도록 자체적인 LMA(Logging-Monitoring-Alerting) 서비스를 제공한다. TACO는 다양한 오픈소스를 활용하고 있으며 숫자기반 데이터를 수집하고 가시성을 제공하기 위한 주요 컴포넌트로 Prometheus를 사용하고 있다.

본 블로그에서는 Cloud환경에서 모니터링을 위한 사실상 표준으로 자리매김한 Prometheus에 대한 소개를 하고자 한다.

Prometheus?

Prometheus는 SoundCloud사에서 만든 오픈소스 툴킷으로 시스템을 모니터링하고 알람을 발생시켜 운영을 지원하는 것을 주요한 기능으로 갖는다. CNCF를 통해 오픈 생태계를 확장해 왔으며, CNCF 졸업 후 다양한 회사들이 참여하고 있는 독립형 오픈소스 프로젝트로 자리잡았다. kubernetes를 사용하는 환경에서, Prometheus를 활용한 매트릭 수집 및 대시보드 구축이 표준적 모니터링 방식으로 자리잡고 있다.

주요특징

스크린샷 2021-11-01 오전 6.04.36.png

구조

아래 그림은 Prometheus의 컴포넌트들과 서로간의 관계를 한눈에 보여준다.

https://miro.medium.com/max/700/1*Ktoezmb8yB1wTCukb53X0w.png

Deployment View와 Logical View가 혼용되어 있고 Prometheus와 주변시스템까지 담고 있어 다소 복잡하게 보여질 수 있으므로 아래에서 데이터의 흐름과 연관지어 간단하게 설명한다.