Memecahkan masalah aturan deteksi

Didukung di:

Error runtime dapat terjadi selama eksekusi aturan dan mencegah aturan dieksekusi dengan berhasil. Dokumen ini membantu Anda memecahkan masalah beberapa masalah runtime umum.

  • Anda dapat mencegah error runtime dengan menguji aturan sebelum deployment. Klik Run Test di editor aturan—jika error terdeteksi, ikuti link error untuk mengetahui detailnya.

  • Jika terjadi error selama eksekusi aturan, ikuti link error di halaman Detections untuk mengetahui detailnya.

Error logika dan sintaksis kueri

Error ini terjadi jika struktur kueri tidak valid, terlalu kompleks, atau menggunakan jenis data yang tidak kompatibel.

Pesan error Penyebab yang mendasari Resolusi
Too many `OR` and `AND` operations Kueri berisi ekspresi atau logika bertingkat yang melebihi batas ruang stack.

Sederhanakan kondisi aturan.

Uraikan logika yang kompleks menjadi bagian-bagian yang lebih kecil.

Query is too long Kueri memerlukan terlalu banyak ruang stack untuk diproses. Bagi logika menjadi beberapa aturan.
Accessing a new field that did not exist for this time range Aturan ini merujuk pada kolom yang baru saja ditambahkan ke skema, tetapi aturan tersebut berjalan dalam rentang waktu saat kolom tersebut belum ada.

Sesuaikan rentang waktu untuk memulai setelah kolom ada.

Ubah aturan untuk menangani kasus saat kolom bernilai null atau tidak ada.

Invalid subnet CIDR Beberapa fungsi mengalami rentang Classless Inter-Domain Routing (CIDR) yang tidak dapat diurai Periksa format rentang CIDR dalam aturan.
Invalid IP address Beberapa fungsi menemukan alamat IP yang salah format. Pastikan nilai kolom berisi format alamat IP yang valid
Map access for reading label does not support duplicate map keys Beberapa fungsi mencoba mengakses elemen dari struktur seperti peta (misalnya, kolom tambahan) yang memiliki kunci duplikat (tidak diizinkan dalam operasi).

Selidiki sumber data untuk menemukan kunci duplikat.

Sesuaikan logika aturan untuk menangani karakteristik data ini.

Invalid regular expression Ekspresi reguler yang digunakan dalam fungsi seperti re.regex() salah format.

Perbaiki sintaksis ekspresi reguler.

Invalid re.replace() Penggunaan re.regex() yang salah, sering kali karena ketidakcocokan antara subekspresi dalam tanda kurung dan referensi dalam string pengganti. Pastikan skema penulisan ulang di re.regex() cocok dengan subekspresi dalam tanda kurung di ekspresi reguler.
Integer overflow in sum() aggregation Jumlah nilai melebihi batas maksimum untuk bilangan bulat standar. Transmisikan kolom ke jenis floating point sebelum menjumlahkan (misalnya, gunakan sum(0.0 + $e.field)).
Cannot complete [arithmetic/mod] operation between unsigned and signed integer Aturan ini mencoba operasi aritmetika (+, -, *) atau modulo (%) antara jenis bilangan bulat yang berbeda.

Gunakan cast.as_int() atau cast.as_uint() untuk mengonversi satu operand agar cocok dengan operand lainnya. Transmisi eksplisit diperlukan untuk operator modulo (%), yang hanya menerima bilangan bulat. Untuk operasi +, -, atau *, Anda juga dapat memaksa konstanta bilangan bulat untuk berperilaku sebagai float menggunakan literal floating point, seperti 2.0 atau 100.0, atau pemaksaan pembagian, seperti (2/1), dalam ekspresi tanpa operator / lainnya pada baris yang sama.

Batasan pengetikan ini terjadi saat ekspresi menggabungkan literal bilangan bulat bertanda (INT64) dengan kolom Model Data Terpadu (UDM) bilangan bulat tidak bertanda (UINT64), seperti network.received_bytes, network.sent_bytes, dan principal.file.size. Batasan ini berlaku untuk bagian events dan outcome, termasuk di dalam agregasi sum() atau max(). Aturan dengan aritmetika bilangan bulat bertanda dan tidak bertanda yang tercampur mungkin disimpan tanpa error sintaksis dan hanya gagal saat runtime atau saat Anda menguji aturan. Untuk mengetahui informasi selengkapnya, lihat Aritmetika dengan kolom peristiwa yang tidak ditandatangani.

Batas resource dan error performa

Error ini menunjukkan bahwa kueri terlalu berat untuk diproses oleh sistem.

Pesan error Penyebab yang mendasari Resolusi
Request was throttled, please try again later Aturan memerlukan lebih banyak memori atau daya pemrosesan daripada yang dialokasikan (sering kali karena penggabungan yang kompleks, agregasi yang besar, atau pemfilteran yang tidak memadai). Menambahkan filter yang lebih spesifik ke bagian peristiwa.
Not enough memory for aggregation aggregate_memory_limit terlampaui. Optimalkan agregasi dengan mengurangi jumlah kunci di bagian `match`.
Spilled bytes exceed limit Kueri mencoba memproses terlalu banyak peristiwa. Optimalkan kueri dengan menambahkan filter, seperti menurut metadata.log_type.
Your query resource usage is exceeding its allocation Kueri dibatalkan oleh resource manager karena menggunakan terlalu banyak resource. Optimalkan kueri dengan menambahkan filter, seperti menurut metadata.log_type.

Akses data dan error sistem

Error ini sering kali bersifat sementara atau terkait dengan penyimpanan data backend.

Pesan error Penyebab yang Mendasari Resolusi
Error reading files Masalah sementara saat mengakses data pokok. Coba lagi setelah beberapa saat. Jika error tetap berlanjut, hubungi dukungan.
Error reading database Masalah sementara saat mengakses data pokok. Coba lagi setelah beberapa saat. Jika error tetap berlanjut, hubungi dukungan.
Internal error Masalah sementara dalam sistem. Coba lagi setelah beberapa saat. Jika error tetap berlanjut, hubungi dukungan.
Unknown error Pesan error default saat kode error internal tertentu tidak ditentukan. Coba lagi setelah beberapa saat. Jika error tetap berlanjut, hubungi dukungan.
Request was throttled, please try again later Sistem sedang mengalami beban berat. Coba lagi setelah beberapa saat.

Error runtime yang tidak diketahui

Anda mungkin mengalami error runtime yang tidak diketahui dan tidak memiliki deskripsi. Jika hal ini terjadi, hubungi Dukungan Google SecOps.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.