본문으로 건너뛰기

Loki

Loki는 Lumie의 로그 스토어입니다. 장기 이력 보관용이 아니라 작은 규모의 짧은 보존 서비스로 의도적으로 구성되어 있습니다.

소스 경로

  • lumie-infra/observability/loki/argocd.yaml
  • lumie-infra/observability/loki/helm-values.yaml
  • lumie-infra/observability/opentelemetry/manifests/collector.yaml
  • lumie-infra/applications/teleport-event-handler/manifests/vector-configmap.yaml

런타임 계약

  • 차트: grafana/loki
  • 배포 모드: SingleBinary
  • replica: 1
  • 스토리지 백엔드: filesystem
  • persistence: 비활성화
  • 보존: 72h
  • auth: 비활성화

수집 흐름

주요 로그 경로는 OpenTelemetry입니다.

  • collector가 /var/log/pods/*/*/*.log를 tail합니다.
  • Kubernetes attribute로 레코드를 보강합니다.
  • 로그를 http://loki.loki.svc.cluster.local:3100/otlp로 export합니다.

Teleport 이벤트 로그는 예외로, Vector sink를 통해 Loki로 직접 들어갑니다.

운영 경계

  • Loki는 내부 전용이며 ingress가 정의되지 않습니다.
  • Helm 차트의 canary와 self-monitoring agent는 비활성화됩니다.
  • 스토리지가 emptyDir이므로 Loki는 compliance archive가 아니라 단기 troubleshooting 표면입니다.

장애 지점

  • Loki pod를 재시작하거나 재스케줄하면 로컬에 저장된 이력이 사라집니다.
  • OpenTelemetry collector가 파일 접근이나 exporter 경로를 잃으면, 애플리케이션이 계속 실행 중이어도 Grafana에서 로그가 사라집니다.
  • 운영자가 Promtail을 기대하면, observability/kustomization.yaml이 collector filelog receiver를 위해 이를 명시적으로 제거했다는 사실을 놓치게 됩니다.

검증

kubectl get applications.argoproj.io -n argocd loki
kubectl get pods -n loki
kubectl describe pod -n loki loki-0
kubectl logs -n opentelemetry daemonset/otel-collector-collector --tail=200

관련 페이지