알림 설정

이 페이지는 플랫폼 관리자용으로 작성되었습니다.

Alertmanager는 관리자 클러스터에 설치되어 알림을 수집하고 전송합니다. 사전 정의된 알림 규칙은 사전 정의된 알림 정책을 참조하세요.

알림 채널 구성

  1. kube-system 네임스페이스에서 logmon: system_metrics 라벨로 alertmanager 구성을 사용하여 configmap을 만듭니다. alertmanager 구성은 alertmanager 구성 규칙과 동일한 구문을 포함하며, data 필드 아래의 alertmanager.yml에 추가되어야 합니다. 샘플 구성 파일을 참조하세요.

    • Alertmanager 구성에서 알림 채널을 정의하려면 alertmanager 구성을 따르세요.

    • (선택사항) Slack 웹훅을 사용하려면 Slack 웹훅에서 웹훅 사용 설정에 대해 자세히 알아보세요.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_metrics
    data:
      # The file name must be alertmanager.yml
      alertmanager.yml: |
        # Add the customized alertmanager configuration here
    

    CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME을 구성 파일의 이름으로 바꿉니다.

  2. 다음 명령어를 실행하여 명령줄 편집기에서 LogMon 커스텀 리소스를 엽니다.

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. LogMon 커스텀 리소스에서 spec/system_metrics/outputs/default_prometheus/deployment/alertmanager 필드 아래에 alertmanagerConfigurationConfigmaps 필드를 추가합니다.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                  alertmanagerConfigurationConfigmaps:
                  # The name should match the configmap name created in step 1.
                  - "CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME"
    
  4. 변경사항을 LogMon 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.

[선택사항] 알림 정책 맞춤설정

  1. kube-system 네임스페이스에서 logmon: system_metrics label로 Prometheus 규칙을 사용하여 configmap을 만듭니다. Prometheus 규칙 정의는 Prometheus 알림 규칙 및 Prometheus 레코딩 규칙과 동일한 구문을 갖습니다. configmap에 여러 Prometheus 규칙 파일을 포함할 수 있습니다. 샘플 구성 파일을 참조하세요.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-prometheus-rules-configmap-name>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_metrics
    data:
      # The file name must be unique across all customized prometheus rule files.
      <a-unique-file-name>: |
      # Add customized recording rules here
       …
    
      # The file name must be unique across all customized prometheus rule files.
      <a-unique-file-name>: |
      # Add customized alerting rules here
  2. 다음 명령어를 실행하여 명령줄 편집기에서 LogMon 커스텀 리소스를 엽니다.

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. LogMon 커스텀 리소스에서 spec/system_metrics/outputs/default_prometheus/deployment/prometheus 필드 아래에 prometheusRulesConfigmaps 필드를 추가합니다.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                prometheus:
                  prometheusRulesConfigmaps:
                  # The name should match the configmap name created in step 1.
                  - "<customized-prometheus-rules-configmap-name>"
    
  4. 변경사항을 LogMon 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.

알림 개요 대시보드

Monitoring 대시보드에서 알림 개요 대시보드를 사용할 수 있습니다.

알림 개요 대시보드

Alertmanager

Alertmanager를 사용하면 클라이언트 애플리케이션의 경고 알림을 모니터링할 수 있습니다.

Alertmanager를 사용하여 알림을 검사하고 무음으로 설정할 수 있습니다.

Alertmanager 사용자 인터페이스

Alertmanager 인터페이스에 액세스하려면 관리 센터의 모니터링 탭에서 알림 버튼을 클릭합니다.

사전 정의된 알림 정책

다음은 prometheus에 사전 설치된 알림 규칙입니다.

이름 설명
KubeAPIDown(심각) KubeAPI가 Prometheus 대상 검색에서 15분 동안 사라졌습니다.
KubeClientErrors(경고) Kubernetes API 서버 클라이언트 오류율이 15분 동안 0.01을 초과합니다.
KubeClientErrors(심각) Kubernetes API 서버 클라이언트 오류율이 15분 동안 0.1을 초과합니다.
KubePodCrashLooping(경고) 포드가 15분 이상 비정상 종료되는 루프 상태입니다.
KubePodNotReady(경고) 포드가 15분 이상 사용할 준비가 되지 않았습니다.
KubePersistentVolumeFillUp(심각) 클레임된 PersistentVolume의 무료 바이트가 0.03 미만입니다.
KubePersistentVolumeFillingUp (경고) 클레임된 PersistentVolume의 무료 바이트가 0.15 미만입니다.
KubePersistentVolumeError(심각) 영구 볼륨이 5분 동안 실패 또는 대기 단계에 있습니다.
KubeNodeNotReady(경고) 노드가 15분 이상 응답하지 않습니다.
KubeNodeCPUUsageHigh(심각) 노드 CPU 사용량이 80%를 초과합니다.
KubeNodeMemoryUsageHigh(심각) 노드 메모리 사용량이 80%를 초과합니다.
NodeFilesystemSpaceFillingUp(경고) 노드 파일 시스템 사용량이 60%를 초과합니다.
NodeFilesystemSpaceFillingUp(심각) 노드 파일 시스템 사용량이 85%를 초과합니다.
CertManagerCertExpirySoon(경고) 인증서가 21일 후 만료됩니다.
CertManagerCertNotReady(심각) 10분 후 트래픽을 처리하는 데 사용할 인증서가 준비되지 않았습니다.
CertManagerHitingRateLimits(심각) 5분 동안 인증서 생성/갱신 비율 제한에 도달했습니다.
DeploymentNotReady(심각) 관리자 클러스터의 배포가 15분 이상 준비되지 않은 상태입니다.

다음 단계