本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立欄位索引以改善查詢效能並減少掃描磁碟區
您可以在日誌事件中建立欄位的欄位索引,以進行有效率的以等式為基礎的搜尋。當您接著在 CloudWatch Logs Insights 查詢中使用欄位索引時,查詢會嘗試略過處理已知不包含索引欄位的日誌事件。這可減少使用欄位索引的查詢掃描量,因此可以更快地傳回結果。這可協助您在數千個日誌群組中快速搜尋總日誌數 PB,並更快速地在相關日誌上進行搜尋。要編製索引的良好欄位是您通常需要查詢的欄位。具有高基數值的欄位也適合欄位索引,因為使用這些欄位索引的查詢會更快完成,因為它會限制與目標值相符的日誌事件。
例如,假設您已建立 的欄位索引requestId。然後,該日誌群組 CloudWatch Logs 上包含requestId = 或valuerequestId IN [將嘗試僅處理已知包含該索引欄位和查詢值的日誌事件,且該 CloudWatch Logs 在過去已偵測到該欄位的值。value, value, ...]
您也可以利用欄位索引來建立更多日誌群組的有效查詢。當您在查詢中使用 filterIndex命令而非 filter命令時,查詢會在具有欄位索引的日誌事件上針對選取的日誌群組執行。這些查詢最多可以掃描 10,000 個您選擇的日誌群組,方法是指定最多五個日誌群組名稱字首。如果這是 CloudWatch 跨帳戶可觀測性的監控帳戶,您可以選擇所有來源帳戶或指定個別來源帳戶來選取日誌群組。
索引欄位區分大小寫。例如, 的欄位索引與包含 的日誌事件RequestId不相符requestId。
欄位索引僅支援 JSON 和服務日誌的結構化日誌格式。
CloudWatch Logs 為標準日誌類別中的所有日誌群組提供預設欄位索引。預設欄位索引會自動用於下列欄位:
-
@logStream -
@aws.region -
@aws.account -
@source.log -
@data_source_name -
@data_source_type -
@data_format -
traceId -
severityText -
attributes.session.id
CloudWatch Logs 也提供特定資料來源名稱和類型組合的預設欄位索引。預設欄位索引會自動用於下列資料來源名稱和類型組合:
| 資料來源名稱和類型 | 預設欄位索引 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
預設欄位索引是您在政策中定義的任何自訂欄位索引之外的索引。預設欄位索引不會計入您的欄位索引配額。
CloudWatch Logs 只會將建立索引政策後擷取的日誌事件編製索引。它不會為建立政策之前擷取的日誌事件編製索引。建立欄位索引之後,每個相符的日誌事件都會從日誌事件的擷取時間開始保持索引 30 天。
注意
如果您在監控帳戶中建立欄位索引政策,該政策不會用於連結來源帳戶中的日誌群組。欄位索引政策僅適用於建立該政策的帳戶。
本節中的其餘主題說明如何建立欄位索引。如需有關在查詢中參考欄位索引的資訊,請參閱 filterIndex和 篩選條件。