排解 Logging 代理程式相關問題

本頁提供說明,協助排解安裝或使用 Logging 代理程式時的常見問題。

檢查清單

如果無法安裝或使用 Logging 代理程式,請檢查下列事項:

  • 如果 Linux 安裝指令導致錯誤,請確認安裝指令是否以 sudo 為前置字元。

  • 確認代理程式服務正在您的 VM 執行個體上執行:

    • 針對 Windows VM,請使用下列 PowerShell 指令:

      Get-Service -Name StackdriverLogging
      

      搜尋名稱為 Stackdriver Logging 的服務。如果代理程式未執行,您可能需要重新啟動代理程式。

    • 針對 Linux VM,請使用下列指令:

      sudo service google-fluentd status
      

      如果代理程式未執行,您可能需要使用以下指令來重新啟動代理程式:

      sudo service google-fluentd restart
      

      如果重新啟動失敗,且記錄輸出內容顯示「Disabled via metadata」(透過中繼資料停用),您可能正在執行 Google Cloud Marketplace 中的映像檔,而 Logging 代理程式預設為停用。google-logging-enable 執行個體中繼資料鍵會控管 Logging 代理程式的啟用狀態,其中 0 值會停用代理程式。如要重新啟用代理,請移除 google-logging-enable 鍵或將其值設為 1。詳情請參閱「建立停用記錄代理程式的執行個體」。

      如果代理程式未透過中繼資料停用,請重新安裝代理程式。 請參閱下一節「重新安裝 Logging 代理程式」。

  • 查看代理程式是否已將錯誤訊息寫入記錄。

    • 在 Windows 上,從 v1-9 版開始,Logging 代理程式會將記錄儲存在 C:\Program Files (x86)\Stackdriver\LoggingAgent\fluentd.log 中。

      您無法取得代理程式的先前版本。

    • 在 Linux 上,Logging 代理程式是 fluentd 套件,會將記錄訊息傳送至 /var/log/google-fluentd/google-fluentd.log:

      • 如果看到 HTTP 429 錯誤,表示您可能已超出 Logging API 配額。如要查看可用配額,請在 Google Cloud 控制台中依序選取「API 和服務」>「資訊主頁」。選擇 Logging API。

      • 如果您看到 API 存取權或授權問題,請前往驗證 Compute Engine 憑證。

  • 如果代理程式似乎正常運作,但您沒有收到資料,請檢查代理程式是否將資料傳送至正確的專案。請參閱下節「驗證 Compute Engine 憑證」。

  • 如果代理程式無法授權,請檢查私密金鑰的憑證是否遺失或無效。

驗證代理程式安裝作業

如要確認安裝是否成功,請在 Logs Explorer 中尋找代理程式的測試記錄項目。

  1. 前往 Google Cloud 控制台的 「Logs Explorer」頁面:

    前往「Logs Explorer」(記錄檔探索工具)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。

  2. 在頁面頂端,選擇包含 VM 執行個體的專案:

    • 如果是 Compute Engine VM 執行個體,請選擇含有 VM 執行個體的 Google Cloud 專案。
  3. 在視窗分頁中,為 VM 執行個體選擇資源:

    • 如果是 Compute Engine,請選擇 「GCE VM 執行個體」。
    • 選取 [syslog] (Linux)、[fluent.info] (Windows) 或 [所有記錄]。

如果看到「Successfully sent gRPC to Logging API」的記錄項目,表示代理程式安裝完成。這則訊息會在安裝代理程式後,以及每次重新啟動代理程式時產生。

如要進一步瞭解 Logs Explorer,請參閱「使用 Logs Explorer」。

測試代理

如果懷疑代理程式無法運作,請檢查代理程式是否正在執行,並嘗試傳送測試訊息至 Logging:

Linux 執行個體

  1. 在您的 VM 執行個體上執行下列指令,驗證 Logging 代理程式是否正在執行:

    ps ax | grep fluentd
    

    畫面會顯示類似以下的輸出:

     2284 ?        Sl     0:00 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd [...]
     2287 ?        Sl    42:44 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd [...]
    
  2. 在您的 VM 執行個體上執行下列指令,傳送測試記錄訊息:

    logger "Some test message"
    

Windows 執行個體

