查詢資料

在 IBM Cloud Logs中,您可以使用 Lucene 查詢、DataPrime 查詢或直接從 IBM Cloud Object Storage (COS) 儲存區查詢資料來查詢日誌資料。 您也可以將過濾器套用至查詢。

從使用者介面查詢資料

在「探索 日誌」頁面中,您可以:

過濾可以與使用 LuceneDataPrime 進行搜尋一起使用。

在定義查詢之後,您可以透過建立視圖來儲存查詢以供稍後重複使用。 如需相關資訊,請參閱 建立自訂視圖

從儲存區查詢資料時的考量

您可以從「瀏覽器」日誌頁面或執行保存查詢來查詢資料。

從資料儲存區查詢日誌資料時,有一些考量:

  • 資料儲存桶中儲存的資料包括透過優先洞察、分析及警示和儲存及搜尋資料攝取的數據管道。 它還包括透過解析區塊規則來匹配的日誌,該規則啟用了在 Live tail 中查看封鎖的日誌並存檔到IBM Cloud Object Storage選項。
  • 您可以維護儲存區中的資料。 您可以視需要保留資料,並透過「日誌」頁面選取 所有日誌 選項來查詢資料。
  • 過濾可以與使用 LuceneDataPrime 進行搜尋一起使用。
  • 您可以使用無限制時間範圍來查詢資料。 您的資料可以回溯多久,沒有任何限制。 您可以維護資料,只要您保留資料,就可以存取資料。
  • 不論日誌優先順序及每日配額為何,您都可以查詢日誌。 只會將已封鎖的日誌傳送至保存檔。
  • 「保存查詢」可讓您使用任何文字或廣泛的語法查詢,直接從保存檔查詢日誌。 無論日誌優先順序、每日配額或資料的時間範圍為何,您都可以查詢日誌。 如需相關資訊,請參閱 查詢保存資料

透過「瀏覽器」查詢資料的限制

在 IBM® Cloud Logs中查詢資料時存在限制。

查詢限制

查詢內的字元

查詢中可包含的字元數是有限制的。

  • 日誌檢視中的查詢最多可包含 3000 個字元。

  • 警示查詢定義最多可包含 65,535 個字元。 警報查詢定義也限制為最多 50 個 ANDOR 語句。

關鍵字類型

關鍵字代表在編制索引之前未通過分析器的文字。 此資料類型適用於正規表示式、聚集和排序。

在查詢中使用關鍵字資料類型的語法是:<fieldName>.keyword

IBM Cloud Logs 當欄位超過 256 個字元時,無法建立關鍵字類型。

傳回的結果

從查詢傳回的列數上限取決於您是從 優先洞察 或 IBM Cloud Object Storage中儲存的資料進行查詢。

  • 從 優先洞察 傳回的結果數上限為 12 K。
  • IBM Cloud Object Storage (使用 All Logs 進行查詢時) 傳回的最大結果數量為 50 K。

掃描的位元組數

最多掃描 100 MB 優先洞察 資料。 掃描儲存在 IBM Cloud Object Storage 中的資料時,沒有任何限制。

速率限制

每分鐘最多可以提交 10 個查詢。

當超出速率限制時,會傳回 HTTP 429。

保存查詢限制

下列是對查詢的限制。

存檔查詢限制
限制 說明
已處理的位元組數 最多 30% 的每日吸收位元組數
Parquet 檔案 最多掃描 500K 個檔案
複製結果 執行「保存查詢」時產生最多 1M 個結果
逾時 最多 5 分鐘的查詢執行

在查詢保存資料時,您也需要注意下列事項:

  • 您可以在「保存查詢」頁面上使用相同的查詢語法 (LuceneDataPrime)。

  • 相較於其他 探索 查詢,在查詢保存資料時,您可能會看到些微延遲。

  • 一旦達到限制,即會顯示警告訊息。 請精簡查詢結果,以避免達到限制。

精簡保存查詢結果

您可以使用下列方法來精簡查詢結果:

  • 將更多選擇性過濾器套用至查詢 (例如,應用程式或子系統)。

  • 如果使用 DataPrime extract 運算子並隨後過濾其結果,請改為建立剖析規則並對已剖析欄位進行過濾。

  • 避免在過濾器中使用正規表示式或萬用字元。

  • 數據總理,從對字串使用包含運算子切換到自由文字搜尋運算子 (~ )。

使用 CLI 查詢日誌資料

使用 CLI 查詢日誌資料有兩種方式:

  • query
  • background-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 (字串)

寫入查詢的語法。 可允許的值:lucenedataprime

--since (期限)

查詢資料時,從目前時間開始回溯的時間長度。 使用此旗標可覆寫 metadata-start-datemetadata-end-date。 例如,1h 擷取過去一小時的資料 (預設為 1h0m0s)。

--tier (字串)

查詢執行的層級。 允許值為 archive, frequent_search ( 優先洞察 )。

--output (字串)

返回結果的輸出格式。 有效值為 logs-raw, logs-prettifyjson

範例

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 (字串)

寫入查詢的語法。 可允許的值:lucenedataprime

--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