본문 바로가기
1. 개발/1.6. 쿠버네티스 (Kubernetes,K8s)

'Loki/Fluentd'와 'Prometheus/Grafana'

by 엉짱 2026. 2. 10.
반응형

이제 쿠버네티스 요새의 완벽한 가동을 감시하는 '중앙 관제 센터'를 구축할 시간이군요! 🫡

인프라가 아무리 자동화되어도 내부에서 무슨 일이 벌어지는지 모르면 "눈 가리고 운전하는 것"과 같습니다. 특히 수만 개의 파드가 떠 있는 환경에서는 로그 한 줄 찾는 것도 모래사장에서 바늘 찾기죠. 이를 해결하기 위해 지표(Metrics)를 담당하는 Prometheus/Grafana와 로그(Logs)를 담당하는 Loki/Fluentd의 연합군이 필요합니다.

'관측성(Observability)의 황금 조합'을 분석해 드립니다!


📊 1. 지표(Metrics)의 제왕: Prometheus & Grafana

지표는 "현재 시스템의 건강 상태"를 숫자로 보여줍니다. (예: CPU 80%, 응답 속도 100ms)

① Prometheus (수집 및 저장)

  • Pull 방식의 혁신: 프로메테우스는 서버가 데이터를 보내주길 기다리지 않습니다. 자신이 직접 각 파드에 접속해 "지표 내놔!"라고 가져옵니다(Scraping). 파드가 새로 생기거나 사라져도 Service Discovery 기능을 통해 자동으로 찾아냅니다.
  • TSDB (시계열 데이터베이스): 시간 순서대로 쌓이는 숫자를 저장하는 데 최적화된 특수 DB를 사용하여 수만 개의 지표를 가볍게 처리합니다.

② Grafana (시각화 및 알람)

  • 대시보드: 프로메테우스가 모은 숫자를 사용자가 한눈에 볼 수 있는 화려한 그래프와 차트로 바꿔줍니다.
  • Alerting: "주식 분석 파드의 메모리가 90%를 넘으면 사용자 슬랙(Slack)으로 비상벨을 울려라!" 같은 지능형 알람을 수행합니다.

📝 2. 로그(Logs)의 혁명: Loki & Fluentd (또는 Promtail)

로그는 "내부에서 구체적으로 어떤 사건이 터졌는가"를 텍스트로 보여줍니다. (예: "10시 5분, 삼성전자 데이터 처리 중 에러 발생")

① Fluentd / Promtail (로그 수집기)

  • 현장의 청소부: 각 노드(서버)마다 하나씩 상주하며, 파드들이 남기는 로그 파일들을 실시간으로 긁어모읍니다.
  • Promtail: 특히 Loki와 찰떡궁합인 도구로, 로그에 쿠버네티스 라벨(파드 이름, 네임스페이스 등)을 붙여서 보냅니다.

② Grafana Loki (로그 저장 및 검색)

  • 로그계의 프로메테우스: 기존의 ELK(Elasticsearch) 방식은 로그 전체에 인덱스를 걸어 저장 공간을 엄청나게 차지했습니다. 하지만 Loki는 '라벨'에만 인덱스를 겁니다.
  • 가성비 끝판왕: 저장 용량이 획기적으로 적고 속도가 빨라, 사용자의 DW 비용을 아끼듯 인프라 유지 비용을 크게 아껴줍니다.

🔗 3. 통합 관측성: "숫자에서 로그로 점프하기"

이 시스템의 진정한 위력은 Grafana 안에서 지표와 로그가 하나로 통합될 때 나옵니다.

  1. 이상 감지: 사용자가 Grafana 차트를 보다가 특정 시간에 '에러율' 그래프가 솟구치는 것을 발견합니다.
  2. 로그 점프: 해당 그래프 지점을 클릭하면, 그 시간대에 그 파드가 뱉어냈던 실제 로그(Loki)로 즉시 화면이 전환됩니다.
  3. 원인 파악: "아, 이 시점에 데이터베이스 접속 권한 오류가 났었구나!"라고 단 며칠 걸릴 분석을 몇 초 만에 끝내게 됩니다.

💡 4. 실전 비유: "병원의 중앙 모니터링 시스템"

  • Prometheus: 환자(Pod)의 손가락에 끼워진 심박수 측정기입니다. 혈압, 체온 같은 '숫자'를 실시간으로 중앙 모니터로 보냅니다.
  • Loki: 환자가 하는 말을 기록하는 간호사의 차트입니다. "어디가 아파요", "배가 고파요" 같은 '구체적인 상황'을 적어둡니다.
  • Grafana: 의사가 보는 중앙 모니터입니다. 심박수(지표)가 떨어지면 즉시 간호사 차트(로그)를 확인해 환자에게 무슨 일이 있었는지 파악합니다.

📊 요약: 관측성 도구 비교 및 선택

구분 Prometheus & Grafana Loki & Fluentd (Promtail)
데이터 형태 숫자 (Metrics) 텍스트 (Logs)
주요 질문 "지금 시스템이 얼마나 바쁜가?" "정확히 무슨 에러가 났는가?"
장점 매우 빠르고 경쾌함, 알람에 최적 저장 비용이 저렴하고 검색이 용이
핵심 도구 Metrics Server, Exporter Promtail, Vector, Fluent-bit

🚀 꼬리 질문

이제 인프라의 가설부터 배포, 보안, 그리고 감시 시스템까지 완벽한 사이클을 돌릴 수 있게 되셨습니다! 🫡 하지만 이 모든 것을 수동으로 구축하는 것은 너무나 고된 작업이죠. 쿠버네티스에는 이 복잡한 도구들을 패키지로 묶어 버튼 하나로 설치하고 관리하는 '앱스토어' 같은 존재가 있습니다.

"그럼 쿠버네티스의 복잡한 애플리케이션들을 패키지 형태로 관리하고 배포하는 'Helm'은 어떤 구조로 되어 있고, 차트(Chart)는 어떻게 만들어?"

반응형