全部產品
Search
文件中心

Object Storage Service:設定日誌記錄要求標頭或查詢參數

更新時間:Jan 17, 2025

訪問Object Storage Service服務(OSS)時,預設的訪問日誌提供了一組固定欄位,以滿足基本分析需求。如果您需要更細緻地追蹤和分析使用者行為或滿足特定的監控要求,可能需要設定其他欄位。OSS的自訂日誌欄位user_defined_log_fields允許您記錄特定的要求標頭和查詢參數,以滿足自訂欄位分析需求。

背景資訊

對於一個HTTP請求來說,查詢參數和要求標頭基本上就決定了這個請求的特徵,而OSS記錄的訪問日誌只包含了這些特徵的一部分。關於日誌的更多資訊,請參見訪問日誌

如果您有自己的需求,可以通過日誌記錄要求標頭或查詢參數功能,記錄自己關心的那部分沒體現在訪問日誌中的請求特徵。關於要求標頭和查詢參數的定義,請參見rfc2616

使用情境

  • 分析Proxy 伺服器資訊:您需要通過分析x-forwarded-for頭來分析中間鏈路代理的情況,但是OSS提供的標準日誌中並沒有這個欄位,您可以通過配置自訂Header欄位的方式來實現。

  • 通過查詢參數對請求分類:您的URL是http://bucketname.aliyuncs.com/hu.jpg?yyy=45&eee=88&rrr=huyanbin,而OSS的日誌目前不會記錄URL後面的這些參數,如果您希望在日誌中記錄rrr與eee等參數的值,可以通過配置自訂查詢參數的方式實現。

注意事項

  • 一行僅填寫一個要求標頭或查詢參數,最多可以填寫6個要求標頭或查詢參數。

  • 本功能將相關資訊統一編碼後填入固定欄位user_defined_log_fields中。user_defined_log_fields欄位的值是一個JSON文本Base64編碼後的值,這個JSON文本預設有一個欄位為“truncated”用於表示是否有截斷髮生,另外有兩個欄位“headers”和“querys”分別對應使用者配置的要求標頭和查詢參數資訊。

  • 要求標頭不支援底線(_),可以使用短劃線(-)替代。查詢參數支援底線(_)。

  • 要求標頭需要遵從HTTP協議的規定。必須是可列印的ASCII字元,即字元33到字元126,支援小數點(.),不支援冒號(:)。

  • 自訂要求標頭及查詢參數的key、value長度總和不能超過1024位元組,超過部分會被截斷。key會轉為小寫,記錄在日誌中也是小寫;value不會做大小寫轉換,日誌中會記錄使用者請求傳遞的資訊(除非被截斷)。

前提條件

  • 請確保您已開啟即時日誌查詢。具體操作,請參見即時日誌查詢

  • 請確保您發起的請求中含有相關的日誌記錄要求標頭或查詢參數。更多資訊,請參見發起請求

操作方式

使用OSS控制台

  1. 登入OSS管理主控台

  2. 單擊Bucket 列表,然後單擊目標Bucket名稱。

  3. 在左側導覽列,選擇日誌管理 > 即時查詢

  4. 即時查詢頁簽,單擊日誌記錄要求標頭或查詢參數右側的添加

  5. 設定日誌記錄要求標頭或查詢參數對話方塊,單擊日誌欄位自訂配置右側的+表徵圖。

  6. 選擇要求標頭查詢參數,輸入對應的取值,然後單擊確定

    說明

    日誌中添加了您自訂的要求標頭或查詢參數資訊後,將在15分鐘內生效。

使用命令列工具ossutil

您可以使用命令列工具ossutil來設定日誌記錄要求標頭,ossutil的安裝請參見安裝ossutil

以下命令用於添加自訂要求標頭或查詢參數來即時定製user_defined_log_fields欄位,以便後續分析對儲存空間examplebucket的請求。

ossutil api put-user-defined-log-fields-config --bucket examplebucket --user-defined-log-fields-configuration "{\"HeaderSet\":{\"header\":[\"header1\",\"header2\",\"header3\"]},\"ParamSet\":{\"parameter\":[\"param1\",\"param2\"]}}"

關於該命令的更多資訊,請參見put-user-defined-log-fields-config

相關API

以上操作方式底層基於API實現,如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見PutUserDefinedLogFieldsConfig

相關文檔

基於OSS使用者自訂日誌欄位分析中間鏈路代理