모니터링 시스템 장애(1) - AWS Lambda 런타임 지원기한

모니터링 시스템 요약

현재 우리 시스템은 Prometheus와 Grafana를 통하여 모니터링 시스템이 구축되어 있다. Prometheus는 다양한 데이터를 직접 pooling하여 데이터를 저장하고, Grafana는 이 데이터를 시각화한다. 이 Prometheus가 pooling을 하는 방식으로 rest api를 사용하였고, 이 api를 제공하는 프로그램을 Exporter라고 한다. Promethues에서 제공하는 다양한 Exporter가 있지만 우리 시스템에서는 AWS Lambda를 Serverless Framework를 이용하여 이 Exporter를 커스텀하게 구축하였다.

Read more

모니터링 시스템(Prometheus, Grafana)(3)

앞서 말했듯이 Grafana는 시계열 데이터를 시각화하는데 가장 최적화된 대시보드를 제공해주는 오픈소스 툴킷이다. 주로 InfluxDB, Prometheus, Graphite등의 시계열 데이터베이스와 함께 사용되며 실시간 데이터분석, 모니터링등에서 많이 사용되고 있다. 특히 자체적인 Alert기능 제공은 해당 툴을 선택하는데 가장 큰 이유가 되었다.

Grafana 설치

Grafana를 설치과정은 공식사이트를 통해 자세하게 나와있다.(https://grafana.com/grafana/download)

Grafana 설치

Read more

모니터링 시스템(Prometheus, Grafana)(2)

프로메테우스와 그라파나의 전체적인 아키텍처 및 설치과정을 알아보도록 하자

프로메테우스/그라파나 아키텍쳐

지난 게시물에서도 말했듯이 프로메테우스는 데이터소스, 그라파나는 시각화 툴의 역할을 각각 맡고 있다. 또한 프로메테우스는 서버 뿐만 아니라 다양한 노드(컴포넌트)가 수집한 데이터를 pull방식으로 가져오는 구조이다. 여기서 node는 프로메테우스에서 제공하는 서비스일 수도 있고 사용자가 직접 커스텀한 Exporter일수도 있다.
그 구조는 아래와 같다.

프로메테우스 아키텍처

Read more

모니터링 시스템(Prometheus, Grafana)(1)

2018년 유지보수중이던 시스템이 기존 NT 서버에서 AWS로 모든 인프라를 옮기는 대공사를 진행하게 되었다.
인프라 전면전환 작업은 2년 가까운 시간이 되어서야 반영이 되었고, 2020년경부터 새로운 AWS인프라 위의 시스템을 유지보수하기 시작했다. 각종 문제들이 많이 생기기 시작했지만 가장 시급한 문제는 모니터링 시스템의 부재였다.

현재 내가 운영하고 있는 시스템은 실시간 대용량 트랜잭션을 처리하는 시스템으로, 장애발생시 5분 이내에 복구조치가 되도록 계약되어 있었고, 이를 위해서 모니터링 체계 구축은 필수적인 작업이었다.

많은 조사가 있었고 결국 우리는 프로메테우스와 그라파나라는 오픈소스를 사용하여 모니터링 체계를 구축하기 시작했다.

Read more