Container-Optimized OS での Cloud Logging の使用

マイルストーン 67 以降、Container-Optimized OS には、システムログとコンテナログを Cloud Logging にエクスポートする Google Cloud のオペレーション スイートの以前の Logging エージェントが含まれています。このロギング エージェントは、特定のシステム クリティカル サービスやユーザー アプリケーション コンテナから Cloud Logging バックエンドにログを送信するようデフォルトで構成されています。詳細については、Container-Optimized OS 固有の構成ソースまたは Google Cloud のオペレーション スイートのドキュメントをご覧ください。このドキュメントでは、Container-Optimized OS でロギング エージェントを使用する方法と、ログにアクセスする方法について説明します。

ロギング エージェントの有効化

ロギング エージェントはデフォルトで無効になっています。この機能を有効にするには、新しいインスタンスを作成するか、既存のインスタンスを更新します。

ロギング エージェントを有効にした新しいインスタンスの作成

コンソール

ロギング エージェントを有効にした状態でContainer-Optimized OS 上で Compute Engine インスタンスを実行するには、以下を実行します。

  1. Google Cloud Console で Compute Engine インスタンス作成ページを開きます。

    新しい Compute Engine インスタンスの作成

  2. [名前] でインスタンスの名前を指定します。

  3. [ブートディスク] セクションで、Container-Optimized OS イメージを選択します。

  4. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックして、追加のオプションを展開します。

  5. [管理] タブで、[メタデータ] セクションまでスクロールします。新しいメタデータ エントリを追加して、[キー] を google-logging-enabled、[] を true に指定します。

  6. 必要に応じて、ユースケースに応じたその他のオプションを指定します。詳細については、インスタンスの作成と構成をご覧ください。

  7. [作成] をクリックし、インスタンスを作成して起動します。

gcloud

Logging エージェントを有効にして Container-Optimized OS で Compute Engine インスタンスを実行するには、gcloud compute instances create コマンドを使用して、メタデータに google-logging-enabled=true を含めます。次に例を示します。

gcloud compute instances create instance-name \
    --image-family cos-stable \
    --image-project cos-cloud \
    --zone compute-zone \
    --metadata google-logging-enabled=true

以下を置き換えます。

gcloud コマンドの詳細については、gcloud compute instances create のリファレンス ドキュメントをご覧ください。 Container-Optimized OS インスタンスの作成の詳細については、インスタンスの作成と構成をご覧ください。

既存のインスタンスを更新して、Logging エージェントを有効または無効にする

コンソール

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. 更新する Container-Optimized OS インスタンスの名前をクリックします。

  3. [VM インスタンスの詳細] の上部のバーから [編集] をクリックします。

  4. [カスタム メタデータ] セクションで新しいメタデータ エントリを追加し、キーgoogle-logging-enabled に設定します。有効にするにはtrue に、無効にするには false に設定します。

  5. [保存] をクリックします。

gcloud

既存のインスタンスでロギング エージェントを有効または無効にするには、gcloud compute instances add-metadata コマンドを使用します。

gcloud compute instances add-metadata instance-name \
    --zone compute-zone \
    --metadata google-logging-enabled=enabled-value

以下を置き換えます。

  • enabled-value: 有効にするには true に、無効にするには false に設定します。
  • instance-name: VM インスタンスの名前。
  • compute-zone:インスタンスのコンピューティング ゾーン

ログへのアクセス

コンソール

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. ログのアクセス元である Container-Optimized OS インスタンスの名前をクリックします。

  3. [ログ] セクションで、[Cloud Logging] をクリックします。

  4. これによって、指定したインスタンスのログ エクスプローラが開きます。詳細については、ログ エクスプローラの使用をご覧ください。

gcloud

ログにアクセスするには、gcloud logging read コマンドを使用します。次に例を示します。

gcloud logging read \
"resource.type=gce_instance AND resource.labels.instance_id=instance-id" \
    --limit 10 \
    --format json \
    --freshness 30d

以下を置き換えます。

  • instance-id: VM インスタンスの ID。

このコマンドは、instance-id を使用して VM インスタンスからログを読み取ろうとします。この際、過去 30 日間の JSON 形式の 10 件のログに限定されます。

gcloud コマンドについて詳しくは、gcloud logging read のリファレンス ドキュメントをご覧ください。

既知の制限事項

gcplogs ドライバとの互換性

milestone 89 以降、Container-Optimized OS に含まれている Logging エージェントが有効で、1 つ以上のコンテナに対して Docker gcplogs ロギング ドライバが有効になっている場合は、含まれている Logging エージェントによって過度の警告ログが出力される場合があります。これにより、ログノイズが発生したり、Cloud Logging 関連の料金が増加する場合があります。

回避手段は、gcplogs を Docker ロギング ドライバとして使用せず、Container-Optimized OS で構成されたデフォルトのドライバを使用することです。Container-Optimized OS に含まれている Logging エージェントはコンテナログを Cloud Logging にエクスポートするため、両方のソリューションを同時に使用する必要はないことに留意してください。