ルールのランタイム エラーのトラブルシューティング
ランタイム エラーは、ルールの実行中に発生し、ルールの正常な実行を妨げる可能性があります。このドキュメントでは、一般的なランタイムの問題のトラブルシューティングについて説明します。
デプロイ前にルールをテストすることで、ランタイム エラーを回避できます。ルール エディタで [テストを実行] をクリックします。エラーが検出された場合は、エラーリンクをクリックして詳細を確認します。
ルールの実行中にエラーが発生した場合は、[検出] ページのエラーリンクをクリックして詳細を確認します。
クエリの構文エラーと論理エラー
これらのエラーは、クエリ構造が無効であるか、複雑すぎるか、互換性のないデータ型を使用している場合に発生します。
| エラー メッセージ | 根本原因 | 解決策 |
|---|---|---|
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 のプロフェッショナルから回答を得ることができます。