Google Cloud ロギング・ドライバ

Google Cloud ロギング・ドライバはコンテナのログを Google Cloud Logging に送ります。

使い方

デフォルトのロギング・ドライバを設定するには、Docker デーモンに --log-driver オプションを使います。

docker daemon --log-driver=gcplogs

ロギング・ドライバをコンテナに指定するには docker run のオプションで --log-driver を指定します。

docker run --log-driver=gcplogs ...

このログ・ドライバを実装すると、 docker logs コマンドでログを参照できません。

Docker が Google Cloud プロジェクトを検出すると、 インスタンス・メタデータ・サービス 上で設定を見つけられるようになります。あるいは、ユーザがプロジェクトのログを記録するには --gcp-project ログ・オプションを指定し、Docker が Google Application Default Credential から証明書を得る必要があります。 --gcp-project はメタデータ・サーバによって発見される情報よりも優先します。そのため、Google Cloud Project で動いている Docker デーモンのログは、 --gcp-project を使って異なったプロジェクトに出力できます。

gpclogs オプション

Google Cloud ロギング・ドライバのオプションは、--log-opt 名前=値 の形式で指定できます。

オプション 必須 説明
gcp-poject オプション どの GCP プロジェクトにログを記録するか指定。デフォルトは GCE メタデータ・サービスを経由して確認された値。
gcp-log-cmd オプション コンテナ起動時、どこにログ記録コマンドがあるか指定。デフォルトは false 。
lables オプション ラベルをコンテナに指定する場合、メッセージを含むラベルのキー一覧をカンマ区切りで。
env オプション 環境変数をコンテナに指定する場合、メッセージに含める環境変数があれば、キーの一覧をカンマ区切りで指定。

labelenv キーの間で衝突があれば、 env が優先されます。いずれのオプションもロギング・メッセージの追加フィールドの属性に追加します。

以下は、 GCE メタデータ・サーバで発見されたデフォルトのログ送信先を使うために必要なオプション指定の例です。

docker run --log-driver=gcplogs \
    --log-opt labels=location
    --log-opt env=TEST
    --log-opt gcp-log-cmd=true
    --env "TEST=false"
    --label location=west
    your/application

また、この設定ではラベル location 、環境変数 ENV 、コンテナ起動時に使うコマンドの引数も指定しています。

参考

Google Cloud logging driver
https://docs.docker.com/engine/admin/logging/gcplogs/