개인적으로 7주 과정에서 유익한 스터디 부분
혼자서 Alertmanager를 세팅하려고 했으면 머리카락이 빠지지않았을까 라는 생각이 들 정도로 많이 배울 수 있었음
kubectl create ns monitoring
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
#values.yaml 파일구성
cat <<EOT > ~/monitor-values.yaml
alertmanager:
ingress:
enabled: true
ingressClassName: alb
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
alb.ingress.kubernetes.io/certificate-arn: $CERT_ARN
alb.ingress.kubernetes.io/success-codes: 200-399
alb.ingress.kubernetes.io/group.name: "monitoring"
hosts:
- alertmanager.$KOPS_CLUSTER_NAME
paths:
- /*
#설치명령어
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack --version 45.0.0 --set prometheus.prometheusSpec.scrapeInterval='15s' --set prometheus.prometheusSpec.evaluationInterval='15s' -f monitor-values.yaml --namespace monitoring
#카르마 설치(alertmanager 관련 툴)
docker run -d -p 80:8080 -e ALERTMANAGER_URI=https://alertmanager.$KOPS_CLUSTER_NAME ghcr.io/prymitive/karma:latest
6주차 과정에서는 Alertmanager에 새로운 리소스를 추가하는 것을 목표로 학습을 진행하였다. prometheus의 리소스의 상태를 알림설정하는 것
그 과정에서 카르마로 편리하게 뭐가 문제인지 볼 수 있었다.
그리고 alertmanager에서 슬랙 웹훅을 활용하여 알람이 올 때 지속적으로 발생할 때 사일런스(알람끄기) 기능을 통해 끄는 법도 배웠다.
이번 학습의 경우 책의 내용을 따라하는 실습내용이 많아서 자세하게 설명이 어렵지만 어떤 부분을 추가했고 그로 인해 어떤 변화가 있었는지 간략하게 정리하려고 한다.
위 스크린샷을 보면 rules을 등록을 해주는 부분이 있는데
kubectl get prometheusrules로 확인할 수 있고 이 리소스가 있다는 걸 처음 알았다.
나는 여기서 새롭게 리소스를 생성도 해보고 새로운 옵션이 들어간 룰도 적용 시켜봤습니다.
kubectl create ns loki
helm repo add grafana https://grafana.github.io/helm-charts
cat <<EOT > ~/loki-values.yaml
persistence:
enabled: true
size: 20Gi
serviceMonitor:
enabled: true
EOT
helm install loki grafana/loki --version 2.16.0 -f loki-values.yaml --namespace loki
로그 확인의 중요성은 경험한 적이 있다. 하지만 확인 과정이 계속해서 컨테이너 이미지가 정상적인지 kubectl exec로 실행시켜 로그를 확인했었는데 로키를 통해 그라파나 내에서 로키를 소스공급자로 설정하여 쿼리형태로 확인할 수 있다는 걸 알 수 있었습니다.