모니터링 선택 아닌 필수
개발과 서버 운영을 직접 하다 보니, 모니터링은 더 이상 선택이 아니라 운영에 꼭 필요한 필수 도구라는 생각이 들었다. 모니터링 시스템을 구축하기 전에는 서버에 직접 접속해서 리소스 상태를 확인하거나, 로그를 일일이 보면서 문제를 해결하곤 했다.
하지만 서비스가 커지고 병목 구간이 생기기 시작하면서, 언제, 어디서 문제가 발생했는지를 정확히 알 수 있는 수단이 없다는 게 치명적이라는 걸 깨달았다. 특히 서버가 다운되거나 운영 중 문제가 생겼을 때, 즉시 파악하고 대응하는 데 한계가 있었다.
모니터링 솔루션 선택
Datadog, Elastic Stack, Grafana(LGTM) Stack 같이 많이 사용되는 모니터링 솔루션들을 비교해봤다. 세 솔루션 모두 SaaS 뿐 아니라 온프레미스(On-Premise) 구축도 지원한다.
그중에서 우리(회사)는 비용적인 부담을 줄이고, 직접 구축 및 운영이 가능한 오픈소스(OSS)라는 점을 고려해 Grafana Stack을 선택하게 되었다.
LGTM Stack
현재 이런 구성으로 모니터링을 운영중이다. 모니터링 서버에는 LGTM 컴포넌트들이 Standalone 모드로 컨테이너에서 실행중이며, 어플리케이션 당 하나의 그라파나의 OpenTelemetry Collector 배포판인 Alloy 를 배치했다.
계측 데이터들은 Alloy로 보내지고 데이터(메트릭, 로그, 추적)들은 알맞게 컴포넌트로 전송된다. 전송된 데이터는 오브젝트 스토리지인 Cloudflare R2를 사용하여 저장하고 있다.