본문 바로가기
DevOps

Helm Chart - Loki 설치 및 그라파나 연결 방법

by 흑시바 2024. 3. 11.

쿠버네티스 환경에서 Helm Chart를 이용해서 Loki를 설치 및 설정하고, 그라파나에 연결하는 방법에 대해 공유하고자 한다. 해당 포스트에서는 작성당시 Helm Chart 최신 버전의 Loki를 사용하였다. (5.43.6)

1. Helm Chart 설치

helm repo add grafana https://grafana.github.io/helm-charts
helm pull grafana/loki
tar xvfz loki-5.43.6.tgz
cd loki

2. values.yaml 설정

loki 폴더에 있는 values.yaml 파일을 편집기로 열어서 global 부분에 dns 설정을 수정해야 한다.

 

global:
  image:
    # -- Overrides the Docker registry globally for all images
    registry: null
  # -- Overrides the priorityClassName for all pods
  priorityClassName: null
  # -- configures cluster domain ("cluster.local" by default)
  clusterDomain: "cluster.local"
  # -- configures DNS service name
  dnsService: "kube-dns"
  # -- configures DNS service namespace
  dnsNamespace: "kube-system"

 

기본적으로 Helm Chart를 통해 설치한 loki는 kube-dns.kube-system.svc.cluster.local로 dns 서비스를 찾게 되는데, 만약 dns 서비스가 kube-dns가 아니라 하기 이미지 정보처럼 coredns 등 다른 서비스라면 loki-gateway 파드가 CrashLoopBackOff 에러를 발생시키며 작동하지 않게된다.

 

따라서, 하기 이미지처럼 dns 서비스를 쿠버네티스 환경에 맞게 설정해야 한다. 필자의 쿠버네티스 환경은 coredns로 되어 있었기 때문에 dnsService를 coredns로 설정하였다.

 

또한, auth_enabled 옵션을 false로 설정하여, 인증을 수행하지 않도록 설정한다. (기본 true)

 

3. Loki 실행

설정한 내용을 저장한 후 아래 명령어를 입력한다.

 

helm install loki -f values.yaml .

 

그러면 하기 이미지처럼 loki-backend, canary, gateway, read, write 서비스 및 관련 파드들이 생성된다.

 

각 컴포넌트들에 대한 설명은 그라파나 loki 문서에서 확인할 수 있다. 그라파나에 연결할 때는 loki-gateway를 사용한다.

4. 그라파나 연결

이제 그라파나에 접속 후, Home > Connections > Add new connection에 접속해서 Loki를 검색한다.

 

쿠버네티스 내부에서 파드를 찾을 때(ClusterIP)는 서비스명을 이용한다. 따라서, 그라파나에서 Conenction 설정할 때, http://loki-gateway.loki.svc.cluster.local을 입력해서 연결한다.

 

Save & Test 버튼을 누르면 하기 이미지와 같이 Data source successfully conneted. 메시지가 나오면서 연결에 성공한다.

 

설정이 완료 됐다면, Home > Explore에 접근해서 Loki가 선택 가능한지 확인한 뒤, 이를 이용해서 데이터를 검색해 본다.

 

정상적으로 실행되는 것을 확인할 수 있다.

REFERENCE

https://stackoverflow.com/questions/73205562/unable-to-add-grafana-loki-datasource-in-kubernetes

https://grafana.com/docs/loki/latest/setup/install/helm/concepts/

https://artifacthub.io/packages/helm/grafana/loki

댓글