Skip to main content
duksoo.dev
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

EKS에 LGTM 스택 구축하기

Observability는 선택이 아니라 필수다. 하지만 SaaS 모니터링 비용이 인프라 비용보다 높아지는 순간이 온다. 그때가 자체 구축을 고민할 타이밍이다.

Datadog을 메인으로 사용하고 있었지만, 모든 환경에 적용하기엔 비용 부담이 있었다. Observability가 아예 없는 환경이 생기는 것보다는, 오픈소스로라도 갖추는 게 낫다고 판단했다. LGTM 스택(Loki, Grafana, Tempo, Mimir)을 EKS에 구축한 과정을 공유한다.

배경

Datadog을 메인으로 사용하고 있지만, 모든 환경에 적용하기엔 비용 부담이 있었다. 특히 작은 규모의 계정들은 Observability가 아예 없는 상태로 운영되고 있었다.

Read full post gdoc_arrow_right_alt

Grafana 대시보드 구축

메트릭 수집은 Observability의 절반에 불과하다. 나머지 절반은 시각화다. 데이터가 쌓여도 볼 수 없으면 의미가 없다.

LGTM 스택을 구축했지만 대시보드가 없었다. 커뮤니티 대시보드를 import 해봤지만 우리 환경과 맞지 않았다. 결국 운영 관점에서 필요한 대시보드를 직접 설계하고 구축했다. GitOps로 대시보드를 관리하는 방식도 함께 정리한다.

어떤 대시보드가 필요한가

운영 관점에서 세 가지가 필요했다.

  1. 인프라 대시보드: 클러스터 전체 상태, 노드 헬스, 리소스 사용량
  2. APM 대시보드: 서비스별 요청량, 에러율, 레이턴시
  3. 파이프라인 대시보드: LGTM 스택 자체의 헬스 체크

Datadog을 쓸 때는 기본 제공되던 것들이다. LGTM 스택에서는 직접 구성해야 한다.

Read full post gdoc_arrow_right_alt

Mimir Alertmanager로 알림 구축

Observability의 최종 목표는 MTTD(Mean Time To Detect)를 줄이는 것이다. 대시보드가 아무리 훌륭해도 24시간 지켜볼 수는 없다. Push 기반 알림이 있어야 문제를 빠르게 인지할 수 있다.

LGTM 스택에서 Mimir Ruler와 Alertmanager를 활용해 알림 시스템을 구축했다. 알림 룰을 GitOps로 관리하고, 알림 폭탄을 방지하기 위한 설계 포인트를 정리한다.

알림 아키텍처

flowchart LR
    subgraph GitOps[GitOps 관리]
        Git[Git Repository]
        CM[ConfigMap]
    end

    subgraph Mimir[Mimir]
        Ruler[Ruler<br/>PromQL 평가]
        Storage[(Metrics<br/>Storage)]
        AM[Alertmanager<br/>라우팅/그룹핑]
    end

    subgraph Grafana[Grafana]
        AlertUI[Alerting UI<br/>알림 현황 조회]
    end

    subgraph Slack[Slack]
        Ch1[#alerts-service]
        Ch2[#alerts-infra]
    end

    Git -->|Helm Deploy| CM
    CM -->|Alert Rules| Ruler
    Storage -->|메트릭 쿼리| Ruler
    Ruler -->|알림 발생| AM
    AM -->|namespace: app| Ch1
    AM -->|namespace: observability| Ch2
    AM -->|알림 상태| AlertUI

Ruler가 주기적으로 메트릭을 쿼리하고, 조건이 충족되면 Alertmanager로 알림을 보낸다. Alertmanager는 알림을 그룹핑하고, 라우팅 규칙에 따라 적절한 Slack 채널로 전송한다. Grafana에서는 현재 발생 중인 알림을 조회하고 히스토리를 확인할 수 있다.

Read full post gdoc_arrow_right_alt