실습
Introduction
Prometheus 서버 구축
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Namespace metadata: name: monitoring --- apiVersion: v1 kind: ConfigMap metadata: name: prometheus-config labels: app: prometheus namespace: monitoring data: prometheus.yaml: | global: scrape_interval: 5s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] --- apiVersion: v1 kind: Service metadata: name: prometheus labels: app: prometheus namespace: monitoring spec: ports: - port: 9090 clusterIP: None selector: app: prometheus --- apiVersion: v1 kind: Service metadata: name: prometheus-external labels: app: prometheus namespace: monitoring spec: type: LoadBalancer ports: - port: 80 targetPort: 9090 selector: statefulset.kubernetes.io/pod-name: prometheus-0 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: prometheus labels: app: prometheus namespace: monitoring spec: selector: matchLabels: app: prometheus serviceName: prometheus template: metadata: labels: app: prometheus spec: securityContext: fsGroup: 2000 containers: - name: prometheus image: quay.io/prometheus/prometheus args: - --config.file=/etc/prometheus/prometheus.yaml - --storage.tsdb.path=/data ports: - containerPort: 9090 volumeMounts: - name: prometheus-config mountPath: /etc/prometheus - name: prometheus-data mountPath: /data volumes: - name: prometheus-config configMap: name: prometheus-config volumeClaimTemplates: - metadata: name: prometheus-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi EOFPod가 생성되었는지 확인
kubectl -n monitoring get pod prometheus-0Prometheus 서버 엔드포인트 확인
kubectl -n monitoring get svc prometheus-external \ -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}{"\n"}'웹브라우저에서 위에서 확인한 URL로 접속
상단에 있는 메뉴에서 Status -> Targets 클릭
상단에 있는 메뉴에서 Status -> Command-Line Flags 클릭
상단에 있는 메뉴에서 Status -> Configuration 클릭
상단에 있는 메뉴에서 Graph 클릭
웹브라우저에서 새로운 탭을 열고 프로메테우스 서버의 /metrics 경로로 접속 - 아래의 명령어로 접속 URL 확인 가능
kubectl -n monitoring get svc prometheus-external \ -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}{"/metrics"}{"\n"}'Expression 브라우저에 다음과 같은 쿼리 입력 후 실행
Prometheus에 수집된 총 샘플 갯수
prometheus_tsdb_head_samples_appended_total지난 1분간 초당 수집된 샘플 갯수
rate(prometheus_tsdb_head_samples_appended_total[1m])prometheus Job의 상태
up{job="prometheus"}
Expose metrics
NGINX 서버 생성
생성된 NGINX 웹서버의 /metrics 경로 호출
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Pod가 추가되는지 확인
NGINX Pod의 IP주소 확인
Prometheus 설정파일 수정
Prometheus 설정파일이 수정되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인
Prometheus 설정파일 Reload
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Command-Line Flags으로 이동해서 실행 옵션 확인
Prometheus 컨테이너에 명시한 실행옵션 확인
Lifecycle API 활성화
Prometheus Pod가 재생성되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Command-Line Flags으로 이동해서 실행 옵션 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Pod가 추가되는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 NGINX 서버에서 내보내는 지표가 수집되는지 확인
Prometheus Python Client로 작성한 소스코드 리뷰 - https://github.com/youngwjung/prometheus-python-client/blob/main/app.py
Pod 생성
애플리케이션 호출
리소스 삭제
Exporters
Exporter란 무엇인가? - https://prometheus.io/docs/introduction/glossary/#exporter
Exporter 종류 - https://prometheus.io/docs/instrumenting/exporters
Python Flask 웹 애플리케이션에 Exporter를 적용한 소스코드 리뷰 - https://github.com/youngwjung/prometheus-flask-exporter/blob/main/app.py 기존의 소스코드에 아래의 두줄의 코드만 추가됨
데모 애플리케이션 생성
Exporter가 내보내는 지표 확인
Flask 애플리케이션에 부하를 발생시키는 Pod 생성
HTTP 관련 지표가 발생하는지 확인
Flask 애플리케이션에서 발생하는 지표를 수집하도록 Prometheus 설정 변경
Prometheus 설정파일 Reload
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Service가 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인
지난 5분동안 평균 초당 요청수 확인
Graph를 선택해서 지표를 라인 그래프로 표시
데모 애플리케이션 삭제
Config Reloader
Prometheus 설정 파일 변경을 감지하고 다시 불러오는 컨테이너 추가
Prometheus Pod가 재생성되었는지 확인
Prometheus 설정 변경
Prometheus 로그 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인
Prometheus 설정 파일을 변경하면 변경분을 감지하고 서버에 반영되기 까지 최대 2-3분정도 시간이 걸림. 실습 진행시 Prometheus 설정 파일 변경이 이루어지는 경우에는 3-4분 정도 대기 후 다음 단계를 진행
Service Discovery
데모 애플리케이션 생성
Prometheus 설정 변경
Service 목록 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 확인한 Service들이 추가되었는지 확인
Prometheus 서버 로그 확인
권한 설정
권한 반영
Prometheus 서버 로그 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 확인한 Service들이 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인
Service 생성
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Service가 추가되었는지 확인
Service 삭제
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 삭제한 Service가 목록에서 없어졌는지 확인
Service Discovery를 통해서 확인 가능한 Metadata 확인 - https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Service Discovery로 이동해서 Target 별로 발견된 Label 목록 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kubernetes Service가 목록에서 없어졌는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Service Discovery로 이동해서 Targets 확인
Prometheus 설정 변경
모든 Pod 목록 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 클러스터에 존재하는 Pod들이 추가되었는지 확인
Prometheus 설정 변경
Endpoints 목록 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인
Flask 애플리케이션의 Pod 갯수를 3개로 조정
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인
데모 애플리케이션 삭제
Relabeling
데모 애플리케이션 생성
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Service Discovery로 이동해서 Targets 확인
Service에 Annotation 추가
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint 경로 확인
Service에 Annotation 추가
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint 경로 확인
Service에 Annotation 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들 경로 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인
지난 5분동안 평균 초당 요청수 확인
지난 5분동안 평균 초당 요청수 합을 확인
새로운 애플리케이션 배포
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Label이 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 각 서비스별로 지난 5분동안 평균 초당 요청수 확인
Service Discovery를 통해서 확인 가능한 Metadata 확인 - https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Label이 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인
Pod에 부여된 Label 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Label이 추가되었는지 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 불필요한 Label이 삭제되었는지 확인
Flask 애플리케이션이 내보내는 지표 확인
Expression 브라우저에서
python_으로 시작하는 지표 확인Prometheus 설정 변경
Expression 브라우저에서
python_으로 시작하는 지표 확인Expression 브라우저에서
process_로 시작하는 지표 확인Prometheus 설정 변경
Expression 브라우저에서
process_로 시작하는 지표 확인Expression 브라우저에서
flask_로 시작하는 지표 확인Prometheus 설정 변경
지표 이름이 변경되었는지 확인
데모 애플리케이션 삭제
Node Exporter
Node Exporter 설치 가이드 - https://prometheus.io/docs/guides/node-exporter
Node Exporter GitHub - https://github.com/prometheus/node_exporter
Node Exporter 설치
Node Exporter가 실행중인지 확인
Node Exporter가 내보내는 지표 확인
Node Exporter 실행옵션 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 Node Exporter가 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 노드에 마운트된 파일시스템 크기 확인
각 노드별로 루트 볼륨 크기 확인
각 노드별로 루트 볼륨 사용량 확인
Session Manager 플러그인 설치
한개의 Node로 Session Manager 연결
디스크 샤용량 확인
Session Manager 종료
파일시스템 관련 지표만 수집되도록 Prometheus 설정 변경
Prometheus에 저장된 모든 지표 목록 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 최근 1분안에 수집된 지표 목록 확인
Node Exporter 삭제
Kubernetes system component metrics
지표를 제공하는 쿠버네티스 구성요소 확인 - https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/
HTTP 요청을 수행할 Pod 생성
API 서버에서 제공하는 지표 확인
kubelet에서 제공하는 지표 확인 - /metrics
kubelet에서 제공하는 지표 확인 - /metrics/cadvisor
kubelet에서 제공하는 지표 확인 - /metrics/resource
kubelet에서 제공하는 지표 확인 - /metrics/probes
CoreDNS에서 제공하는 지표 확인
Prometheus 서버에 지표 접근 권한 부여
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kube-apiserver가 추가되었는지 확인
최근 1분안에 수집된 지표 목록 확인
쿠버네티스 객체별로 요청 갯수 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kubelet-cadvisor가 추가되었는지 확인
최근 1분안에 수집된 지표 목록 확인
Pod별 CPU 사용시간 확인
리소스 삭제
kube-state-metrics
kube-state-metrics 설치
kube-state-metrics가 내보내는 지표 확인
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kube-state-metrics가 추가되었는지 확인
최근 1분안에 수집된 지표 목록 확인
Node 상태 확인
Pod 상태 확인
Pod 생성
Pod 상태 확인
실행되고 있지 않는 Pod 목록 확인
리소스 삭제
Alerting
kube-state-metrics 설치
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에 명시한 Job들이 추가되었는지 확인
Alerting 규칙 추가
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 Alert 규칙들이 추가되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
Pod 생성
Pod 상태 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
Cluster Autoscaler가 활성화 되어 있을 경우에 비활성화
노드그룹에 설정된 노드 갯수 확인
노드그룹을 조정해서 노드 1개 추가
노드가 추가되었는지 확인
새로 추가된 노드의 상태가 Ready가 될때까지 대기
새로 생성된 노드로 Session Manager 연결
컨테이너 런타임 정지
Session Manager 종료
노드 상태 확인
위에서 컨테이너 런타임을 정지한 노드의 상세 상태 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
데모 애플리케이션 배포
Pod 생성 확인
Expression 브라우저에 다음과 같은 쿼리를 입력해서 PV별 가용한 디스크 크기 확인
PV에 999MB 크기의 파일 생성
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
https://webhook.site 에서 접속해서 생성된 Webhook URL를 확인 - 웹페이지를 닫지 마세요
위에서 생성한 URL을 환경변수로 지정
Alertmanager 생성
Pod가 생성되었는지 확인
Alertmanager 서버 엔드포인트 확인
웹브라우저에서 위에서 확인한 URL로 접속
Prometheus 설정에서 Alertmanger 추가
Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인
https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인
메시지 내용에서 title_link에 명시된 URL 확인
PV에 생성한 파일 삭제
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
Alertmanager 대시보드로 이동해서 Alert이 없어졌는지 확인
https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인 - 이전 Alert 발생한 시점에서 group_interval에 명시한 값만큼 지난 이후에 발송
새로운 메시지가 수신되지 않을 경우에는 Alertmanager 로그 확인
Alertmanager 설정 변경
Alertmanager 대시보드 상단에 있는 메뉴에서 Status로 이동해서 설정파일이 업데이트 되었는지 확인
Alertmanager 설정파일 Reload - 위의 단계에서 설정 파일이 업데이트 되어있지 않을 경우에 수행
Prometheus 설정 변경
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Command-Line Flags 클릭해서 설정파일이 업데이트 되었는지 확인
PV에 999MB 크기의 파일 생성
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인
https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인 - title_link 및 actions에 명시된 URL로 접속해서 어떤 내용이 표시되는지 확인
리소스 삭제
NotReady 상태의 노드 삭제
노드 갯수를 원래대로 조정
Prometheus Operator
Custom Resource 목록 - https://prometheus-operator.dev/docs/operator/design/
Prometheus Operator 설치
prometheuses.monitoring.coreos.com/v1 객체 내용 확인 - https://prometheus-operator.dev/docs/operator/api/#prometheus
Prometheus 설치
Prometheus Operator 로그 확인
생성된 StatefulSet 확인
생성된 StatefulSet의 상세 스펙 확인
Service 생성
Prometheus 서버 엔드포인트 확인
웹브라우저에서 위에서 확인한 URL로 접속
상단에 있는 메뉴에서 Status -> Configuration 클릭
생성된 Prometheus 객체 상세 내용 확인
생성된 Secret 확인
Prometheus 설정파일이 저장된 Secret 상세내용 확인
Base64로 인코딩된 Prometheus 설정파일 디코딩
새로운 scrape_interval 값 지정
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 로그 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인
ServiceMonitor 생성 - https://prometheus-operator.dev/docs/operator/api/#servicemonitor
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kube-apiserver가 추가되었는지 확인
최근 1분안에 수집된 지표 목록 확인
쿠버네티스 객체별로 요청 갯수 확인
데모 애플리케이션 배포
Pod 생성 확인
NGINX Exporter가 내보내는 지표 확인
PodMonitor 생성 - https://prometheus-operator.dev/docs/operator/api/#podmonitor
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 nginx가 추가되었는지 확인
PodMonitor 수정
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 nginx의 Label이 변경되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 NGINX Exporter에서 내보내는 지표가 수집되는지 확인
수집 설정 파일 생성
Secret 생성
수동으로 생성한 수집설정 파일 반영
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 prometheus가 추가되었는지 확인
Expression 브라우저에 다음과 같은 쿼리를 실행해서 Prometheus에서 내보내는 지표가 수집되는지 확인
Alertmanager 설치 - https://prometheus-operator.dev/docs/operator/api/#alertmanager
생성된 StatefulSet 확인
생성된 StatefulSet의 상세 스펙 확인
Service 생성
Alertmanager 서버 엔드포인트 확인
웹브라우저에서 위에서 확인한 URL로 접속
상단에 있는 메뉴에서 Status 클릭
https://webhook.site 에 접속해서 생성된 Webhook URL를 확인 - 웹페이지를 닫지 마세요
위에서 확인한 Webhook URL으로 Secret 생성
AlertmanagerConfig 생성
Alertmanager에 AlertmanagerConfig 반영
Alertmanager 설정파일이 업데이트 되었는지 확인
위에서 생성한 AlertmanagerConfig를 글로벌 설정으로 반영 - https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/alerting.md#specify-global-alertmanager-config
Alertmanager 설정파일이 업데이트 되었는지 확인
Alertmanger 상단에 있는 메뉴에서 Status 클릭해서 설정 파일이 업데이트 되었는지 확인
Prometheus 설정에 Alertmanger 추가
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인
Alert 규칙 생성
Prometheus 설정에 위에서 생성한 규칙 추가
규칙 파일이 생성되었는지 확인
Prometheus 설정파일이 업데이트 되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 Alert 규칙들이 추가되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
NGINX에 부하를 발생시키는 Pod 생성
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인
49번에서 접속한 https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인
리소스 삭제
kube-prometheus
kube-prometheus-stack 헬름 차트 리뷰 - https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
리포지토리 추가
차트 설치
생성된 객체 확인
생성된 ServiceMonitor 확인
Prometheus 서버 엔드포인트 확인
OR
웹브라우저에서 위에서 확인한 URL로 접속
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Job 목록 확인
Alertmanager 서버 엔드포인트 확인
웹브라우저에서 위에서 확인한 URL로 접속
Grafana 서버 엔드포인트 확인
웹브라우저에서 위에서 확인한 URL로 접속 - 아이디: admin, 비밀번호: asdf1234
대시보드 목록에서 Prometheus / Overview 확인
대시보드 목록에서 Kubernetes / Compute Resources / Pod 확인
kubelet 지표 수집 활성화
ServiceMonitor 목록 확인
새로 생성된 ServiceMonitor 상세내용 확인
kube-system 네임스페이스에 있는 Service 목록 확인
kube-system 네임스페이스에 있는 Endpoint 목록 확인
Node 아이피 주소 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Job 목록 확인
Grafana 대시보드 목록에서 Kubernetes / Kubelet 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 목록 확인
kubelet 규칙 추가
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 새로운 규칙이 추가되었는지 확인
kubernetesStorage 규칙 활성화
Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 새로운 규칙이 추가되었는지 확인
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert이 추가되었는지 확인
데모 애플리케이션 배포
Pod 생성 확인
Expression 브라우저에 다음과 같은 쿼리를 입력해서 PV별 가용한 디스크 크기 확인
Grafana 대시보드 목록에서 Kubernetes / Persistent Volumes 확인
PV에 999MB 크기의 파일 생성
Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인
Grafana 대시보드 목록에서 Kubernetes / Persistent Volumes 확인
Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인
https://webhook.site 에 접속해서 생성된 Webhook URL를 확인 - 웹페이지를 닫지 마세요
위에서 확인한 Webhook URL을 환경변수로 지정
Alertmanager에 수신자 설정 추가
https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인
리소스 삭제
Last updated