사내의 기존 시스템에서 filebeat kibana Elasticsearch를 사용하고 있었는데 외주로 인해 제대로 된 설치에 대한 가이드 부족 및 무료 라이센스 Alert 미지원으로 Error 로그에 대한 모니터링이 제대로 이루어 지지 않아 Grafana와 연동하여 사용할 수 있는 Promtail과 Loki를 통해 로그를 수집하는 방식으로 변경함
온프레미스 환경에서 local-storage에 로그가 저장되도록 설정함
Loki-values.yaml
replicas: 5 #고가용성을 위한 Loki server
persistence:
enabled: true
storageClassName: local-storage #StorageClass로 PVC 설정
serviceMonitor:
enabled: true #prometheus에서도 Promql로 조회가능하도록 servicemonitor resource 생성
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- loki
topologyKey: "kubernetes.io/hostname"
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- kwall7
- kwall4
- kwall5
- kwall6
- kwall8
PV 경로 폴더 만들기
mkdir -p /opt/loki
sudo chown 10001:10001 loki
*10001 으로 지정한 이유*

Loki-pv, pvc yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: loki-pv-0
namespace: loki
labels:
type: local-storage
app: loki
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
hostPath:
path: /opt/loki
type: DirectoryOrCreate
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- kwall8
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
helm.sh/resource-policy: keep
labels:
app: loki
name: storage-loki-0
namespace: loki
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeMode: Filesystem
volumeName: loki-pv-2
kubectl create ns loki
kubectl apply -f pv.yaml -f pvc.yaml -n loki
helm repo add grafana https://grafana.github.io/helm-charts
helm install loki grafana/loki —version 2.16.0 –f loki-values.yaml –n loki
#로키 확인
kubectl get all -n loki
Promtail-values.yaml
serviceMonitor:
enabled: true
config:
serverPort: 3101
clients:
- url: http://loki-headless:3100/loki/api/v1/push
helm install promtail grafana/promtail --version 6.0.0 -f promtail-values.yaml -n loki
datasource 등록하기
