疑難排解偵測規則問題
執行規則時可能會發生執行階段錯誤,導致規則無法成功執行。本文說明如何排解某些常見的執行階段問題。
部署前先測試規則,可避免執行階段錯誤。在規則編輯器中按一下「Run Test」(執行測試)。如果偵測到錯誤,請點選錯誤連結查看詳細資料。
如果規則執行期間發生錯誤,請點選「Detections」(偵測) 頁面上的錯誤連結,查看詳細資料。
查詢語法和邏輯錯誤
如果查詢結構無效、過於複雜,或使用不相容的資料類型,就會發生這類錯誤。
| 錯誤訊息 | 根本原因 | Resolution |
|---|---|---|
Too many `OR` and `AND` operations
|
查詢含有深度巢狀運算式或邏輯,超出堆疊空間限制。 | 簡化規則條件。 將複雜的邏輯拆解成較小的部分。 |
Query is too long
|
查詢需要過多堆疊空間才能處理。 | 將邏輯拆分為多項規則。 |
Accessing a new field that did not exist for this time range
|
規則參照了最近新增至結構定義的欄位,但規則執行的日期範圍內,該欄位並不存在。 | 請調整日期範圍,從欄位出現後開始。 修改規則,處理欄位為空值或遺漏的情況。 |
Invalid subnet CIDR
|
部分函式遇到無法剖析的無類別跨網域路由 (CIDR) 範圍 | 檢查規則中的 CIDR 範圍格式。 |
Invalid IP address
|
部分函式遇到格式錯誤的 IP 位址。 | 確認欄位值包含有效的 IP 位址格式 |
Map access for reading label does not support duplicate map keys
|
部分函式嘗試從類似地圖的結構 (例如其他欄位) 存取元素,但該結構中存在重複的索引鍵 (作業不允許這種情況)。 | 檢查資料來源是否有重複的金鑰。 調整規則邏輯,處理這項資料特性。 |
Invalid regular expression
|
re.regex() 等函式中使用的規則運算式格式不正確。
|
修正規則運算式語法。 |
Invalid re.replace()
|
re.regex() 的使用方式不正確,通常是因為括號子運算式與取代字串中的參照不相符。
|
請確認 re.regex() 中的重寫結構定義與規則運算式中括號內的子運算式相符。
|
Integer overflow in sum() aggregation
|
值總和超過標準整數上限。 | 請先將欄位轉換為浮點類型,再進行加總 (例如使用 sum(0.0 + $e.field))。
|
Cannot complete [arithmetic/mod] operation between unsigned and signed integer
|
規則嘗試在不同整數類型之間執行算術 (+、-、*) 或模數 (%) 運算。 |
使用 如果運算式結合了有正負號整數 ( |
資源限制和效能錯誤
這類錯誤表示查詢過於繁重,系統無法處理。
| 錯誤訊息 | 根本原因 | Resolution |
|---|---|---|
Request was throttled, please try again later
|
規則所需的記憶體或處理能力超過分配量 (通常是因為複雜的彙整、大型匯總或篩選不足)。 | 在「事件」部分新增更具體的篩選條件。 |
Not enough memory for aggregation
|
超過aggregate_memory_limit。
|
減少「match」部分中的鍵數量,盡可能提高匯總效率。 |
Spilled bytes exceed limit
|
查詢嘗試處理過多事件。 | 新增篩選條件 (例如依metadata.log_type篩選),將查詢最佳化。
|
Your query resource usage is exceeding its allocation
|
查詢使用的資源過多,因此資源管理員已取消查詢。 | 新增篩選條件 (例如依metadata.log_type篩選),將查詢最佳化。
|
資料存取和系統錯誤
這類錯誤通常是暫時性問題,或與後端資料儲存庫有關。
| 錯誤訊息 | 根本原因 | Resolution |
|---|---|---|
Error reading files
|
暫時無法存取基礎資料。 | 請稍後再試。如果錯誤持續發生,請與支援團隊聯絡。 |
Error reading database
|
暫時無法存取基礎資料。 | 請稍後再試。如果錯誤持續發生,請與支援團隊聯絡。 |
Internal error
|
系統發生暫時性問題。 | 請稍後再試。如果錯誤持續發生,請與支援團隊聯絡。 |
Unknown error
|
未定義特定內部錯誤代碼時,系統會顯示預設錯誤訊息。 | 請稍後再試。如果錯誤持續發生,請與支援團隊聯絡。 |
Request was throttled, please try again later
|
系統負載過重。 | 請稍後再試。 |
不明執行階段錯誤
您可能會遇到不明的執行階段錯誤,且沒有相關說明。如果發生這種情況,請與 Google SecOps 支援團隊聯絡。
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。