실습

Introduction

  1. 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
    EOF
  2. Pod가 생성되었는지 확인

    kubectl -n monitoring get pod prometheus-0
  3. Prometheus 서버 엔드포인트 확인

    kubectl -n monitoring get svc prometheus-external \
    -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}{"\n"}'
  4. 웹브라우저에서 위에서 확인한 URL로 접속

  5. 상단에 있는 메뉴에서 Status -> Targets 클릭

  6. 상단에 있는 메뉴에서 Status -> Command-Line Flags 클릭

  7. 상단에 있는 메뉴에서 Status -> Configuration 클릭

  8. 상단에 있는 메뉴에서 Graph 클릭

  9. 웹브라우저에서 새로운 탭을 열고 프로메테우스 서버의 /metrics 경로로 접속 - 아래의 명령어로 접속 URL 확인 가능

    kubectl -n monitoring get svc prometheus-external \
    -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}{"/metrics"}{"\n"}'
  10. Expression 브라우저에 다음과 같은 쿼리 입력 후 실행

    1. Prometheus에 수집된 총 샘플 갯수

      prometheus_tsdb_head_samples_appended_total
    2. 지난 1분간 초당 수집된 샘플 갯수

      rate(prometheus_tsdb_head_samples_appended_total[1m])
    3. prometheus Job의 상태

      up{job="prometheus"}

Expose metrics

  1. NGINX 서버 생성

  2. 생성된 NGINX 웹서버의 /metrics 경로 호출

  3. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Pod가 추가되는지 확인

  4. NGINX Pod의 IP주소 확인

  5. Prometheus 설정파일 수정

  6. Prometheus 설정파일이 수정되었는지 확인

  7. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인

  8. Prometheus 설정파일 Reload

  9. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Command-Line Flags으로 이동해서 실행 옵션 확인

  10. Prometheus 컨테이너에 명시한 실행옵션 확인

  11. Lifecycle API 활성화

  12. Prometheus Pod가 재생성되었는지 확인

  13. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Command-Line Flags으로 이동해서 실행 옵션 확인

  14. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인

  15. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Pod가 추가되는지 확인

  16. Expression 브라우저에 다음과 같은 쿼리를 실행해서 NGINX 서버에서 내보내는 지표가 수집되는지 확인

  17. Prometheus Python Client로 작성한 소스코드 리뷰 - https://github.com/youngwjung/prometheus-python-client/blob/main/app.py

  18. Pod 생성

  19. 애플리케이션 호출

  20. 리소스 삭제

Exporters

  1. Python Flask 웹 애플리케이션에 Exporter를 적용한 소스코드 리뷰 - https://github.com/youngwjung/prometheus-flask-exporter/blob/main/app.py 기존의 소스코드에 아래의 두줄의 코드만 추가됨

  2. 데모 애플리케이션 생성

  3. Exporter가 내보내는 지표 확인

  4. Flask 애플리케이션에 부하를 발생시키는 Pod 생성

  5. HTTP 관련 지표가 발생하는지 확인

  6. Flask 애플리케이션에서 발생하는 지표를 수집하도록 Prometheus 설정 변경

  7. Prometheus 설정파일 Reload

  8. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Service가 추가되었는지 확인

  9. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인

  10. 지난 5분동안 평균 초당 요청수 확인

  11. Graph를 선택해서 지표를 라인 그래프로 표시

  12. 데모 애플리케이션 삭제

Config Reloader

  1. Prometheus 설정 파일 변경을 감지하고 다시 불러오는 컨테이너 추가

  2. Prometheus Pod가 재생성되었는지 확인

  3. Prometheus 설정 변경

  4. Prometheus 로그 확인

  5. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인

  6. Prometheus 설정 파일을 변경하면 변경분을 감지하고 서버에 반영되기 까지 최대 2-3분정도 시간이 걸림. 실습 진행시 Prometheus 설정 파일 변경이 이루어지는 경우에는 3-4분 정도 대기 후 다음 단계를 진행

