訪問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控制台
使用命令列工具ossutil
相關API
以上操作方式底層基於API實現,如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見PutUserDefinedLogFieldsConfig。