このページでは、ベアメタル版 Anthos クラスタのアラート ポリシーを作成する方法について説明します。
始める前に
アラート ポリシーを作成するには、次の権限が必要です。
- monitoring.alertPolicies.create
- monitoring.alertPolicies.delete
- monitoring.alertPolicies.update
次のいずれかのロールがある場合、これらの権限が付与されます。
- monitoring.alertPolicyEditor
- monitoring.editor
- プロジェクト編集者
- プロジェクト オーナー
ロールを確認するには、Google Cloud Console の [IAM] ページに移動します。
ポリシーの作成: クラスタ API サーバーの停止
この演習では、クラスタの Kubernetes API サーバー用のアラート ポリシーを作成します。このポリシーを設定すると、クラスタの API サーバーが停止するたびに通知を受けるように準備できます。
ポリシー構成ファイル apiserver-down.json をダウンロードします。
ポリシーを作成するには:
gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
POLICY_CONFIG は、ダウンロードした構成ファイルのパスに置き換えます。
アラート ポリシーを表示するには:
Console
Google Cloud Console で、[モニタリング] ページに移動します。
左側にある [アラート] を選択します。
[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
アラート ポリシーの追加作成
このセクションでは、推奨される一連のアラート ポリシーの説明と構成ファイルについて説明します。
ポリシーを作成するには、上の演習と同じ手順を行います。
右側の列のリンクをクリックして、構成ファイルをダウンロードします。
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 チャンネル、モバイルアプリから通知を受け取れます。チャンネルは、ニーズに合わせて選択できます。
通知チャンネルを構成する方法については、通知チャンネルの管理をご覧ください。