티스토리 뷰

일반적으로 kubernetes 에서 node에서 발생하는 log , web,was, 기타 application 에서 발생하는 로그를
수집하여 보여주는것을 ELK 를 사용한다.
하지만 간혹 oem 방식으로 납품을 하기 위해서 또는 라이센스 문제로 인하여 ELK 를 사용하지 못하는 경우
어떤것을 사용할 수 있을까?
Prometheus는 시스템에 대한 Metric (CPU, Memory 등) 정보만 수집하기 떄문에 , pod에서 찍히는 log를
볼수 없다.
그러다가 Loki 를 발견하였고, 이것을 선택한 이유는
위와 같이 제한적인 환경에서 선택할 수 있는 최선의 방법이었고
기존에 Prometheus , Grafana 가 이미 설치 된 상태에서 같은 스택을 사용하는 것이 좋을것 같다는 생각 이었다.
아래의 것도 검토해 봤지만, 이 또한 라이센스의 문제가 있을 것 같아, 제외하게 되었다.
https://opendistro.github.io/for-elasticsearch/
Loki 란 무엇인가?
Loki 는 프로메테우스에 영감을 받은 수평 확장 가능하고 가용성이 높은 다중 테넌트 로그 집계 시스템입니다.
Kubernetes Pod 의 로그를 수집하는데 이상적이며, 중요한 Loki 는 ELK/EFK/EFLK 에 비해 조작이 용이하고 가볍습니다.
구성요소
Loki : 로그를 저장하고 쿼리를 처리하는 EFK의 ElastcSearch 와 동일합니다. 메인 서버 구성요소를 Loki 라고 부르며 , 전달되는 로그들을 영구 저장하고 클라이언트의 LogQL 쿼리를 실행합니다. Loki 는 뛰어난 Prometherus 백엔드인 Context 와 높은 수준의 아키텍쳐를 공유합니다.
Promtail : 로그를 수집하여 Loki 로 전송하는 EFK의 Filebeat/Flunted 와 동일합니다. 로그를 중앙 저장소로 전달하려면 에이전트가 필요합니다. Promtail은 모니터링 해야 하는 모든 노드에 배포되어 로그를 Loki로 전달합니다. 또한 Promtaul은 쉽게 쿼리할 수 있도록 label을 첨부하는 등의 로그 라인들을 사전 처리 하는 중요한 작업도 수행합니다.
Grafana : EFK의 Kibana 와 동일하며 UI 프리젠테이션에 사용합니다. Grafana 6.0 이상에서 사용할 수 있는 Explore기능은 사용자와 Loki 사이의 중요한 접점입니다. Explore는 로그를 발견하고 분석하는데 사용됩니다.
LokiQL : Loki는 Prometheus의 PromQL과 유사한 로그 쿼리 언어를 제공하며 Loki는 LogQL 쿼리를 Prometheus 메트릭으로 직접 변환활 수 있도록 지원합니다.

Loki 는 로그를 수락, 저장, 처리 및 쿼리 하는데 사용하는 컬렉션 입니다.
Loki는 읽기 및 쓰기 분리 아키텍쳐를 사용하며 주요 구성요소는 다음과 같습니다.
Distributor : 로그 데이터 전송의 첫 번째 스테이션, Distributor 배포자는 로그 데이터를 수신한 후 메타데이터 및 해시 알고리즘에 따라 로그를 여러 Ingester 싱크로 일괄적으로 보냅니다
Ingester : 싱크는 로그 입력 시 gzip 압축을 조작하고 chunck 블록을 빌드하고 새로 고치는 상태 저장 구성 요소이며, chunk 블록이 일정 수 또는 시간에 도달하면 chunk 블록과 해당 Index 인덱스가 데이터베이스에 새로 고쳐집니다
Querier : 시간 범위와 레이블 선택기를 지정된 경우 Querier 쿼리자는 데이터베이스에서 Index 인덱스를 보고 일치하는 chunck 블록을 확인할 수 있으며 greps를 통해 결과를 표시하며 Ingester 싱크에서 새로 고쳐지지 않은 최신 데이터를 직접 가져옵니다
Query frontend : 쿼리 프런트 엔드는 Querier 쿼리 앞에 실행되는 선택적 구성 요소로, 로그 쿼리 속도를 높이고 일정의 균형을 정렬하는 캐시 기능을 제공합니다
Helm Chart 를 사용하여 Loki 와 Promtail을 Kubernetes 에 배포
# helm repo add loki https://grafana.github.io/loki/charts
# helm repo list
NAME URL
loki https://grafana.github.io/loki/charts
## Grafan , Prometheus 가 설치되어 있는 namespace 에 loki를 설치한다.
# helm upgrade --install loki --namespace=monitoring loki/loki
## log 수집을 위하여 promtail을 설치해주며, loki serviceName 에 먼저 배포한 loki의
serviceName 을 set 해준다.
# helm upgrade --install promtail loki/promtail --set "loki.serviceName=loki" --namespace monitoring
#kubectl get pods -A
monitoring loki-0 1/1 Running 0 125m 10.233.86.6 worker03 <none> <none>
monitoring promtail-d7t44 1/1 Running 0 124m 10.233.70.3 master <none> <none>
monitoring promtail-llldg 1/1 Running 0 124m 10.233.84.5 worker01 <none> <none>
monitoring promtail-rcxnk 1/1 Running 0 124m 10.233.86.7 worker03 <none> <none>
monitoring promtail-v9tqb 1/1 Running 0 124m 10.233.108.6 worker02 <none> <none>


