Node Problem Detector を使用してシステム状態をモニタリングする

マイルストーン 77 以降、Container-Optimized OS には Node Problem Detector エージェントが含まれます。この機能を使用すると、COS インスタンスのシステムの状態をモニタリングできます。Node Problem Detector は、インスタンスの健全性をモニタリングし、健全性に関連する指標(容量とエラーの指標を含む)を Cloud Monitoring に報告します。これにより、Google Cloud Observability ダッシュボードで可視化できるようになります。デフォルト構成から収集された指標は無料です。Google は、集約された指標を使用してノードの問題を理解し、Container-Optimized OS の信頼性を向上させます。

エージェントは、エクスポートする指標のセットで事前構成されています。現時点では、組み込みエージェントのカスタム レポートの指標はサポートされていません。Node Problem Detector はオープンソース ソフトウェアです。ソースコード構成は、それぞれのソース リポジトリで確認できます。

ヘルス モニタリングを有効にする

Node Problem Detector エージェントは、起動時にデフォルトで無効になっています。この機能を有効にするには、次を使用します。

起動スクリプトを使用する

起動スクリプトを使用して Node Problem Detector を有効にできます。

cloud-init の使用

cloud-init の例では、Container-Optimized OS インスタンスの構成の基本について説明しています。次の cloud-config の例では、cloud-init を使用してヘルス モニタリングを有効にできます。

#cloud-config

runcmd:
- systemctl start node-problem-detector

メタデータの使用

Container-Optimized OS マイルストーン 88 以降では、カスタム メタデータ セクションで google-monitoring-enabled の値を true に設定することで、Node Problem Detector を有効にできます。

インスタンスの作成時にモニタリングを有効にするには:

gcloud compute instances create VM_NAME \
    --image=IMAGE \
    --image-project=cos-cloud \
    --metadata=google-monitoring-enabled=true

以下のように置き換えます。

  • VM_NAME: 新しい VM の名前
  • IMAGE: 公開版 Container-Optimized OS イメージの特定のバージョン。たとえば、--image=cos-113-18244-85-29 です。

既存のインスタンスでモニタリングを有効にするには:

gcloud compute instances add-metadata VM_NAME \
    --metadata=google-monitoring-enabled=true

VM_NAME は VM の名前で置き換えます。

マイルストーン 97 以降、モニタリングはプロジェクト メタデータで有効にできます。

gcloud compute project-info add-metadata \
    --metadata google-monitoring-enabled=true

実行後、node-problem-detector サービスが有効になります。

ユーザー定義のゲストポリシーの使用

Container-Optimized OS には、ゲストポリシーで指定された VM の状態を維持するために、OS システム ユーティリティを使用する OS Config エージェントが含まれています。ゲストポリシーの詳細については、OS Config エージェントを有効にするゲストポリシーを作成するをご覧ください。次のゲストポリシーは、すべてのインスタンスで Node Prolem Detector エージェントを有効にします。

recipes:
- name: recipe-enable-npd
  desiredState: INSTALLED
  installSteps:
  - scriptRun:
      interpreter: SHELL
      script: |-
        #!/bin/bash
        systemctl start node-problem-detector

収集された指標の表示

Node Problem Detector は、Compute Engine インスタンスのモニタリング対象リソースに対する指標のリストを報告します。指標は、compute.googleapis.com/guest/ の接頭辞が付けられて Monitoring 指標の一覧に記載されています。次のように、Monitoring Metrics Explorer を使用して、収集された指標を表示できます。

  1. Cloud Console で、[Monitoring] に移動するか、次のボタンを使用します。

    [Monitoring] に移動

  2. [Monitoring] のナビゲーション パネルで、 [Metrics Explorer] をクリックします。

  3. リソースタイプには、[Compute Engine VM instance] を選択します。

  4. 「Problem Count」などの指標を選択します。

  5. 右側にグラフと統計情報が表示されます。特定の Container-Optimized OS インスタンスの結果を表示するには、フィルタを "instance_id=[INSTANCE_ID]" に設定します([INSTANCE_ID] は、目的のインスタンスの ID で置き換えます)。

ヘルス モニタリングの無効化

cloud-config または起動スクリプトによってすでに有効になっているサービスを無効にするには、systemctl start node-problem-detector ステップを削除してから、Container-Optimized OS インスタンスを再起動します。メタデータによって有効になっている場合は、google-monitoring-enabled キーが false に設定されていることを確認します。