Service Discovery

  1. 데모 애플리케이션 생성

  2. Prometheus 설정 변경

  3. Service 목록 확인

  4. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 확인한 Service들이 추가되었는지 확인

  5. Prometheus 서버 로그 확인

  6. 권한 설정

  7. 권한 반영

  8. Prometheus 서버 로그 확인

  9. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 확인한 Service들이 추가되었는지 확인

  10. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인

  11. Service 생성

  12. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 생성한 Service가 추가되었는지 확인

  13. Service 삭제

  14. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 삭제한 Service가 목록에서 없어졌는지 확인

  15. Service Discovery를 통해서 확인 가능한 Metadata 확인 - https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config

  16. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Service Discovery로 이동해서 Target 별로 발견된 Label 목록 확인

  17. Prometheus 설정 변경

  18. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kubernetes Service가 목록에서 없어졌는지 확인

  19. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Service Discovery로 이동해서 Targets 확인

  20. Prometheus 설정 변경

  21. 모든 Pod 목록 확인

  22. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 클러스터에 존재하는 Pod들이 추가되었는지 확인

  23. Prometheus 설정 변경

  24. Endpoints 목록 확인

  25. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인

  26. Flask 애플리케이션의 Pod 갯수를 3개로 조정

  27. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인

  28. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인

  29. 데모 애플리케이션 삭제

Relabeling

  1. 데모 애플리케이션 생성

  2. Prometheus 설정 변경

  3. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인

  4. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Service Discovery로 이동해서 Targets 확인

  5. Service에 Annotation 추가

  6. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인

  7. Prometheus 설정 변경

  8. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint 경로 확인

  9. Service에 Annotation 추가

  10. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint 경로 확인

  11. Service에 Annotation 변경

  12. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들 경로 확인

  13. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인

  14. 지난 5분동안 평균 초당 요청수 확인

  15. 지난 5분동안 평균 초당 요청수 합을 확인

  16. 새로운 애플리케이션 배포

  17. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Endpoint들이 추가되었는지 확인

  18. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인

  19. Prometheus 설정 변경

  20. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Label이 추가되었는지 확인

  21. Expression 브라우저에 다음과 같은 쿼리를 실행해서 각 서비스별로 지난 5분동안 평균 초당 요청수 확인

  22. Service Discovery를 통해서 확인 가능한 Metadata 확인 - https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config

  23. Prometheus 설정 변경

  24. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Label이 추가되었는지 확인

  25. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Flask 서버에서 내보내는 지표가 수집되는지 확인

  26. Pod에 부여된 Label 확인

  27. Prometheus 설정 변경

  28. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Label이 추가되었는지 확인

  29. Prometheus 설정 변경

  30. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 불필요한 Label이 삭제되었는지 확인

  31. Flask 애플리케이션이 내보내는 지표 확인

  32. Expression 브라우저에서 python_ 으로 시작하는 지표 확인

  33. Prometheus 설정 변경

  34. Expression 브라우저에서 python_ 으로 시작하는 지표 확인

  35. Expression 브라우저에서 process_ 로 시작하는 지표 확인

  36. Prometheus 설정 변경

  37. Expression 브라우저에서 process_ 로 시작하는 지표 확인

  38. Expression 브라우저에서 flask_ 로 시작하는 지표 확인

  39. Prometheus 설정 변경

  40. 지표 이름이 변경되었는지 확인

  41. 데모 애플리케이션 삭제