Logging 代理程式有兩個 Windows 服務名稱:

  • StackdriverLogging (適用於 v1-5 以上版本)
  • fluentdwinsvc 適用於舊版

您應該正在執行一項代理程式服務。請使用 PowerShell 在 VM 執行個體上執行下列指令:

  1. 要求提供兩項服務的狀態。如果您知道應執行的服務,可以只使用該服務名稱:

    Get-Service StackdriverLogging,fluentdwinsvc
    
  2. 如果服務未執行,您會看到一則錯誤訊息。如果服務正在執行,您會看到如下所示的輸出:

    Status    Name                DisplayName
    ------    ----                -----------
    Running  StackdriverLogging   Cloud Logging
    
  3. 如果您同時查詢這兩項服務,應該會看到一則錯誤訊息和一個 Running 狀態:

    • 如果沒有看到任何 Running 狀態,表示 Logging 代理程式未執行。
    • 如果看到 StackdriverLogging 正在執行,表示您使用的是近期代理程式版本。如要判斷特定版本,請參閱「取得版本」。
    • 如果看到 fluentdwinsvc 正在執行,請將代理程式升級至最新版本。
  4. 需要管理員權限:如果系統正在執行任意代理程式版本,請執行下列 PowerShell 指令以傳送測試記錄訊息:

    New-EventLog   -LogName Application -Source "Test Source"
    Write-EventLog -LogName Application -Source "Test Source" -EntryType Information -EventID 1 -Message "Testing 123 Testing."
    

找出測試訊息

傳送測試訊息後,請在「記錄檔探索工具」中尋找該訊息:

  1. 前往 Google Cloud 控制台的 「Logs Explorer」頁面:

    前往「Logs Explorer」(記錄檔探索工具)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。

  2. 在頁面頂端,選擇包含 VM 執行個體的專案:

    • 如果是 Compute Engine VM 執行個體,請選擇含有 VM 執行個體的 Google Cloud 專案。
  3. 在視窗分頁中,為 VM 執行個體選擇資源:

    • 如果是 Compute Engine,請選擇 「GCE VM 執行個體」。
    • 選取 [syslog] (Linux)、[fluent.info] (Windows) 或 [所有記錄]。
  4. 您應該會看到包含測試訊息的記錄項目。如果是這樣,則表示 Logging 代理程式已經正常運作。

驗證 Compute Engine 憑證

如要讓 Compute Engine VM 執行個體在沒有私密金鑰憑證的情況下執行代理程式,該執行個體必須具備適當的存取範圍,且執行個體使用的服務帳戶身分必須具備適當的 IAM 權限。

建立 VM 執行個體時,預設範圍與服務帳戶設定已足以執行代理程式。非常舊的執行個體,或者您已變更其預設設定的執行個體,可能沒有適當的憑證。

無法載入預設憑證

如果記錄記錄檔中出現 Could not load the default credentials 失敗,表示代理程式可能無法連線至 Compute Engine 中繼資料伺服器。

錯誤記錄如下所示:

Starting google-fluentd 1.8.4: /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/googleauth-0.9.0/lib/googleauth/application_default.rb:74:in `get_application_default': Could not load the default credentials. Browse to (RuntimeError) https://developers.google.com/accounts/docs/application-default-credentials for more information.

如果 VM 採用自訂 Proxy 設定,就可能發生這種情況。如要修正這個問題,請參閱Proxy 設定說明,將 Compute Engine 中繼資料伺服器 (metadata.google.internal 或 169.254.169.254) 排除在 Proxy 之外。如果錯誤持續發生,請從 VM 移除預設的 Compute Engine 服務帳戶,然後重新新增。

驗證存取權範圍

如要驗證存取權範圍,請執行下列操作:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面:

    前往「VM instances」(VM 執行個體) 頁面

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。

  2. 按一下您 VM 執行個體的名稱,執行個體的詳細資料頁面會顯示出來。

  3. 在「Cloud API access scopes」(Cloud API 存取權範圍) 部分,按一下「Details」(詳細資料) 即可查看 API 清單。找出下列項目:

    1. 如果您看到「This instance has full API access to all Google Cloud Services」(這個執行個體具備所有 Google Cloud 服務的完整 API 存取權),表示您擁有適當的存取權範圍。
    2. 如果「Stackdriver Logging API」(Cloud Logging API 的舊名稱) 旁顯示您具有「僅限寫入」或「完整」權限,則執行個體的存取權範圍足以支援 Cloud Logging 代理程式。
    3. 如果「Stackdriver Monitoring API」(Cloud Monitoring API 的舊名稱) 旁顯示您具有「僅寫入」或「完整」權限,則執行個體的存取範圍足以支援 Cloud Monitoring 代理程式。

修正問題

如果 Compute Engine 執行個體沒有適當的存取範圍,請將所需存取範圍新增至執行個體。

下表列出與記錄和監控代理程式相關的範圍:

存取權範圍 代理程式權限
https://www.googleapis.com/auth/logging.write 足以使用 Logging 代理程式
https://www.googleapis.com/auth/monitoring.write 足以使用 Monitoring 代理程式

驗證預設服務帳戶權限

即使您的 Compute Engine VM 執行個體擁有適當的存取權範圍,執行個體的預設服務帳戶也可能無法為代理程式提供正確的身分與存取權管理權限。

如要驗證預設服務帳戶權限,請先找到預設服務帳戶:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面:

    前往「VM instances」(VM 執行個體) 頁面

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。

  2. 按一下您 VM 執行個體的名稱,執行個體的詳細資料頁面會顯示出來。

  3. 在頁面中尋找「Service account」(服務帳戶) 標題。執行個體的預設服務帳戶會列出。該帳戶可能看起來如下:

    [ID]-compute@developer.gserviceaccount.com
    
  4. 前往 Google Cloud 控制台的「IAM」頁面:

    前往 IAM

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」(IAM 與管理) 的結果。

  5. 選取「查看依據:主體」。您會看到人員、群組與服務帳戶的清單。「角色」欄會顯示每個主體在專案中扮演的角色。

  6. 在執行個體預設服務帳戶的列中,應該會看到一或多個角色:

    • 如果看到「編輯者」,表示該角色適用於所有服務專員。 視機構政策設定而定,系統可能會自動將「編輯者」角色授予預設服務帳戶。
    • 如果您看到「Logs Writer」(記錄寫入者),表示該角色足以使用 Logging 代理程式。如要瞭解其他包含寫入權限的 Logging 角色,請參閱「Cloud Logging 存取控管」。
    • 如果您看到「Monitoring Metric Writer」(監控指標寫入者),表示該角色足以使用 Monitoring 代理程式。如要瞭解其他包含寫入權限的 Monitoring 角色,請參閱「Cloud Monitoring 存取控管」。

修正問題

如果您的預設服務帳戶沒有適當角色,請嘗試在 [IAM 與管理員] > [IAM] 頁面編輯服務帳戶的角色。新增適當的 Logging 或 Monitoring 角色,授權代理程式:依序點選「記錄」>「記錄檔寫入者」或「監控」>「監控指標寫入者」。

驗證私密金鑰憑證

在 Compute Engine VM 執行個體上,您可以設定代理程式,使用具有適當授權的非預設服務帳戶。

如要以此方式設定代理程式,您必須為指定的服務帳戶建立私密金鑰憑證,並將這些憑證提供給代理程式。

  1. 代理程式會尋找環境變數 GOOGLE_APPLICATION_CREDENTIALS,其中包含內含私密金鑰憑證的檔案名稱。
  2. 如果沒有環境變數,代理程式會在預設位置尋找憑證:

    Linux

    /etc/google/auth/application_default_credentials.json
    

    Windows

    C:\ProgramData\Google\Auth\application_default_credentials.json
    
  3. 如果預設位置不含憑證,代理程式會使用中繼資料伺服器的應用程式預設憑證。

下列資訊可協助您診斷私密金鑰憑證問題:

  1. 是否已設定私密金鑰?
  2. 私密金鑰對於服務帳戶而言是否仍然有效?
  3. 服務帳戶是否擁有代理程式需要的角色?

如要確認 VM 執行個體上已安裝有效的私密金鑰憑證,請先確認憑證檔案位於預期位置,然後確認憑證檔案中的資訊有效。

是否存在憑證?

如要查看私密金鑰服務帳戶憑證是否位於您的執行個體上,請在您的執行個體上執行下列 Linux 指令:

sudo cat $GOOGLE_APPLICATION_CREDENTIALS
sudo cat /etc/google/auth/application_default_credentials.json

如果任何指令顯示如下所示的檔案,表示您的執行個體可能擁有有效的私密金鑰憑證。如果兩個指令都顯示一個檔案,則系統會使用由 GOOGLE_APPLICATION_CREDENTIALS 表示的檔案。

{
  "type": "service_account",
  "project_id": "[YOUR-PROJECT-ID]",
  "private_key_id": "[YOUR-PRIVATE-KEY-ID]",
  "private_key": "[YOUR-PRIVATE-KEY]",
  "client_email": "[YOUR-PROJECT-NUMBER]-[YOUR-KEY]@developer.gserviceaccount.com",
  "client_id": "[YOUR-CLIENT-ID]",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "{x509-cert-url}",
  "client_x509_cert_url": "{client-x509-cert-url}"
}

如果憑證設定不一致,代理程式可能會使用與服務需求不同的憑證。舉例來說,如果您在登入殼層的 GOOGLE_APPLICATION_CREDENTIALS 中設定自訂憑證位置,但未在代理程式的服務設定中設定該變數,服務會尋找預設位置,而不是您的自訂位置。

如要查看或變更憑證環境變數,請在 /etc/default/google-fluentd 中存取或設定 GOOGLE_APPLICATION_CREDENTIALS。

如果不存在任何憑證檔案,請參閱新增憑證一文。

憑證是否有效?

在憑證檔案中,project_id 是您的 Google Cloud 專案,client_email 可識別專案中的服務帳戶,而 private_key_id 則可識別服務帳戶中的私密金鑰。將這項資訊與Google Cloud 控制台的「IAM & Admin」>「Service accounts」部分顯示的資訊進行比對。

如果符合以下任一條件,則憑證檔案「無」效:

  • 您正在檢查 Compute Engine 執行個體,但憑證檔案中的 Google Cloud 專案 並非包含執行個體的專案。
  • 所列服務帳戶不存在。該帳戶可能已遭刪除。
  • 列出的服務帳戶未啟用適當角色:Cloud Logging 代理程式的「記錄寫入者」,以及 Cloud Monitoring 代理程式的「監控指標寫入者」。
  • 私密金鑰不存在。該金鑰可能已遭撤銷。

您可以使用 Google Cloud 控制台的「IAM & Admin」(IAM 與管理) >「Service accounts」(服務帳戶) 專區撤銷憑證。如果沒有有效憑證,請參閱「新增憑證」,更換現有憑證或新增憑證。

如果服務帳戶正確,但私密金鑰已撤銷,則您可以建立新的私密金鑰,並將其複製到執行個體。請參閱「建立服務帳戶金鑰」。

否則,您必須如新增憑證部分所述,建立新的服務帳戶。

驗證記錄排除查詢

查看目前的排除查詢,確保您要尋找的記錄檔不會意外遭到排除。

驗證防火牆

如要確認執行個體是否能存取 logging.googleapis.com,請在執行個體上執行下列 Linux 指令:

curl -sSL 'https://logging.googleapis.com/$discovery/rest?version=v2' | head

如果防火牆封鎖輸出流量,指令可能需要一段時間才能完成。顯示防火牆問題的輸出內容範例:

curl: (7) Failed to connect to 2607:f8b0:4001:c03::5f: Network is unreachable

如要瞭解如何設定輸出流量規則,請參閱「防火牆規則」。

重新安裝代理程式

安裝最新版本的代理程式可以解決許多問題:

其他常見問題

下表列出 Cloud Logging 代理程式的常見問題,並說明如何修正。

在 Linux 上,Logging 代理程式會將錯誤記錄在 /var/log/google-fluentd/google-fluentd.log 中。在 Windows 上,Logging 代理程式會記錄 C:\Program Files (x86)\Stackdriver\LoggingAgent\fluentd.log 中的錯誤 (從 v1-9 版開始)。錯誤類別 Google::APIClient::ClientError 表示權限或 API 存取權有問題。

代理程式成功執行後,您可能會開始看到錯誤。 舉例來說,有人可能已撤銷專案或 VM 執行個體的必要權限。

錯誤 原因 解決方案
Windows 上代理程式的安裝程式無法執行 您可能將安裝程式下載至系統目錄。 將安裝程式移至非系統目錄,例如 C:\Users\[USERID]\。
專案尚未啟用 API 您尚未在專案中啟用 Cloud Logging API。 前往 API 控制台,然後將 Cloud Logging API 的狀態變更為「開啟」。
要求使用的憑證無效
或
無法擷取存取權杖 (是否未設定範圍?)
您的 VM 執行個體沒有適當的憑證。 請參閱「 授權 Logging 代理程式安裝憑證」。
授權失敗 Logging 代理程式適用的私密金鑰授權未正確設定。 請參閱驗證私密金鑰憑證一文。
呼叫者沒有權限 專案中用於授權的服務帳戶權限不足。該帳戶可能是在 Compute Engine 或 App Engine 內使用的預設服務帳戶,或者可能是用於私密金鑰授權的使用者定義的服務帳戶。帳戶必須具備編輯者角色。 在專案的「IAM」頁面中,變更服務帳戶的權限。 如有需要,您可以按照「 變更執行個體的服務帳戶和存取權範圍」程序,修改現有 VM 的存取權範圍。
無法取得專案 ID Cloud Logging 代理程式無法從服務帳戶的私密金鑰憑證檔案取得專案 ID。 如要為 Agent 新增或覆寫專案 ID,請在 VM 執行個體上編輯 Agent 的設定檔「/etc/google-fluentd/google-fluentd.conf」/etc/google-fluentd/google-fluentd.conf。在 <match **> 部分中, 新增以下行:
project_id [YOUR_PROJECT_ID]
否則,請參閱「 授權 Logging 代理程式」一文,瞭解如何修正或替換憑證。
Window Logging 代理程式停止從部分管道擷取事件記錄 即使 Logging 代理程式仍在執行,並從其他管道擷取代理程式記錄和事件記錄,但可能無法從特定管道擷取事件記錄。這是因為 windows_eventlog 外掛程式有一些問題,如這份簡報所述。使用 windows_eventlog2 即可解決這個問題。 注意:windows_eventlog2 外掛程式的資料格式與 windows_eventlog 外掛程式不相容。如果這些記錄檔已設定任何 BigQuery 或 Google Cloud Storage 匯出管道,則必須一併調整。請參閱 windows_eventlog 和 windows_eventlog2 提供的這份記錄項目比較表。如要使用 windows_eventlog2,請先停止 Logging 代理程式,然後將設定檔替換為類似這個範例設定檔的檔案。最後,啟動 Logging 代理程式。
Logging 代理程式在發生 logrotate 時停止擷取記錄 如果使用 copytruncate 設定 logrotate,Logging 代理程式可能會無法追蹤輸入檔案中的位置。 建議使用 nocopytruncate 設定,確保 logrotate 會移動檔案,而不是截斷檔案。如要保留 copytruncate 設定,請定期重新啟動代理程式。或者,您可以使用 postrotate 設定重新啟動代理程式。
error_class=Errno::EADDRINUSE error="Address already in use - bind(2) for 0.0.0.0:24231" VM 上執行多個 Logging 代理程式執行個體。 使用 ps -aux | grep "/usr/sbin/google-fluentd" 顯示正在執行的代理程式程序 (應該只有兩個:一個監管員和一個工作人員),並使用 sudo netstat -nltp | grep :24231 顯示佔用通訊埠的執行中程序。視情況終止舊例項。
記錄代理程式因「lib/fluent/config/types.rb」發生錯誤而無法啟動 Logging 代理程式設定使用正規運算式剖析器區段,但該區段的正規運算式格式有誤,導致子運算式呼叫無效,並產生 Starting google-fluentd 1.8.6: /opt/google-fluentd/embedded/lib/ruby/gems/2.6.0/gems/fluentd-1.11.2/lib/fluent/config/types.rb:92: warning: invalid subexp call 等錯誤。 找出並修正代理設定檔中的格式錯誤的 regex。提示:搜尋「regex」或「parse」。

記錄處理量限制

Logging 代理程式可處理的記錄輸送量上限受 CPU 限制。記錄處理量增加時,CPU 使用率通常也會提高。但根據預設設定,代理程式最多只能使用一個 CPU 核心。因此,當記錄檔輸送量暴增時,代理程式可能會達到 CPU 使用率上限。如果這些尖峰只是暫時現象,Logging 代理程式會緩衝處理記錄,稍後再趕上進度,最終處理這些記錄。如果記錄處理量持續偏高,記錄可能會溢出緩衝區,最終遺失。

一般來說,如果每個記錄項目都是 1000 位元組的原始文字,且不含額外的格式處理作業,則記錄代理程式每秒約可處理 5,500 個記錄項目,達到單一核心 CPU 的上限。如果記錄檔項目需要進階處理 (例如 JSON 或 Regex 剖析),每秒的記錄檔項目上限可能會較低。

如需更高的記錄檔輸送量,可以考慮使用 Ops Agent。在 Linux 上,如果記錄項目是 1000 位元組的原始文字,且不涉及額外處理作業,則 Ops Agent 每秒可處理約 160,000 個記錄項目。

超過記錄大小上限

如果一或多個記錄檔項目超出大小上限,您可能會在 fluentd 記錄檔中看到類似下列的項目:

Dropping 1 log message(s) error_class="Google::Apis::ClientError" error="Invalid request"


或

Dropping 1 log message(s) error="3:Log entry with size 1000515 bytes exceeds maximum size of 112640 bytes" error_code="3"

如要解決這項錯誤,請修剪記錄項目,確保不超過大小上限。舉例來說,下列程式碼範例會修剪含有 mytag 標記的記錄,並使用 message 欄位中的資料:

# Cloud Logging only supports log entries that are up to 256 KiB in size.
# Trim the entries to just under that size to avoid dropping them.
<filter [MY_TAG]>
  @type record_transformer
  enable_ruby true
  <record>
    message ${record['message'].length > 256000 ? "[Trimmed]#{record['message'][0..256000]}..." : record['message']}
  </record>
</filter>

記錄檔重複

代理程式會在處理管道中加入 LogEntry.insertID。如果重複記錄中的 insertID 不同,表示系統多次從記錄檔追蹤記錄。如果發生記錄輪替,或是 pos 檔案遺失或毀損,就可能發生這種情況。為減少發生這個問題的機率,請確保任何 in_tail 輸入內容的位置檔案,不會設定在 /var/log 資料夾或任何可能已啟用記錄輪替功能的其他資料夾中。

記錄管道也會依據 LogEntry.timestamp 欄位,移除重複的記錄。請確認記錄項目的實際時間戳記已正確剖析。如果 Fluentd 未設定為從記錄項目剖析原始時間戳記,則 Fluentd 會使用處理記錄項目的時間。因此,如果輸入內容多次讀取,即使記錄行中的時間戳記相同,Fluentd 也可能會將這些內容視為時間戳記不同的記錄項目。

重複發生稽核記錄錯誤:Data points cannot be written more than 24h in the past

已知問題會影響 1.8.5 至 1.9.3 版 (含),導致代理程式執行超過 24 小時後,資料存取稽核記錄中會重複顯示下列記錄:

Field timeSeries[0].points[0].interval.end_time had an invalid value of "2021-10-20T20:16:34.010866-07:00": Data points cannot be written more than 24h in the past.

解決方法是將代理程式升級至 1.9.4 以上版本。

記錄中的 Unicode 字元會替換為空格或「�」

根據預設,in_tail 輸入內容會預期輸入檔案採用 ASCII 編碼,因此會將所有非 ASCII 字元替換為空格。如要實際擷取 UTF-8 編碼的檔案,您需要在 in_tail 設定中提供兩個選項:

<source>
  @type tail
  …

  encoding UTF-8
  from_encoding UTF-8
</source>

這兩種做法都必須執行。如果只提供 encoding 選項,系統會將擷取記錄中的非 ASCII 字元替換為「�」。

已移除 Google Cloud 控制台回報為已安裝的代理程式

解除安裝代理程式後, Google Cloud 控制台最多可能需要一小時才能回報這項變更。

Windows 的「解除安裝程式」清單中未顯示 Logging 代理程式

如果 Windows 控制台的「解除安裝程式」清單中未列出 Logging 代理程式,請從安裝目錄執行 uninstall.exe,解除安裝該代理程式。