URL : helm 으로 설치할때 정한 servicename 이 loki 이다.



GitHub - grafana/loki: Like Prometheus, but for logs.
Like Prometheus, but for logs. Contribute to grafana/loki development by creating an account on GitHub.
github.com
참고)
[K8S, Grafana, Loki] 쿠버네티스 log monitoring tool Loki 설치법 — MJ's burning camp (tistory.com)
[K8S, Grafana, Loki] 쿠버네티스 log monitoring tool Loki 설치법
이전글에서 kong Ingress controller plugin으로 Prometheus를 설치했고, 이후에 Grafana와 연동해서 대시보드에서 Metrics를 확인할수 있게 되었다. 이전글 보러가기 그라파나 대시보드에 domain으로 접속하는법
burning-camp.tistory.com
Loki - Kubernetes 로깅 | lapee79's Tech Blog
Loki - Kubernetes 로깅
Loki - Kubernetes 로깅 - lapee79's IT Tech Blog.
lapee79.github.io
로그 시스템 Loki - Promtail 자세히 설명 - 독서 (readfog.com)
日誌系統 Loki - Promtail 詳解
主流的日誌收集架構一般採用 ELK/EFK/EFLK ,但是這些都比較適合在重量級、需要日誌數據清理的場景下使用。 雲原生環境下, Grafana + Loki + Promtail 橫空出世。 “Like Prometheus, but for logs.”整體介紹
www.readfog.com
18. Kube 교육 - Loki Logging System (tistory.com)
18. Kube 교육 - Loki Logging System
실습 Loki Helm 설치 POD 로그 조회 및 Filtering Why Loki kube 로그는 기존 VM legacy 시스템과 다르게 로그가 저장되지 않고, pod 수도 너무 많고 (1,000개 pod 넘는건 일도 아님) 또 여러 pod 로그를 동시에..
jerryljh.tistory.com
라이선스 관련)
Grafana, Loki, and Tempo will be relicensed to AGPLv3 | Grafana Labs
Grafana, Loki, and Tempo will be relicensed to AGPLv3
Q&A with Grafana Labs CEO Raj Dutt about our licensing changes 10 min | 20 Apr 2021
grafana.com
Helm
Install Loki with Helm Prerequisites Make sure you have Helm installed. Add Loki’s chart repository to Helm: PLEASE NOTE On 2020/12/11 Loki’s Helm charts were moved from their initial location within the Loki repo and hosted at https://grafana.github.i
grafana.com
'기록남기기' 카테고리의 다른 글
| kafka on kubernetes (with Strimzi) (0) | 2021.08.19 |
|---|---|
| mariadb Galera Cluster on kubernetes (0) | 2021.08.18 |
| [k8s] helm 설치 (0) | 2020.12.11 |
| jetty 설치 (0) | 2020.11.26 |
| k8s (0) | 2020.02.18 |
- Total
- Today
- Yesterday
- 평생학습원
- ISA #연금저축펀드 #IRP
- 검단
- 먼 훗날 우리
- 우루과이
- 성수
- 하안동
- 이자카야
- ㅐ
- 빗썸
- ㅗ험
- confluent #kafka # control center
- MySQL
- 오징어청춘
- 광명동굴
- 인시그니아
- 영화
- 마라탕#하안동
- 성수동
- 구글홈
- 신천역
- redis
- centos7 #docker
- 비트코인
- ㅅ음
- k8s #kubernetes
- 오후전략 완료~ 신일전자 2100원/에스트래픽 4180원/분할매수/가치를 믿자!
- 인터파크 티켓팅
- 축구평가전
- 스시
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |