참고
개요
grafana로 pod 모니터링 하면서 container에서 발생되는 로그를 좀 더
간편하게 보는 방법이 보여져서 겸사겸사 설치 해 봅니다.
container의 로그수집을 위해 설치하게 될 loki의 구성요소
- Loki : 메인 서버역할, 로그들을 저장하고 쿼리를 실행합니다.
- Promtail : Daemonset으로 모든 Node들에 배포되며 로그를 수집하여 Loki로 전달합니다.
- LokiQL : 수집된 로그를 찾는 쿼리언어
사전 준비
저는 prometheus와 grafana를 먼전 설치 한 후에 loki를 설치 했지만
loki를 먼저 설치해도 큰 문제는 없을 것 같긴 합니다 -0-
설치
loki 설치에 앞서
loki는 prometheus와 grafana를 필요로 하기 때문에
prometheus와 grafana가 설치된 namespace를 확인합니다.
kubectl get ns
저는 kubernetes-monitoring 에 prometheus와 grafana가 설치되어 있습니다.
repository 등록
loki의 helm chart를 등록하고 loki와 promtail을 순서대로 설치 합니다.
helm repo add loki <https://grafana.github.io/loki/charts>
helm repo update
loki 설치
prometheus가 설치된 namespace에 설치하도록 —namespace옵션을 사용하여 설치 합니다.
helm upgrade --install loki --namespace=kubernetes-monitoring loki/loki-stack
promtail 설치
helm 변수로 지정하는 “loki.serviceName=”의 값은 앞서 설치 했던 loki의 release name입니다.
저의 경우 “—install loki”로 loki를 설치 했으므로 아래와 같이 설정 합니다.
helm upgrade --install promtail loki/promtail --set "loki.serviceName=loki" --namespace kubernetes-monitoring
설치 확인
kubectl get pod -n kubernetes-monitoring
Grafana에서 log 확인
Loki Data Source 확인
Grafana에서 loki가 수집한 데이터에 접근이 가능한지 Data Source를 확인 합니다.
grafana에 접속해서 Data Source로 loki가 잘 추가되어 있는지 확인
이쁘게 추가되어 있구요, 클릭해서 들어가 봅니다.
일단 요렇게 생겼구요
아래 쪽에 로그 수집이 정상인지 test해볼 수 있습니다.
(그냥 한번 눌러 봅니다.)
Grafana로 container 로그 보기
Loki에서 제공하는 sample
https://grafana.com/grafana/dashboards/13639-logs-app/
- grafana panel꾸미는 내용은 생략 -
일단 원하는 container의 로그 보기는 확인 했습니다.
사용된 query
{namespace="$namespace", pod="$pod", container="CONTAINER_NAME"}
실제 운영할 때는 query 조건으로 검색할 수 있도록
pod labels에 특정 키워드 들을 추가 해주는 한결 사용하기 편할 것 같습니다.
'IT > Kubernetes' 카테고리의 다른 글
K8S Autoscale 리서치 (0) | 2023.04.17 |
---|---|
K8S resources.requests 필요한가? (1) | 2023.04.17 |
prometheus 설치 (with pvc) (0) | 2023.04.13 |
prometheus 설치 (with out pvc) (0) | 2023.04.13 |
EKS에 Agones 설치 (0) | 2023.04.13 |