Risolvi i problemi relativi alle regole di rilevamento

Supportata in:

Gli errori di runtime possono verificarsi durante l'esecuzione di una regola e impedirne l'esecuzione corretta. Questo documento ti aiuta a risolvere alcuni problemi comuni di runtime.

  • Puoi evitare errori di runtime testando le regole prima del deployment. Fai clic su Esegui test nell'editor delle regole. Se viene rilevato un errore, segui il link dell'errore per i dettagli.

  • Se si verifica un errore durante l'esecuzione della regola, segui il link dell'errore nella pagina Rilevamenti per i dettagli.

Errori di sintassi e logici delle query

Questi errori si verificano quando la struttura della query non è valida, è troppo complessa o utilizza tipi di dati incompatibili.

Messaggio di errore Causa di fondo Risoluzione
Too many `OR` and `AND` operations La query contiene espressioni o logica con nidificazione profonda che superano i limiti di spazio dello stack.

Semplifica le condizioni della regola.

Suddividi la logica complessa in parti più piccole.

Query is too long La query richiede troppo spazio nello stack per essere elaborata. Suddividi la logica in più regole.
Accessing a new field that did not exist for this time range La regola fa riferimento a un campo aggiunto di recente allo schema, ma viene eseguita in un intervallo di tempo in cui il campo non esisteva.

Modifica l'intervallo di tempo in modo che inizi dopo la presenza del campo.

Modifica la regola per gestire i casi in cui il campo è nullo o mancante.

Invalid subnet CIDR Alcune funzioni hanno rilevato un intervallo CIDR (Classless Inter-Domain Routing) non analizzabile Controlla il formato degli intervalli CIDR nella regola.
Invalid IP address Alcune funzioni hanno rilevato un indirizzo IP non valido. Assicurati che il valore del campo contenga un formato di indirizzo IP valido
Map access for reading label does not support duplicate map keys Alcune funzioni hanno tentato di accedere a elementi di una struttura simile a una mappa (ad esempio campi aggiuntivi) in cui esistono chiavi duplicate (non consentite nell'operazione).

Esamina l'origine dati per individuare chiavi duplicate.

Adatta la logica delle regole per gestire questa caratteristica dei dati.

Invalid regular expression L'espressione regolare utilizzata in funzioni come re.regex() non è corretta.

Correggi la sintassi dell'espressione regolare.

Invalid re.replace() Utilizzo errato di re.regex(), spesso dovuto a una mancata corrispondenza tra le sottoespressioni tra parentesi e i riferimenti nella stringa di sostituzione. Assicurati che lo schema di riscrittura in re.regex() corrisponda alle sottoespressioni tra parentesi nell'espressione regolare.
Integer overflow in sum() aggregation La somma dei valori supera il limite massimo per i numeri interi standard. Esegui il cast del campo in un tipo con rappresentazione in virgola mobile prima di sommare (ad esempio, utilizza sum(0.0 + $e.field)).
Cannot complete [arithmetic/mod] operation between unsigned and signed integer La regola tenta di eseguire operazioni aritmetiche (+, -, *) o modulo (%) tra tipi di numeri interi diversi.

Utilizza cast.as_int() o cast.as_uint() per convertire un operando in modo che corrisponda all'altro. Il casting esplicito è obbligatorio per l'operatore modulo (%), che accetta solo numeri interi. Per le operazioni +, - o *, puoi anche forzare la costante intera a comportarsi come un numero in virgola mobile utilizzando un valore letterale in rappresentazione in virgola mobile, ad esempio 2.0 o 100.0, o la coercizione della divisione, ad esempio (2/1), in espressioni senza altri operatori / sulla stessa riga.

Questo vincolo di digitazione si verifica quando un'espressione combina valori letterali di numeri interi con segno (INT64) con campi UDM (Unified Data Model) di numeri interi senza segno (UINT64), come network.received_bytes, network.sent_bytes e principal.file.size. Il vincolo si applica sia alle sezioni events che outcome, anche all'interno delle aggregazioni sum() o max(). Una regola con aritmetica di numeri interi con e senza segno potrebbe essere salvata senza un errore di sintassi e non riuscire solo in fase di runtime o quando la testi. Per saperne di più, consulta Aritmetica con campi di eventi non firmati.

Limiti delle risorse ed errori di prestazioni

Questi errori indicano che la query è troppo pesante per essere elaborata dal sistema.

Messaggio di errore Causa di fondo Risoluzione
Request was throttled, please try again later La regola richiede più memoria o potenza di elaborazione di quella allocata (spesso a causa di join complessi, aggregazioni di grandi dimensioni o filtri insufficienti). Aggiungi filtri più specifici alla sezione degli eventi.
Not enough memory for aggregation aggregate_memory_limit è stato superato. Ottimizza le aggregazioni riducendo il numero di chiavi nella sezione "match".
Spilled bytes exceed limit La query sta tentando di elaborare troppi eventi. Ottimizza la query aggiungendo filtri, ad esempio per metadata.log_type.
Your query resource usage is exceeding its allocation La query è stata annullata dal gestore delle risorse perché ha utilizzato troppe risorse. Ottimizza la query aggiungendo filtri, ad esempio per metadata.log_type.

Errori di accesso ai dati e di sistema

Questi errori sono spesso temporanei o correlati allo spazio di archiviazione dei dati di backend.

Messaggio di errore Causa sottostante Risoluzione
Error reading files Problemi temporanei di accesso ai dati sottostanti. Riprova più tardi. Se l'errore persiste, contatta l'assistenza.
Error reading database Problemi temporanei di accesso ai dati sottostanti. Riprova più tardi. Se l'errore persiste, contatta l'assistenza.
Internal error Un problema temporaneo all'interno del sistema. Riprova più tardi. Se l'errore persiste, contatta l'assistenza.
Unknown error Un messaggio di errore predefinito quando non è definito un codice di errore interno specifico. Riprova più tardi. Se l'errore persiste, contatta l'assistenza.
Request was throttled, please try again later Il sistema è sovraccarico. Riprova più tardi.

Errori di runtime sconosciuti

Potresti riscontrare errori di runtime sconosciuti senza una descrizione. In questo caso, contatta l'assistenza Google SecOps.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.