Node Exporter

  1. Node Exporter 설치 가이드 - https://prometheus.io/docs/guides/node-exporter

  2. Node Exporter 설치

  3. Node Exporter가 실행중인지 확인

  4. Node Exporter가 내보내는 지표 확인

  5. Node Exporter 실행옵션 확인

  6. Prometheus 설정 변경

  7. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에서 Node Exporter가 추가되었는지 확인

  8. Expression 브라우저에 다음과 같은 쿼리를 실행해서 노드에 마운트된 파일시스템 크기 확인

  9. 각 노드별로 루트 볼륨 크기 확인

  10. 각 노드별로 루트 볼륨 사용량 확인

  11. Session Manager 플러그인 설치

  12. 한개의 Node로 Session Manager 연결

  13. 디스크 샤용량 확인

  14. Session Manager 종료

  15. 파일시스템 관련 지표만 수집되도록 Prometheus 설정 변경

  16. Prometheus에 저장된 모든 지표 목록 확인

  17. Expression 브라우저에 다음과 같은 쿼리를 실행해서 최근 1분안에 수집된 지표 목록 확인

  18. Node Exporter 삭제

Kubernetes system component metrics

  1. 지표를 제공하는 쿠버네티스 구성요소 확인 - https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/

  2. HTTP 요청을 수행할 Pod 생성

  3. API 서버에서 제공하는 지표 확인

  4. kubelet에서 제공하는 지표 확인 - /metrics

  5. kubelet에서 제공하는 지표 확인 - /metrics/cadvisor

  6. kubelet에서 제공하는 지표 확인 - /metrics/resource

  7. kubelet에서 제공하는 지표 확인 - /metrics/probes

  8. CoreDNS에서 제공하는 지표 확인

  9. Prometheus 서버에 지표 접근 권한 부여

  10. Prometheus 설정 변경

  11. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kube-apiserver가 추가되었는지 확인

  12. 최근 1분안에 수집된 지표 목록 확인

  13. 쿠버네티스 객체별로 요청 갯수 확인

  14. Prometheus 설정 변경

  15. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kubelet-cadvisor가 추가되었는지 확인

  16. 최근 1분안에 수집된 지표 목록 확인

  17. Pod별 CPU 사용시간 확인

  18. 리소스 삭제

kube-state-metrics

  1. kube-state-metrics 설치

  2. kube-state-metrics가 내보내는 지표 확인

  3. Prometheus 설정 변경

  4. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kube-state-metrics가 추가되었는지 확인

  5. 최근 1분안에 수집된 지표 목록 확인

  6. Node 상태 확인

  7. Pod 상태 확인

  8. Pod 생성

  9. Pod 상태 확인

  10. 실행되고 있지 않는 Pod 목록 확인

  11. 리소스 삭제

Alerting

  1. kube-state-metrics 설치

  2. Prometheus 설정 변경

  3. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 위에 명시한 Job들이 추가되었는지 확인

  4. Alerting 규칙 추가

  5. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 Alert 규칙들이 추가되었는지 확인

  6. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  7. Pod 생성

  8. Pod 상태 확인

  9. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  10. Cluster Autoscaler가 활성화 되어 있을 경우에 비활성화

  11. 노드그룹에 설정된 노드 갯수 확인

  12. 노드그룹을 조정해서 노드 1개 추가

  13. 노드가 추가되었는지 확인

  14. 새로 추가된 노드의 상태가 Ready가 될때까지 대기

  15. 새로 생성된 노드로 Session Manager 연결

  16. 컨테이너 런타임 정지

  17. Session Manager 종료

  18. 노드 상태 확인

  19. 위에서 컨테이너 런타임을 정지한 노드의 상세 상태 확인

  20. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  21. 데모 애플리케이션 배포

  22. Pod 생성 확인

  23. Expression 브라우저에 다음과 같은 쿼리를 입력해서 PV별 가용한 디스크 크기 확인

  24. PV에 999MB 크기의 파일 생성

  25. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  26. https://webhook.site 에서 접속해서 생성된 Webhook URL를 확인 - 웹페이지를 닫지 마세요

  27. 위에서 생성한 URL을 환경변수로 지정

  28. Alertmanager 생성

  29. Pod가 생성되었는지 확인

  30. Alertmanager 서버 엔드포인트 확인

  31. 웹브라우저에서 위에서 확인한 URL로 접속

  32. Prometheus 설정에서 Alertmanger 추가

  33. Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인

  34. https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인

  35. 메시지 내용에서 title_link에 명시된 URL 확인

  36. PV에 생성한 파일 삭제

  37. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  38. Alertmanager 대시보드로 이동해서 Alert이 없어졌는지 확인

  39. https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인 - 이전 Alert 발생한 시점에서 group_interval에 명시한 값만큼 지난 이후에 발송

  40. 새로운 메시지가 수신되지 않을 경우에는 Alertmanager 로그 확인

  41. Alertmanager 설정 변경

  42. Alertmanager 대시보드 상단에 있는 메뉴에서 Status로 이동해서 설정파일이 업데이트 되었는지 확인

  43. Alertmanager 설정파일 Reload - 위의 단계에서 설정 파일이 업데이트 되어있지 않을 경우에 수행

  44. Prometheus 설정 변경

  45. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Command-Line Flags 클릭해서 설정파일이 업데이트 되었는지 확인

  46. PV에 999MB 크기의 파일 생성

  47. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  48. Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인

  49. https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인 - title_link 및 actions에 명시된 URL로 접속해서 어떤 내용이 표시되는지 확인

  50. 리소스 삭제

  51. NotReady 상태의 노드 삭제

  52. 노드 갯수를 원래대로 조정

