Ssoon

[4주차] CHAPTER-20 로키(Loki) 본문

Production Kubernetes Online Study

[4주차] CHAPTER-20 로키(Loki)

구구달스 2023. 3. 31. 06:18
이정훈님이 집필하신 "24단계 실습으로 정복하는 쿠버네티스" 로 진행하는 CloudNet@ 팀의 PKOS 4주차 정리입니다.

🧿 Loki ?

전체 로그 파일 단위로 인덱싱하지 않고 레이블 기반의 메타데이터만 인덱싱해서 인덱스에 소요되는 메모리 사용량이 현저히 적습니다.

PrimQL과 유사한 전용 LogQL을 제공하여 편하고 빠르게 로그검색이 가능합니다.

Loki 시스템의 구조와 설치

🧿 PLG (Promtail + Loki + Grafana) Stack

개별 Node에서 실행중인 여러 Pod의 로그를 중앙 서버에 저장하고 이를 조회

Promtail

  ◾ Deamonset으로 실행되며, 운영 중인 모든 Node에 자동으로 설치합니다.

  ◾ 중앙의 Loki 서버로 각 Node에서 발생하는 모든 Log를 보내는 Agent 역활

 

Loki는 다양한 Agent로부터 전달받은 Log를 자체 Datastore에 저장합니다.

Metadata 기준으로 Index를  생성함으로써 자원 사용량이 현저히 적습니다.

Loki에 저장한 Log는 전용 조회 언어인 LogQL을 이용해 조회

 

🧿 Loki 네임스페이스를 생성하고 이동합니다.

🧿 저자의 Github 에서 책내용의 Loki 버전(loki-2.12.2)을 다운로드 합니다.

https://github.com/wikibook/kubepractice/tree/main/ch20/loki-2.12.2

 

GitHub - wikibook/kubepractice: 《24단계 실습으로 정복하는 쿠버네티스》 예제 코드

《24단계 실습으로 정복하는 쿠버네티스》 예제 코드. Contribute to wikibook/kubepractice development by creating an account on GitHub.

github.com

🧿 편집된 value.yaml을 확인합니다.

150 persistence:
151   enabled: true
152   accessModes:
153   - ReadWriteOnce
154   size: 10Gi

185 
186 replicas: 2
187

🧿 Loki Helm 차트를 설치합니다.

🧿 저자의 Github 에서 책내용의 Promtail 버전(promtail-6.0.0)을 다운로드 합니다.

https://github.com/wikibook/kubepractice/tree/main/ch20/promtail-6.0.0

 

GitHub - wikibook/kubepractice: 《24단계 실습으로 정복하는 쿠버네티스》 예제 코드

《24단계 실습으로 정복하는 쿠버네티스》 예제 코드. Contribute to wikibook/kubepractice development by creating an account on GitHub.

github.com

🧿 편집된 value.yaml을 확인합니다.

124 defaultVolumes:
125   - name: run
126     hostPath:
127       path: /run/promtail
128   - name: containers
129     hostPath:
130       path: /var/lib/docker/containers
131   - name: pods
132     hostPath:
133       path: /var/log/pods

🧿 Promtail Helm 차트를 설치합니다.

✔ Promtail은 전체 Node의 로그를 가져오기 위해 전체 Node에서 자동으로 실행되는 Deamonset형태로 실행

🧿 Grafana에서 Loki 데이터를 조회할 수 있도록 Geafana 데이터 소스에 Loki를 등록합니다.

🧿 Loki를 등록하기 위한 서비스 목록을 조회합니다.

🧿 Grafana의 Loki 서비스 URL을 등록합니다.

  http://<Loki의 서비스 이름>.<namespace 이름>:3100

Loki를 이용한 쿠버네티스 로그 검색

🧿 NGINX 의 로드밸런서 IP을 확인하고 curl 을 이용해 NGINX에 접속하고 k logs을 통해 실시간 로그를 확인합니다.

 

# 작성중

Comments