アラート

アラートを収集して配信するために、管理クラスタに Alertmanager がインストールされています。定義済みのアラートルールについては、事前定義されたアラート ポリシーをご覧ください。

通知チャンネルを構成する

  1. kube-system 名前空間で logmon: system_metrics ラベルを使用してアラート マネージャー構成で configmap を作成します。アラート マネージャーの構成は、アラート マネージャーの構成ルールと同じ構文であり、data フィールドの下の alertmanager.yml に追加する必要があります。サンプル構成ファイルをご覧ください。

    • Alertmanager 構成でAlertmanager の構成に従って、通知チャンネルを定義します。

    • (省略可)Slack Webhook を使用する場合は、Slack Webhook で Webhook の有効化について確認してください。

    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
    
  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. logmon: system_metrics label を使用して、kube-system 名前空間で 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 Dashboard で使用できます。

アラートの概要ダッシュボード

事前定義されたアラート ポリシー

Prometheus にプリインストールされているアラートルールは次のとおりです。

名前 説明
KubeAPIDown(重大) KubeAPI は Prometheus ターゲットの検出から 15 分間、表示されなくなりました。
KubeClientErrors(警告) Kubernetes API サーバー クライアント エラー率が 0.01 を 15 分間超えました。
KubeClientErrors(重大) Kubernetes API サーバー クライアント エラー率が 0.1 を 15 分間超えました。
KubePodCrashLooping(警告) ポッドがクラッシュ ループ状態のまま 15 分以上経過しています。
KubePodNotReady(警告) ポッドが 15 分以上準備されていない状態です。
KubePersistentVolumeFillingUp(重大) 要求された PersistentVolume のフリーバイトが 0.03 未満です。
KubePersistentVolumeFillingUp(警告) 要求された PersistentVolume のフリーバイトが 0.15 未満です。
KubePersistentVolumeError(重大) 永続ボリュームが 5 分間、失敗または保留フェーズにあります。
KubeNodeNotReady(警告) ノードが 15 分以上準備できていません。
KubeNodeCPUUsageHigh(重大) ノードの CPU 使用率が 80% を超えています。
KubeNodeMemoryUsageHigh(重大) ノードのメモリ使用量が 80% を超えています。
NodeFilesystemSpaceFillingUp(警告) ノードファイル システムの使用量が 60% を超えています。
NodeFilesystemSpaceFillingUp(重大) ノードファイル システムの使用量が 85% を超えています。
CertManagerAbsent(重大) Cert-manager が Prometheus に 10 分間、表示されなくなりました。証明書が適切に作成または更新されていない可能性があります。
CertManagerCertExpirySoon(警告) 証明書の有効期限が 21 日後に切れます。
CertManagerCertNotReady(重大) 10 分後にトラフィックを処理するための証明書が準備ができていません。
CertManagerHittingRateLimits(重大) 5 分間にわたり、証明書の作成 / 更新のレート制限に達しました。