Prometheus를 이용한 Event Alerting in TACO2018, SEP 03

by 최태일([email protected])

Overview

이번 포스팅에서는 Kubernetes 환경에서 모니터링 tool로 많이 사용되고 있는 Prometheus를 사용하여 TACO 서비스에 이벤트 발생시 Alerting해주는 부분에 대해 살펴보겠습니다. 실제 TACO에서 사용 중인 Event alerting 내용을 보여드리기보다는, 독자들의 이해를 돕기 위해 Metric 수집부터 실제 Alert notification까지의 기본적인 Flow를 Tutorial 형식으로 풀어나가려고 합니다.

Prometheus 개요

Prometheus는 시계열 데이터 모니터링을 수행하는 오픈소스 모니터링 솔루션입니다. 음악 유통 플랫폼 회사인 SoundCloud라는 곳에서 시작한 프로젝트이고, 2012년 이후 여러회사에서 참여해서 발전하다가 2016년도에 Cloud Native Computing Foundation에 합류하였습니다. Kubernetes에 이은 두번째 공식 프로젝트이죠.

Go 언어로 개발되었고, Apache License v2.0 을 따르며, 다음과 같은 특징을 가집니다.

Prometheus Architecture는 다음과 같습니다.

https://openinfradev.github.io/assets/img/prom_alert/prom_architecture.png

기본적으로 exporter 들로부터 pull 방식으로 metric을 가져오며 Service Discovery 기능을 통해 Kubernetes 클러스터 등 외부 Resource들에 대한 metric도 가져오게 됩니다. 발생한 Alert은 alertmanager에게 전달하여 email이나 slack 등의 receiver로 alert 메세지를 발송합니다.

Step by Step Guide for Alerting

prometheus 및 node-exporter 실행

아래 가이드에 따라 prometheus 및 node-exporter를 실행합니다. (이 가이드에서는 두 프로세스 모두 system service로 등록하였지만, 단순히 테스트 목적이라면 그 과정은 생략하고 command를 직접 수행해도 무방합니다.)

https://www.booleanworld.com/install-use-prometheus-monitoring/

Prometheus 에 Alert Rule 등록