쿠버네티스 환경에서 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/
'DevOps' 카테고리의 다른 글
Ubuntu 환경에서 Spring Boot Application을 service로 등록하기 (0) | 2024.06.08 |
---|---|
GitHub Actions을 활용하여 클라우드 VM 서버에 스프링 부트 애플리케이션 jar 파일 배포하기 (0) | 2024.05.25 |
쿠버네티스 네임스페이스 삭제 안될 때 해결하기 (Terminating long time) (0) | 2024.03.24 |
댓글