🚀 요약

SUMMARY

Kubernetes 클러스터 환경에서 관측가능성 스택을 ELK → LGTM → SigNoz로 변경했다. 라이선스 이슈와 통합 관리의 편의성을 고려하여 최종적으로 SigNoz 기반의 단일 스택으로 결정했다.

💡 개요

관측가능성(Observability)은 시스템의 내부 상태를 외부에서 관찰 가능한 신호들을 통해 유추할 수 있는 능력이다. 현대의 분산 시스템과 마이크로서비스 아키텍처에서는 시스템의 복잡성이 증가함에 따라 관측가능성의 중요성이 더욱 커지고 있다.

관측가능성의 세 가지 핵심 데이터 유형은 다음과 같다.

  • 로그(Log): 이벤트가 발생할 때마다 기록되는 텍스트 데이터
  • 추적(Trace): 분산 시스템에서 요청이 각 서비스 간을 이동하는 경로와 시간 정보
  • 메트릭(Metric): 성능 측정을 위한 수치 데이터(CPU, Memory, Request Latency 등)

📋 선정 배경

사내 Kubernetes 클러스터 도입과 함께 마이크로서비스 아키텍처로의 전환을 계획하면서 관측가능성 스택의 필요성이 대두됐다. 기존의 모놀리식 애플리케이션에서는 단일 서버의 로그와 메트릭만 모니터링하면 됐지만, 분산 환경에서는 여러 서비스 간의 상호작용을 추적하고 전체적인 시스템 상태를 파악할 수 있는 도구가 필요했다.

특히 다음과 같은 요구사항을 만족하는 스택을 찾고 있었다.

  • OpenTelemetry 표준 지원
  • 온프레미스 환경에서의 안정적인 운영
  • 라이선스 이슈가 없는 오픈소스 솔루션
  • 로그, 메트릭, 트레이스의 통합 관리
  • 합리적인 리소스 사용량

INFO

OpenTelemetry(OTel)는 이러한 원격 측정 데이터를 표준화된 방식으로 생성, 수집, 처리, 내보내기 위한 오픈 소스 통합 관찰성 프레임워크다. 벤더 중립적이며 표준화된 접근 방식을 제공한다는 점에서 현재 관측가능성 분야의 사실상 표준으로 자리잡고 있다.

📊 비교

세 차례에 걸쳐 관측가능성 스택을 변경했으며, 각 스택의 특징과 변경 사유는 다음과 같다.

구분최초 구성 (분산 스택)변경 1 (LGTM 스택)변경 2 (SigNoz)
로그Fluentd → OTel Collector → Elasticsearch → KibanaOTel Collector → Loki → GrafanaOTel Collector → ClickHouse → SigNoz
추적OTel SDK → OTel Collector → Jaeger → Elasticsearch → Jaeger UIOTel SDK → OTel Collector → Tempo → GrafanaOTel SDK → OTel Collector → ClickHouse → SigNoz
메트릭Exporter → OTel Collector → Prometheus → GrafanaExporter → OTel Collector → Prometheus → GrafanaExporter → OTel Collector → ClickHouse → SigNoz
장점- 검증된 안정성
- 풍부한 생태계
- 강력한 검색 기능
- 단일 UI로 통합 관리
- Grafana의 뛰어난 시각화
- 상대적으로 가벼운 리소스 사용
- 완전한 통합 솔루션
- 단일 데이터베이스
- 라이선스 이슈 없음
- 뛰어난 성능
단점- 복잡한 아키텍처
- 높은 리소스 사용량
- 분산된 관리 포인트
- AGPL-3.0 라이선스 이슈
- 여전히 복잡한 구성
- 상대적으로 새로운 솔루션
- 제한적인 커뮤니티
변경 사유-Grafana에서 모든 정보를 집중해서 볼 수 있도록 구조 개선AGPL-3.0 라이선스가 솔루션 패키징에 잠재적 이슈가 될 수 있다고 판단

IMPORTANT

LGTM 스택에서 SigNoz로 변경한 가장 큰 이유는 라이선스 문제였다. Grafana의 AGPL-3.0 라이선스는 상용 솔루션으로 패키징할 때 소스코드 공개 의무가 발생할 수 있어, 비즈니스 관점에서 리스크가 있다고 판단했다.

각 스택별 상세 분석

분산 스택 최초 구성

로그는 ELK(Elasticsearch, Logstash, Kibana), 추적은 Jaeger, 메트릭은 Prometheus + Grafana로 각각 다른 도구를 조합한 분산 구조였다. 각 관측가능성 데이터 유형마다 별도의 솔루션을 사용하는 전통적인 접근 방식이었다.

  • 안정성: 오랜 기간 검증된 솔루션들의 조합
  • 복잡성: 각기 다른 도구들을 연동해야 하는 복잡한 아키텍처
  • 리소스: Elasticsearch 클러스터 운영으로 인한 높은 메모리 사용량

LGTM 스택 (Loki, Grafana, Tempo, Mimir)

Grafana Labs에서 제공하는 통합 관측가능성 스택으로 변경했다. 모든 데이터를 Grafana 하나의 UI에서 확인할 수 있다는 점이 매력적이었다.

  • 통합성: 단일 대시보드에서 로그, 메트릭, 트레이스 통합 조회
  • 효율성: 각 도구가 특화된 용도로 설계되어 상대적으로 가벼움
  • 라이선스: AGPL-3.0 라이선스로 인한 상용화 제약

SigNoz 기반 최종 구성

ClickHouse를 백엔드로 사용하는 통합 관측가능성 플랫폼이다. 단일 데이터베이스에 모든 관측가능성 데이터를 저장하고 통합 UI를 제공한다.

  • 단순성: 하나의 솔루션으로 모든 관측가능성 요구사항 충족
  • 성능: ClickHouse의 뛰어난 분석 성능
  • 라이선스: MIT 라이선스로 상용화에 제약 없음

NOTE

ClickHouse는 OLAP(Online Analytical Processing) 워크로드에 최적화된 컬럼형 데이터베이스다. 대용량 데이터의 집계와 분석에 뛰어난 성능을 보여주며, 관측가능성 데이터와 같은 시계열 데이터 처리에 특히 적합하다.

✅ 선정 사유

최종적으로 SigNoz를 선택한 주요 이유는 다음과 같다.

  1. 라이선스 안정성: MIT 라이선스로 상용 솔루션 개발 시 제약이 없음
  2. 운영 단순성: 단일 솔루션으로 모든 관측가능성 요구사항 충족
  3. OpenTelemetry 네이티브: OpenTelemetry 표준을 완전히 지원
  4. 비용 효율성: 단일 스택으로 인한 인프라 비용 절감과 운영 복잡도 감소

IMPORTANT

특히 라이선스 측면에서 AGPL-3.0은 소프트웨어를 네트워크를 통해 제공하는 경우에도 소스코드 공개 의무가 발생할 수 있어, 상용 서비스 개발 시 주의가 필요하다. 이는 개발하는 솔루션의 비즈니스 모델에 직접적인 영향을 줄 수 있는 중요한 요소였다.

현재 SigNoz 기반 스택을 운영한 지 6개월이 지났으며, 안정적인 성능과 편리한 관리 경험을 제공하고 있다. 특히 단일 UI에서 로그, 메트릭, 트레이스를 모두 확인할 수 있어 장애 대응 시간이 크게 단축됐다.

🔗 참고