アラート ポリシーの作成

このページでは、ベアメタル版 Anthos クラスタのアラート ポリシーを作成する方法について説明します。

始める前に

アラート ポリシーを作成するには、次の権限が必要です。

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.update

次のいずれかのロールがある場合、これらの権限が付与されます。

  • monitoring.alertPolicyEditor
  • monitoring.editor
  • プロジェクト編集者
  • プロジェクト オーナー

ロールを確認するには、Google Cloud Console の [IAM] ページに移動します。

ポリシーの作成: クラスタ API サーバーの停止

この演習では、クラスタの Kubernetes API サーバー用のアラート ポリシーを作成します。このポリシーを設定すると、クラスタの API サーバーが停止するたびに通知を受けるように準備できます。

  1. ポリシー構成ファイル apiserver-down.json をダウンロードします。

  2. ポリシーを作成するには:

    gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
    

    POLICY_CONFIG は、ダウンロードした構成ファイルのパスに置き換えます。

  3. アラート ポリシーを表示するには:

    Console

    1. Google Cloud Console で、[モニタリング] ページに移動します。

      [モニタリング] に移動

    2. 左側にある [アラート] を選択します。

    3. [Policies] に、アラート ポリシーのリストが表示されます。

      リストで [Anthos on Baemetal API server down (critical)] を選択して、新しいポリシーの詳細を確認します。[Conditions] に、ポリシーの説明が表示されます。例:

      Policy violates when ANY condition is met
      Anthos on baremetal API server is up
      

    gcloud

    gcloud alpha monitoring policies list

    出力に、ポリシーの詳細情報が表示されます。例:

    ---
    combiner: OR
    conditions:
    - conditionMonitoringQueryLanguage:
        duration: 0s
        query: |-
          { t_0:
              fetch k8s_container
              | metric 'kubernetes.io/anthos/up'
              | filter (resource.container_name =~ 'kube-apiserver')
              | align mean_aligner()
              | group_by 1m, [value_up_mean: mean(value.up)]
              | every 1m
              | group_by [resource.project_id, resource.location, resource.cluster_name],
                  [value_up_mean_aggregate: aggregate(value_up_mean)]
          ; t_1:
              fetch k8s_container::kubernetes.io/anthos/anthos_cluster_info
              | filter (metric.anthos_distribution = 'baremetal')
              | align mean_aligner()
              | group_by [resource.project_id, resource.location, resource.cluster_name],
                  [value_anthos_cluster_info_aggregate:
                     aggregate(value.anthos_cluster_info)]
              | every 1m }
          | join
          | value [t_0.value_up_mean_aggregate]
          | window 1m
          | absent_for 300s
        trigger:
          count: 1
      displayName: Anthos on baremetal API server is up
      name: projects/xxxxxx/alertPolicies/8497323605386949154/conditions/8497323605386950375
    creationRecord:
      mutateTime: '2021-03-17T23:07:18.618778106Z'
      mutatedBy: sharon@example.com
    displayName: Anthos on baremetal API server down (critical)
    enabled: true
    mutationRecord:
      mutateTime: '2021-03-17T23:07:18.618778106Z'
      mutatedBy: sharon@example.com
    name: projects/xxxxxx/alertPolicies/8497323605386949154
    

アラート ポリシーの追加作成

このセクションでは、推奨される一連のアラート ポリシーの説明と構成ファイルについて説明します。

ポリシーを作成するには、上の演習と同じ手順を行います。

  1. 右側の列のリンクをクリックして、構成ファイルをダウンロードします。

  2. gcloud alpha monitoring policies create を実行してポリシーを作成します。

コントロール プレーン コンポーネントの可用性

アラート名 説明 Cloud Monitoring でのアラート ポリシーの定義
ベアメタル版 Anthos の API サーバーが停止(重大) API サーバーが指標ターゲットの検出に表示されなくなった apiserver-down.json
ベアメタル版 Anthos スケジューラが停止(重大) スケジューラが指標のターゲット検出に表示されなくなった scheduler-down.json
ベアメタル版 Anthos のコントローラ マネージャーが停止(重大) コントローラ マネージャーが指標のターゲットの検出に表示されなくなった controller-manager-down.json

Kubernetes システム

アラート名 説明 Cloud Monitoring でのアラート ポリシーの定義
ベアメタル版 Anthos の Pod が クラッシュ ループしている(重大) Pod がクラッシュ ループ状態です pod-crash-looping.json
ベアメタル版 Anthos の Pod が 1 時間以上準備ができていない状態である(重大) Pod が 1 時間以上まだ準備ができていない状態です pod-not-ready-1h.json
ベアメタル版 Anthos の永続ボリュームの使用率が高い(重大) 申請済みの永続ボリュームの空きがないことが予想されます persistent-volume-usage-high.json
ベアメタル版 Anthos のノードが 1 時間以上準備ができていない状態である(重大) ノードが 1 時間以上まだ準備ができていない状態です node-not-ready-1h.json
ベアメタル版 Anthos の ノード CPU 使用量が 80% を超えている(重大) ノードの CPU 使用量が 80% を超えている node-cpu-usage-high.json
ベアメタル版 Anthos の ノードメモリ使用量が 80% を超えている(重大) ノードメモリ使用量が 80% を超えている node-memory-usage-high.json
ベアメタル版 Anthos の ノードディスク使用量が 80% を超えている(重大) ノードのディスク使用量が 80% を超えている node-disk-usage-high.json

Kubernetes パフォーマンス

アラート名 説明 Cloud Monitoring でのアラート ポリシーの定義
ベアメタル版 Anthos の API サーバーのエラー率が 10% を超えている(重大) API サーバーが リクエストの 10% を超えるエラーを返しています api-server-error-ratio-10-percent.json
ベアメタル版 Anthos の API サーバーのエラー率が 5% を超えている(警告) API サーバーが リクエストの 5% を超えるエラーを返しています api-server-error-ratio-5-percent.json
ベアメタル版 Anthos の etcd のリーダーが頻繁に変更される(重大) etcd リーダーが頻繁に変更される etcd-leader-changes-too-frequent.json
ベアメタル版 Anthos の etcd のプロポーザルが頻繁に失敗する(重大) etcd の提案が頻繁に失敗する etcd-proposals-failed-too-frequent.json
ベアメタル版 Anthos の ectd サーバーがクォーラムに存在しない(重大) etcd サーバーはクォーラムに存在しない etcd-server-not-in-quorum.json

通知の取得

アラート ポリシーを作成すると、ポリシーに 1 つ以上の通知チャンネルを定義できます。通知チャンネルには、複数の種類があります。たとえば、メール、Slack チャンネル、モバイルアプリから通知を受け取れます。チャンネルは、ニーズに合わせて選択できます。

通知チャンネルを構成する方法については、通知チャンネルの管理をご覧ください。