検出ルールのトラブルシューティング

以下でサポートされています。

ルールの実行中にランタイム エラーが発生し、ルールが正常に実行されないことがあります。このドキュメントでは、一般的なランタイムの問題のトラブルシューティングについて説明します。

  • ランタイム エラーを回避するには、デプロイ前にルールをテストします。 ルール エディタで [テストを実行] をクリックします。エラーが検出された場合は、エラーリンクをクリックして詳細を確認します。

  • ルールの実行中にエラーが発生した場合は、[検出] ページのエラーリンクをクリックして詳細を確認します。

クエリの構文エラーとロジックエラー

これらのエラーは、クエリ構造が無効である、複雑すぎる、互換性のないデータ型を使用している場合に発生します。

エラー メッセージ 根本原因 解決策
Too many `OR` and `AND` operations クエリに、深くネストされた式や、スタック空間の制限を超えるロジックが含まれています。

ルールの条件を簡略化します。

複雑なロジックを小さな部分に分割します。

Query is too long クエリの処理に必要なスタック空間が多すぎます。 ロジックを複数のルールに分割します。
Accessing a new field that did not exist for this time range ルールが、スキーマに最近追加されたフィールドを参照していますが、ルールは、そのフィールドが存在しなかった期間に実行されています。

フィールドが存在するようになった後の期間を開始するように調整します。

フィールドが null または欠落している場合を処理するようにルールを変更します。

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 異なる整数型の間で算術演算(+-*/MOD)を試みたことが原因です。 cast.as_int() または cast.as_uint() を使用して、一方のフィールドをもう一方のフィールドと一致するように変換します。

リソースの上限とパフォーマンスのエラー

これらのエラーは、クエリが重すぎてシステムで処理できないことを示しています。

エラー メッセージ 根本原因 解決策
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 などのフィルタを追加して、クエリを最適化します。

データアクセスとシステムのエラー

これらのエラーは、一時的なものか、バックエンドのデータ ストレージに関連していることがよくあります。

エラー メッセージ 根本原因 解決策
Error reading files 基盤となるデータへのアクセスで一時的な問題が発生しました。 しばらくしてから再試行してください。エラーが解決しない場合は、サポートにお問い合わせください。
Error reading database 基盤となるデータへのアクセスで一時的な問題が発生しました。 しばらくしてから再試行してください。エラーが解決しない場合は、サポートにお問い合わせください。
Internal error システム内の一時的な問題。 しばらくしてから再試行してください。エラーが解決しない場合は、サポートにお問い合わせください。
Unknown error 特定の内部エラーコードが定義されていない場合のデフォルトのエラー メッセージ。 しばらくしてから再試行してください。エラーが解決しない場合は、サポートにお問い合わせください。
Request was throttled, please try again later システムに負荷がかかっています。 しばらくしてから再試行してください。

不明なランタイム エラー

説明のない不明なランタイム エラーが発生することがあります。この場合は、Google SecOps サポートにお問い合わせください。

さらにサポートが必要な場合コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。