排解記錄代理程式相關問題

本頁說明如何疑難排解 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 代理程式的執行個體

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

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

    • 在 Windows 的版本 v1-9 上,記錄代理程式會將其記錄儲存於 C:\Program Files (x86)\Stackdriver\LoggingAgent\fluentd.log

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

    • 在 Linux 上,記錄代理程式是一個 fluentd 套件並會將訊息記錄在 /var/log/google-fluentd/google-fluentd.log

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

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

  • 如果代理程式似乎正常執行,但您未取得任何資料,請檢查代理程式是否將資料傳送至正確專案。請參閱下方的「驗證 Compute Engine 憑證」一節。

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

驗證代理程式安裝

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

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

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

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

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

    • 針對 Compute Engine VM 執行個體,選擇包含 VM 執行個體的 Google Cloud 專案。
  3. 視窗分頁中,為 VM 執行個體選擇資源:

    • 針對 Compute Engine,選擇 「GCE VM Instance」
    • 選取 [syslog] (Linux)、[fluent.info] (Windows) 或 [所有記錄]

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

如要進一步瞭解記錄檔探索工具,請參閱「使用記錄檔探索工具」。

測試代理程式

如果懷疑代理程式無法正常運作,請檢查代理程式是否正在執行,並嘗試傳送測試訊息至 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 (適用於第 1 至第 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 Instance」
    • 選取 [syslog] (Linux)、[fluent.info] (Windows) 或 [所有記錄]
  4. 您應該會看到包含測試訊息的記錄項目。如果是這樣,則表示 Logging 代理程式已經正常運作。

驗證 Compute Engine 憑證

為了讓 Compute Engine VM 執行個體能夠在沒有私密金鑰憑證的情況下執行代理程式,執行個體必須擁有適當的存取權範圍,且執行個體使用的服務帳戶身分必須擁有適當的身分與存取權管理權限。

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

無法載入預設憑證

如果 Logging 記錄檔中出現 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.internal169.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 的舊名稱) 旁邊發現您擁有「Write Only」(唯寫) 或「Full」(完整) 權限,表示您擁有適當的執行個體存取權範圍,可以使用 Cloud Logging 代理程式。
    3. 如果您在「Stackdriver Monitoring API」(Cloud Monitoring API 的舊名稱) 旁邊,發現您擁有「Write Only」(唯寫) 或「Full」(完整) 權限,表示您擁有適當的執行個體存取權範圍,可以使用 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. 選取「View By: Principals」(檢視方式:主體)。您會看到人員、群組與服務帳戶的清單。「Role」(角色)欄中是專案中每個主體擁有的角色。

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

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

修正問題

如果您的預設服務帳戶沒有適當角色,請嘗試在 [IAM 與管理員] > [IAM] 頁面編輯服務帳戶的角色。新增適當的 Logging 或 Monitoring 角色,授權代理程式:Logging > Logs WriterMonitoring > Monitoring Metric Writer

驗證私密金鑰憑證

在 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」是您的專案,「client_email」可識別專案中的服務帳戶,「private_key_id」可識別服務帳戶中的私密金鑰。 Google Cloud 請將這個資訊與Google Cloud 控制台中「IAM & Admin」(IAM 與管理) >「Service accounts」(服務帳戶) 部分顯示的內容進行比對。

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

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

您可以使用 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 的狀態變更為「ON」(啟用)
要求使用的憑證無效

無法擷取存取權杖 (未設定範圍?)
您的 VM 執行個體沒有適用的憑證。 請參閱「 授權 Logging 代理程式」一文,瞭解如何安裝憑證。
授權失敗 Logging 代理程式適用的私密金鑰授權未正確設定。 請參閱驗證私密金鑰憑證一文。
呼叫者沒有權限 專案中用於授權的服務帳戶權限不足。該帳戶可能是在 Compute Engine 或 App Engine 內使用的預設服務帳戶,或者可能是用於私密金鑰授權的使用者定義的服務帳戶。帳戶必須具備編輯者角色。 在專案的「IAM」頁面中變更服務帳戶的權限。如有必要,您可以按照 變更執行個體的服務帳戶與存取權範圍程序,修改現有 VM 的存取權範圍。
無法取得專案 ID Cloud Logging 代理程式無法從服務帳戶的私密金鑰憑證檔案取得專案 ID。 如要為代理程式新增或覆寫專案 ID,請在 VM 執行個體上編輯代理程式的設定檔 /etc/google-fluentd/google-fluentd.conf。在 <match **> 部分中, 新增以下行:
project_id [YOUR_PROJECT_ID]
否則,請參閱 授權記錄代理程式一文,修正或取代憑證。
Windows Logging 代理程式停止從部分管道擷取事件記錄 即使 Logging 代理程式仍在執行,並從其他管道擷取代理程式記錄和事件記錄,但可能無法從特定管道擷取事件記錄。原因是 windows_eventlog 外掛程式有一些問題,如這份簡報所述。使用 windows_eventlog2 即可解決這個問題。 注意:windows_eventlog2 外掛程式的資料格式無法回溯相容於 windows_eventlog 外掛程式。如果這些記錄檔已設定任何 BigQuery 或 Google Cloud Storage 匯出管道,則必須進行相應調整。請參閱 windows_eventlogwindows_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」發生錯誤而無法啟動 記錄代理程式設定使用的正規運算式剖析器區段含有格式錯誤的正規運算式,導致子運算式呼叫無效,並產生 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」或「parse」。

記錄處理量限制

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

一般來說,如果每個記錄項目都是 1000 位元組的原始文字,且不含額外的格式處理作業,則 Logging 代理程式每秒約可處理 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,解除安裝該代理程式。