Prometheus Operator

  1. Prometheus Operator 설치

  2. prometheuses.monitoring.coreos.com/v1 객체 내용 확인 - https://prometheus-operator.dev/docs/operator/api/#prometheus

  3. Prometheus 설치

  4. Prometheus Operator 로그 확인

  5. 생성된 StatefulSet 확인

  6. 생성된 StatefulSet의 상세 스펙 확인

  7. Service 생성

  8. Prometheus 서버 엔드포인트 확인

  9. 웹브라우저에서 위에서 확인한 URL로 접속

  10. 상단에 있는 메뉴에서 Status -> Configuration 클릭

  11. 생성된 Prometheus 객체 상세 내용 확인

  12. 생성된 Secret 확인

  13. Prometheus 설정파일이 저장된 Secret 상세내용 확인

  14. Base64로 인코딩된 Prometheus 설정파일 디코딩

  15. 새로운 scrape_interval 값 지정

  16. Prometheus 설정파일이 업데이트 되었는지 확인

  17. Prometheus 로그 확인

  18. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인

  19. Prometheus 설정파일이 업데이트 되었는지 확인

  20. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 kube-apiserver가 추가되었는지 확인

  21. 최근 1분안에 수집된 지표 목록 확인

  22. 쿠버네티스 객체별로 요청 갯수 확인

  23. 데모 애플리케이션 배포

  24. Pod 생성 확인

  25. NGINX Exporter가 내보내는 지표 확인

  26. Prometheus 설정파일이 업데이트 되었는지 확인

  27. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 nginx가 추가되었는지 확인

  28. PodMonitor 수정

  29. Prometheus 설정파일이 업데이트 되었는지 확인

  30. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 nginx의 Label이 변경되었는지 확인

  31. Expression 브라우저에 다음과 같은 쿼리를 실행해서 NGINX Exporter에서 내보내는 지표가 수집되는지 확인

  32. 수집 설정 파일 생성

  33. Secret 생성

  34. 수동으로 생성한 수집설정 파일 반영

  35. Prometheus 설정파일이 업데이트 되었는지 확인

  36. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 prometheus가 추가되었는지 확인

  37. Expression 브라우저에 다음과 같은 쿼리를 실행해서 Prometheus에서 내보내는 지표가 수집되는지 확인

  38. 생성된 StatefulSet 확인

  39. 생성된 StatefulSet의 상세 스펙 확인

  40. Service 생성

  41. Alertmanager 서버 엔드포인트 확인

  42. 웹브라우저에서 위에서 확인한 URL로 접속

  43. 상단에 있는 메뉴에서 Status 클릭

  44. https://webhook.site 에 접속해서 생성된 Webhook URL를 확인 - 웹페이지를 닫지 마세요

  45. 위에서 확인한 Webhook URL으로 Secret 생성

  46. AlertmanagerConfig 생성

  47. Alertmanager에 AlertmanagerConfig 반영

  48. Alertmanager 설정파일이 업데이트 되었는지 확인

  49. Alertmanager 설정파일이 업데이트 되었는지 확인

  50. Alertmanger 상단에 있는 메뉴에서 Status 클릭해서 설정 파일이 업데이트 되었는지 확인

  51. Prometheus 설정에 Alertmanger 추가

  52. Prometheus 설정파일이 업데이트 되었는지 확인

  53. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Configuration으로 이동해서 설정 변경분이 반영되었는지 확인

  54. Alert 규칙 생성

  55. Prometheus 설정에 위에서 생성한 규칙 추가

  56. 규칙 파일이 생성되었는지 확인

  57. Prometheus 설정파일이 업데이트 되었는지 확인

  58. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 Alert 규칙들이 추가되었는지 확인

  59. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  60. NGINX에 부하를 발생시키는 Pod 생성

  61. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  62. Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인

  63. 49번에서 접속한 https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인

  64. 리소스 삭제

