Google Cloud Logging 驅動程式

Google Cloud Logging 驅動程式將容器日誌傳送到 Google Cloud Logging 日誌記錄。

用法

要將 gcplogs 驅動程式用作預設的日誌記錄驅動程式,請在 daemon.json 檔案中將 log-driverlog-opt 鍵設定為適當的值,該檔案在 Linux 主機上位於 /etc/docker/,在 Windows Server 上位於 C:\ProgramData\docker\config\daemon.json。有關使用 daemon.json 配置 Docker 的更多資訊,請參閱 daemon.json

以下示例將日誌驅動程式設定為 gcplogs 並設定 gcp-meta-name 選項。

{
  "log-driver": "gcplogs",
  "log-opts": {
    "gcp-meta-name": "example-instance-12345"
  }
}

重啟 Docker 以使更改生效。

您可以透過使用 docker run--log-driver 選項來為特定容器設定日誌記錄驅動程式。

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

如果 Docker 檢測到它在 Google Cloud 專案中執行,它會從例項元資料服務中發現配置。否則,使用者必須使用 --gcp-project 日誌選項指定要記錄到哪個專案,並且 Docker 會嘗試從Google 應用程式預設憑據獲取憑據。--gcp-project 標誌優先於從元資料伺服器發現的資訊,因此可以使用 --gcp-project 覆蓋在 Google Cloud 專案中執行的 Docker 守護程序,以記錄到不同的專案。

Docker 從 Google Cloud 元資料伺服器獲取區域、例項名稱和例項 ID 的值。如果元資料伺服器不可用,可以透過選項提供這些值。它們不會覆蓋來自元資料伺服器的值。

gcplogs 選項

您可以使用 --log-opt NAME=VALUE 標誌來指定這些額外的 Google Cloud Logging 驅動程式選項

選項必需描述
gcp-project可選要記錄到哪個 Google Cloud 專案。預設為從 Google Cloud 元資料伺服器發現此值。
gcp-log-cmd可選是否記錄啟動容器的命令。預設為 false。
labels可選以逗號分隔的標籤鍵列表,如果為容器指定了這些標籤,則應包含在訊息中。
labels-regex可選labels 類似且相容。用於匹配與日誌相關的標籤的正則表示式。用於高階日誌標籤選項
env可選以逗號分隔的環境變數鍵列表,如果為容器指定了這些變數,則應包含在訊息中。
env-regex可選env 類似且相容。用於匹配與日誌相關的環境變數的正則表示式。用於高階日誌標籤選項
gcp-meta-zone可選例項的區域名稱。
gcp-meta-name可選例項名稱。
gcp-meta-id可選例項 ID。

如果 labelenv 鍵之間存在衝突,則以 env 的值為準。這兩個選項都會向日志訊息的屬性新增額外的欄位。

以下是記錄到透過查詢 Google Cloud 元資料伺服器發現的預設日誌記錄目標所需的日誌記錄選項示例。

$ 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 之外執行的日誌記錄選項。必須為守護程序設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數,例如透過 systemd

[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=uQWVCPkMTI34bpssr1HI"
$ docker run \
    --log-driver=gcplogs \
    --log-opt gcp-project=test-project \
    --log-opt gcp-meta-zone=west1 \
    --log-opt gcp-meta-name=`hostname` \
    your/application