prometheus & grafana & loki - yeardream-de-project-team4/k8s_project GitHub Wiki

prometheus & grafana

# prometheus namespace ์ƒ์„ฑ
kubectl create namespace prometheus

# prometheus ์„ค์น˜
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts 
helm repo update
helm search repo prometheus
helm pull prometheus-community/kube-prometheus-stack

# ์••์ถ•ํ’€๊ธฐ
tar xvfz kube-prometheus-stack-51.9.0.tgz
# ํด๋”๋กœ ์ด๋™
cd kube-prometheus-stack

# prometheus ์„ค์ •
vim values.yaml

# 51.9.0 ๋ฒ„์ „ ๊ธฐ์ค€ 
# 2627๋ฒˆ์งธ ์ค„ ClusterIP > NodePort๋กœ ๋ณ€๊ฒฝ
# 3077๋ฒˆ์งธ ์ค„ serviceMonitorSelectorNilUsesHelmValues: false ํ™•์ธ
# 3168๋ฒˆ์งธ ์ค„ retentionSize: โ€œ์›ํ•˜๋Š” ์‚ฌ์ด์ฆˆโ€
# ์ €์žฅ ํ›„ ์ข…๋ฃŒ(:wq)

# grafana ์„ค์ •
ํ˜„์žฌ ํด๋” kube-prometheus-stack
cd charts
cd grafana

vim values.yaml
# 188๋ฒˆ์งธ ์ค„ ClusterIP > NodePort๋กœ ๋ณ€๊ฒฝ

# ์‹คํ–‰
helm install --namespace prometheus --generate-name prometheus-community/kube-prometheus-stack -f my-values.yaml

# NodePort ํ™•์ธ
kubectl get all -n monitoring

# ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ํŽธ์ง‘ - NodePort ํฌํŠธ ์—ด๊ธฐ

[IP:Port]๋กœ prometheus ์ ‘์†

# grafana port ์„ค์ •
kubectl patch svc kube-prometheus-stack-1697532382-grafana -n monitoring -p '{"spec": {"type": "LoadBalancer"}}'
# type LoadBalancer ํ™•์ธ
kubectl get svc -n monitoring

# ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ํŽธ์ง‘ - LoadBalancer ๋ผ์ธ์— PORT(S)(NodePort ์—ด๊ธฐ)

[IP:Port]๋กœ grafana ์ ‘์†

# grafana ๋กœ๊ทธ์ธ
# id : admin
# password ํ™•์ธ
kubectl get secrets kube-prometheus-stack-1697522929-grafana --namespace monitoring -o jsonpath="{.data.admin-password}" | base64 -d

loki

# loki namespace ์ƒ์„ฑ
kubectl create namespace loki

# ๊ธฐ๋ณธ ํด๋”๋กœ ์ด๋™
# loki ์„ค์น˜
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm search repo loki
helm pull grafana/loki-stack

# ์••์ถ•ํ’€๊ธฐ
tar xvfz loki-stack-2.9.11.tgz 
# ํด๋”๋กœ ์ด๋™
cd loki-stack

vim my-values.yaml
# 6๋ฒˆ์งธ ์ค„ enabled: true ํ™•์ธ
# 25๋ฒˆ์งธ ์ค„ promtail true ํ™•์ธ

# ์‹คํ–‰
helm install --namespace loki --generate-name grafana/loki-stack -f my-values.yaml

# ์„œ๋น„์Šค ์ด๋ฆ„ ๋ฐ ์‹คํ–‰ ํ™•์ธ 
kubectl get all -n loki

# grafana ์ ‘์† > ํ† ๊ธ€ ํ•ญ๋ชฉ > connection > data source > new data source > loki ๊ฒ€์ƒ‰ > loki ํด๋ฆญ
# loki ์„ค์ •
# name : loki
# http url ํ™•์ธ
# ์„œ๋น„์Šค์ด๋ฆ„.๋„ค์ž„์ŠคํŽ˜์ด์Šค:3100
# http://loki-stack-????.loki:3100

# Save & test ํด๋ฆญ
# connection successful ๋ฉ”์‹œ์ง€ ํ™•์ธ [์ดˆ๋ก๋ฐ•์Šค]

# ํ† ๊ธ€ ํ•ญ๋ชฉ > Explore ์ ‘์†
# ์ฒดํฌ ๋ถ€๋ถ„ prometheus > loki๋กœ ๋ณ€๊ฒฝ ํ›„ code์— ์ž…๋ ฅ, Run query ํด๋ฆญ - ์›ํ•˜๋Š” pod log ํ™•์ธ