查詢資料
在 IBM Cloud Logs中,您可以使用 Lucene 查詢、DataPrime 查詢或直接從 IBM Cloud Object Storage (COS) 儲存區查詢資料來查詢日誌資料。 您也可以將過濾器套用至查詢。
從使用者介面查詢資料
在「探索 日誌」頁面中,您可以:
過濾可以與使用 Lucene 或 DataPrime 進行搜尋一起使用。
在定義查詢之後,您可以透過建立視圖來儲存查詢以供稍後重複使用。 如需相關資訊,請參閱 建立自訂視圖。
查詢 優先洞察 資料時的考量
在 IBM Cloud Logs 優先洞察 管線中查詢日誌資料時有一些考量:
-
優先洞察 管線 中的日誌已編製索引。 如果您的實例達到其索引欄位數量上限,則無法查詢其他欄位。 如需檢索及資料對映的相關資訊,請參閱 瞭解檢索及欄位對映。
-
當透過 優先洞察 資料管線吸收的資料偵測到不同類型的不同日誌記錄所傳送的相同欄位時,您可以取得對映異常狀況。 對映異常狀況會使欄位無法查詢。 如需相關資訊,請參閱 對映異常狀況。
-
透過分析及警示和儲存及搜尋資料管道攝取的日誌只能 直接從檔案中查詢。。
-
您可以使用 Lucene 查詢或 DataPrime 查詢,來查詢透過 優先洞察 資料管線 所吸收及處理的日誌。
例如,當您定義 Lucene 查詢時,您可以執行諸如任意文字搜尋、一般 RegEX 表示式或使用欄位搜尋之類的查詢。
如果您沒有看到預期的資料:
-
請考慮放寬查詢或移除過濾器。
-
請注意,部分日誌可能尚未編製索引,過濾器或查詢將找不到。
-
從儲存區查詢資料時的考量
您可以從「瀏覽器」日誌頁面或執行保存查詢來查詢資料。
從資料儲存區查詢日誌資料時,有一些考量:
- 資料儲存桶中儲存的資料包括透過優先洞察、分析及警示和儲存及搜尋資料攝取的數據管道。 它還包括透過解析區塊規則來匹配的日誌,該規則啟用了在 Live tail 中查看封鎖的日誌並存檔到IBM Cloud Object Storage選項。
- 您可以維護儲存區中的資料。 您可以視需要保留資料,並透過「日誌」頁面選取 所有日誌 選項來查詢資料。
- 過濾可以與使用 Lucene 或 DataPrime 進行搜尋一起使用。
- 您可以使用無限制時間範圍來查詢資料。 您的資料可以回溯多久,沒有任何限制。 您可以維護資料,只要您保留資料,就可以存取資料。
- 不論日誌優先順序及每日配額為何,您都可以查詢日誌。 只會將已封鎖的日誌傳送至保存檔。
- 「保存查詢」可讓您使用任何文字或廣泛的語法查詢,直接從保存檔查詢日誌。 無論日誌優先順序、每日配額或資料的時間範圍為何,您都可以查詢日誌。 如需相關資訊,請參閱 查詢保存資料。
透過「瀏覽器」查詢資料的限制
在 IBM® Cloud Logs中查詢資料時存在限制。
查詢限制
查詢內的字元
查詢中可包含的字元數是有限制的。
-
日誌檢視中的查詢最多可包含 3000 個字元。
-
一個警示查詢定義中最多可包含 65,535 個字元。 警報查詢定義也限制為最多 50 個
AND和OR語句。
關鍵字類型
關鍵字代表在編制索引之前未通過分析器的文字。 此資料類型適用於正規表示式、聚集和排序。
在查詢中使用關鍵字資料類型的語法是:<fieldName>.keyword。
IBM Cloud Logs 當欄位超過 256 個字元時,無法建立關鍵字類型。
傳回的結果
從查詢傳回的列數上限取決於您是從 優先洞察 或 IBM Cloud Object Storage中儲存的資料進行查詢。
- 從 優先洞察 傳回的結果數上限為 12 K。
- IBM Cloud Object Storage (使用 All Logs 進行查詢時) 傳回的最大結果數量為 50 K。
掃描的位元組數
最多掃描 100 MB 優先洞察 資料。
速率限制
每分鐘最多可透過 API 或「存檔查詢」功能提交 10 次查詢。 當超出速率限制時,會傳回 HTTP 429。
保存查詢限制
下列是對查詢的限制。
| 限制 | 說明 |
|---|---|
| 已處理的位元組數 | 最多 30% 的每日吸收位元組數 |
| Parquet 檔案 | 最多掃描 500K 個檔案 |
| 複製結果 | 執行「保存查詢」時產生最多 1M 個結果 |
| 逾時 | 最多 5 分鐘的查詢執行 |
在查詢保存資料時,您也需要注意下列事項:
精簡保存查詢結果
您可以使用下列方法來精簡查詢結果:
使用 CLI 查詢日誌資料
使用 CLI 查詢日誌資料有兩種方式:
querybackground-query-create
background-query-create 指令執行異步查詢,而 query 則執行同步查詢。
背景查詢可讓您執行查詢,並在稍後的時間點取得結果。 查詢結果已準備就緒,一旦準備就緒,您可以使用 CLI 或 API 將結果下載為檔案。
透過背景查詢,最多可傳回 1M 記錄。 query 指令僅限於傳回 50K 記錄。
查詢 CLI 只支援 logs-raw, logs-prettify,和 json 作為輸出。 預設為 logs-raw。
執行同步查詢
您可以透過執行 ibmcloud logs query 命令來同步查詢日誌資料。
ibmcloud logs query --query QUERY --syntax QUERY_SYNTAX --metadata '{"start_date": START-DATE, "end_date": c, "syntax": SYNTAX , "limit": LIMIT, "strict-fields-validation": STRICT-FIELDS-VALIDATION, "tier": TIER}'
或
ibmcloud logs query --query QUERY --syntax QUERY_SYNTAX --start-date START-DATE --end-date END-DATE --syntax SYNTAX --limit 10
指令選項
--query(字串)-
要執行的查詢。 這是必要的參數。
查詢語法可以是 Lucene 或 Dataprime。 查詢的語法或類型使用
--syntax參數設定。 --metadata(字串)-
查詢執行的元資料。 使用此設定提供查詢執行參數。
--start-date(字串)-
查詢時間範圍的起始點。 這必須是 UTC ISO 8601 格式,例如:
2025-07-15T08:45:00Z。 預設為--end-date值前 15 分鐘。 如果未指定--end-date,預設值為目前時間前 15 分鐘。 --end-date(字串)-
查詢時間範圍的結束。 這必須是 UTC ISO 8601 格式,例如:
2025-07-15T08:45:00Z。 預設為--start-date值後 15 分鐘。 如果--start-date未定義,則--end-date為當前時間,--start-date為當前時間前 15 分鐘。 --limit(int)-
限制傳回記錄的數量。 如果未指定,預設為 2000。 搜尋 優先洞察 時,返回的最大記錄數為 12000。 否則傳回的最大記錄數就是:50000。
--syntax(字串)-
寫入查詢的語法。 可允許的值:
lucene和dataprime。 --since(期限)-
查詢資料時,從目前時間開始回溯的時間長度。 使用此旗標可覆寫
metadata-start-date和metadata-end-date。 例如,1h擷取過去一小時的資料 (預設為1h0m0s)。 --tier(字串)-
查詢執行的層級。 允許值為
archive,frequent_search( 優先洞察 )。 --output(字串)-
返回結果的輸出格式。 有效值為
logs-raw,logs-prettify和json。
範例
ibmcloud logs query --query "Push and Query test" --metadata '{"start_date": "2025-06-16T12:00:00Z", "end_date": "2025-06-17T13:41:30Z","syntax": "lucene"}' --output logs-raw
query 指令也支援 metadata 參數以外的 --start-date, --end-date 和 --syntax。 例如:
ibmcloud logs query --query "source logs | filter \$d.text == 'Push and Query test'" --syntax dataprime --start-date 2025-08-03T12:00:00Z --end-date 2025-08-04T13:41:30Z
執行背景查詢
您可以異步查詢日誌資料。
首先您要提交一份背景查詢。 然後,您就可以在其他指令中使用 ID。
ibmcloud logs background-query-create --query QUERY --syntax SYNTAX [--start-date START-DATE] [--end-date END-DATE] [--now-date NOW-DATE]
指令選項
--query(字串)-
要執行的查詢。 這是必要的參數。
查詢語法可以是 Lucene 或 Dataprime。 查詢的語法或類型使用
--syntax參數設定。 --syntax(字串)-
寫入查詢的語法。 可允許的值:
lucene和dataprime。 --start-date(字串)-
查詢時間範圍的起始點。 這必須是 UTC ISO 8601 格式,例如:
2025-07-15T08:45:00Z。 預設為--end-date值前 15 分鐘。 如果未指定--end-date,預設值為目前時間前 15 分鐘。 --end-date(字串)-
查詢時間範圍的結束。 這必須是 UTC ISO 8601 格式,例如:
2025-07-15T08:45:00Z。 預設為--start-date值後 15 分鐘。 如果--start-date未定義,則--end-date為當前時間,--start-date為當前時間前 15 分鐘。
範例
ibmcloud logs background-query-create --query "Push and Query test" --syntax lucene --start-date 2025-06-16T12:00:00Z --end-date 2025-06-17T13:41:30Z
使用 DataPrime 語法的範例
ibmcloud logs background-query-create --query "source logs | filter \$d.text == 'Push and Query test'" --syntax dataprime --start-date 2025-08-03T12:00:00Z
確定背景查詢的狀態
您可以使用執行 背景 查詢指令時傳回的 ID 來判斷背景查詢的狀態。
ibmcloud logs background-query-status --query-id QUERY-ID
指令選項
--query-id(strfmt.UUID)-
從 背景查詢 指令傳回的查詢 ID。 必要。
值的長度為 36 個字元,且必須符合正規表達式
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/。
範例
ibmcloud logs background-query-status --query-id 8b5e7151-da2b-4633-be8c-9b269bed2c81
擷取背景查詢的結果
您可以使用執行 背景 查詢指令時傳回的 ID 擷取背景查詢的查詢結果。
ibmcloud logs background-query-data --query-id QUERY-ID --output OUTPUT
指令選項
--query-id(strfmt.UUID)-
從 背景查詢 指令傳回的查詢 ID。 必要。
值的長度為 36 個字元,且必須符合正規表達式
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/。 --output-file(字串)-
指定寫入輸出的檔案路徑。
--output(字串)-
返回結果的輸出格式。 有效值為
logs-raw,logs-prettify,json,yaml,tui,或table。 預設為table。
範例
ibmcloud logs background-query-data --query-id df47fff7-131d-41dc-9328-05489a93e27c --output logs-raw
取消背景查詢
您可以使用執行 背景 查詢指令時傳回的 ID 取消背景查詢。
ibmcloud logs background-query-cancel --query-id QUERY-ID --force
指令選項
--query-id(strfmt.UUID)-
從 背景查詢 指令傳回的查詢 ID。 必要。
值的長度為 36 個字元,且必須符合正規表達式
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/。 --force|-f-
執行命令,不提示使用者。
範例
ibmcloud logs background-query-cancel --query-id df47fff7-131d-41dc-9328-05489a93e27c