跳到正文

日誌轉發 ​

日誌轉發會在服務寫出執行日誌時,把它們即時傳送到你自己的日誌工具:Datadog、Grafana Loki(包括 Grafana Cloud)或任何 HTTPS 位址。Pro 及以上方案包含日誌轉發。

新增轉發目標 ​

團隊擁有者和管理員開啟 帳號設定 → 日誌轉發(作用於側邊欄中選中的團隊),點選 新增轉發目標:

目標需要什麼
DatadogAPI 金鑰(Datadog:Organization Settings → API Keys)和你帳號所在的站點,例如 datadoghq.com 或 datadoghq.eu。
LokiPush 位址,例如 https://logs-prod-012.grafana.net/loki/api/v1/push;不帶路徑的位址會自動加上 /loki/api/v1/push。Grafana Cloud 還需要使用者(stack 的數字 ID)和一個有 logs:write 權限的權杖。多租戶 Loki 的租戶以 X-Scope-OrgID 傳送。
HTTP任意 https:// 位址。Zenavo 會向它 POST 簽名後的 JSON(見下文)。

選擇 全部專案,包括以後新建的,或者只選部分專案。測試 會立即傳送一行,並顯示是否送達。每個團隊最多 5 個轉發目標。

位址、API 金鑰和密碼都屬於機密:它們加密儲存,控制台只顯示目標的主機和路徑。Zenavo 只向所有位址都是公開網路位址的主機傳送,並且不跟隨重定向。新增、修改、測試和刪除轉發目標都會記錄在稽核日誌中。

傳送哪些內容 ​

執行中的服務輸出的每一行,變數值和其他地方一樣被遮蓋([REDACTED]),並標註團隊、專案和服務。建置日誌不會轉發。

目標格式
Datadog傳送到 https://http-intake.logs.<site>/api/v2/logs,ddsource 為 zenavo,service 為服務名稱,hostname 為專案名稱,並帶有 project、project_id、service_id 和 team_id 標籤。
Loki每個服務一個流,標籤為 source="zenavo"、project、project_id、service、service_id 和 team_id。
HTTP下文的 JSON。

日誌按批傳送,每批最多 500 行,或者每 2 秒傳送一次。失敗的批次會在 1、5 和 15 秒後重試;被目標拒絕的請求(例如 API 金鑰錯誤,即除 408 和 429 以外的任何 4xx 回應)不會重試。重試之後仍失敗的批次會被丟棄。每個轉發目標最多快取 10,000 行;目標處理不過來時,較新的行會被丟棄。控制台會顯示每個轉發目標最近一次傳送的結果或失敗原因,以及丟棄了多少行。控制台中的日誌(即時和已儲存的)永遠不受轉發影響。

傳送是至少一次(at-least-once):控制面重啟時,最近幾分鐘的日誌可能會被再次傳送。

HTTP 請求內容 ​

json
{
  "logs": [
    {
      "time": "2026-10-22T08:00:00.123456789Z",
      "message": "GET /cart 200 12ms",
      "team_id": "team_…",
      "project_id": "proj_…",
      "project": "shop",
      "service_id": "svc-…",
      "service": "web"
    }
  ]
}

任何 2xx 回應都視為已送達。每個請求都帶有 X-Zenavo-Timestamp(Unix 秒)和 X-Zenavo-Signature: v1=<hex>,後者是用轉發目標的簽名金鑰對 <timestamp>.<原始請求體> 計算的 HMAC-SHA256,與通知 Webhook 的方案相同。金鑰(whsec_…)在新增轉發目標時只顯示一次;更換金鑰 會替換它,並只顯示一次新金鑰。

方案 ​

日誌轉發需要 Pro、Team 或企業版方案。團隊換到不包含它的方案後,轉發會停止;轉發目標仍然可以關閉、編輯或刪除,升級後會重新開始轉發。

與 Zeabur 無關聯。