Loki
Loki는 Lumie의 로그 스토어입니다. 장기 이력 보관용이 아니라 작은 규모의 짧은 보존 서비스로 의도적으로 구성되어 있습니다.
소스 경로
lumie-infra/observability/loki/argocd.yamllumie-infra/observability/loki/helm-values.yamllumie-infra/observability/opentelemetry/manifests/collector.yamllumie-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