kube-prometheus

  1. 리포지토리 추가

  2. 차트 설치

  3. 생성된 객체 확인

  4. 생성된 ServiceMonitor 확인

  5. Prometheus 서버 엔드포인트 확인

    OR

  6. 웹브라우저에서 위에서 확인한 URL로 접속

  7. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Job 목록 확인

  8. Alertmanager 서버 엔드포인트 확인

  9. 웹브라우저에서 위에서 확인한 URL로 접속

  10. Grafana 서버 엔드포인트 확인

  11. 웹브라우저에서 위에서 확인한 URL로 접속 - 아이디: admin, 비밀번호: asdf1234

  12. 대시보드 목록에서 Prometheus / Overview 확인

  13. 대시보드 목록에서 Kubernetes / Compute Resources / Pod 확인

  14. kubelet 지표 수집 활성화

  15. ServiceMonitor 목록 확인

  16. 새로 생성된 ServiceMonitor 상세내용 확인

  17. kube-system 네임스페이스에 있는 Service 목록 확인

  18. kube-system 네임스페이스에 있는 Endpoint 목록 확인

  19. Node 아이피 주소 확인

  20. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Targets으로 이동해서 Job 목록 확인

  21. Grafana 대시보드 목록에서 Kubernetes / Kubelet 확인

  22. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 목록 확인

  23. kubelet 규칙 추가

  24. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 새로운 규칙이 추가되었는지 확인

  25. kubernetesStorage 규칙 활성화

  26. Prometheus 대시보드 상단에 있는 메뉴에서 Status -> Rules 이동해서 새로운 규칙이 추가되었는지 확인

  27. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert이 추가되었는지 확인

  28. 데모 애플리케이션 배포

  29. Pod 생성 확인

  30. Expression 브라우저에 다음과 같은 쿼리를 입력해서 PV별 가용한 디스크 크기 확인

  31. Grafana 대시보드 목록에서 Kubernetes / Persistent Volumes 확인

  32. PV에 999MB 크기의 파일 생성

  33. Prometheus 대시보드 상단에 있는 메뉴에서 Alerts로 이동 Alert 상태 확인

  34. Grafana 대시보드 목록에서 Kubernetes / Persistent Volumes 확인

  35. Alertmanager 대시보드로 이동해서 Alert이 발생되었는지 확인

  36. https://webhook.site 에 접속해서 생성된 Webhook URL를 확인 - 웹페이지를 닫지 마세요

  37. 위에서 확인한 Webhook URL을 환경변수로 지정

  38. Alertmanager에 수신자 설정 추가

  39. https://webhook.site 웹페이지가 열린 브라우저로 이동해서 새로운 메세지가 수신되었는지 확인

  40. 리소스 삭제

Last updated