Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pola filter untuk mencocokkan istilah dalam peristiwa log JSON
Gunakan pola filter JSON saat log Anda terstruktur dalam format JSON. Pola-pola ini memungkinkan Anda menargetkan bidang dan nilai tertentu dalam objek JSON, menjadikannya ideal untuk:
Log aplikasi: Targetkan jenis peristiwa tertentu, pengguna IDs, atau kode kesalahan
AWS log layanan: Filter CloudTrail, Log Aliran VPC, atau log terstruktur lainnya AWS
Microservices: Pantau aplikasi kontainer yang menghasilkan JSON terstruktur
Misalnya, gunakan { $.eventType = "UpdateTrail" }
untuk menemukan CloudTrail peristiwa tertentu, atau { $.sourceIPAddress != 123.123.* }
untuk mengidentifikasi lalu lintas dari rentang IP yang tidak terduga.
Perluas bagian berikut dan telusuri tab untuk melihat contoh yang menunjukkan cara membuat pola filter JSON untuk skenario pemantauan umum, dari pola kondisi tunggal dasar hingga ekspresi gabungan yang kompleks.
Contoh berikut menunjukkan cara menggunakan pola filter dengan peristiwa log JSON dalam skenario pemantauan dan pemecahan masalah umum. Setiap contoh menyertakan sintaks pola filter dan kasus penggunaan praktis di mana Anda akan menerapkannya.
Pola-pola ini bekerja dengan log berformat JSON dari aplikasi, AWS layanan, kontainer, atau sistem kustom. Anda dapat menggunakannya dengan filter metrik untuk membuat CloudWatch metrik, filter langganan untuk merutekan log ke layanan lain, atau Live Tail untuk memantau log secara real-time.
Jika Anda menguji pola filter contoh dengan contoh peristiwa log JSON, Anda harus memasukkan log JSON contoh pada satu baris.
Contoh peristiwa log JSON untuk pengujian:
{
"eventType": "UpdateTrail",
"sourceIPAddress": "111.111.111.111",
"arrayKey": [
"value",
"another value"
],
"objectList": [
{
"name": "a",
"id": 1
},
{
"name": "b",
"id": 2
}
],
"SomeObject": null,
"cluster.name": "c"
}
- Monitor application events by type
-
Lacak jenis peristiwa tertentu di log aplikasi JSON Anda untuk memantau perilaku sistem.
Pola filter:
{ $.eventType = "UpdateTrail" }
Kasus penggunaan:
Pemantauan aplikasi: Lacak tindakan pengguna tertentu atau peristiwa sistem
Analisis bisnis: Hitung kemunculan jenis acara tertentu
Pemecahan masalah: Fokus pada operasi tertentu saat menyelidiki masalah
Pola ini bekerja dengan log JSON yang berisi bidang EventType, seperti:
Log aplikasi: {"eventType": "UserLogin", "userId": "123"}
Log sistem: {"eventType": "ConfigUpdate", "component": "database"}
Log API: {"eventType": "UpdateTrail", "source": "cloudtrail"}
- Block suspicious IP addresses
-
Identifikasi lalu lintas yang tidak sesuai dengan pola alamat IP yang diharapkan untuk pemantauan keamanan.
Pola filter:
{ $.sourceIPAddress != 123.123.* }
Kasus penggunaan:
Pemantauan keamanan: Temukan permintaan dari rentang IP yang tidak terduga
Kontrol akses: Pantau lalu lintas di luar jaringan perusahaan Anda
Deteksi ancaman: Identifikasi potensi upaya akses yang tidak sah
- Track specific application events
-
Pantau nilai tertentu dalam array JSON untuk melacak perilaku aplikasi dan tindakan pengguna.
Pola filter:
{ $.arrayKey[0] = "value" }
Kasus penggunaan:
Pelacakan perilaku pengguna: Pantau tindakan pengguna tertentu di log aplikasi
Penggunaan fitur: Lacak kapan fitur aplikasi tertentu digunakan
Analisis kesalahan: Temukan log dengan kategori kesalahan tertentu dalam array
- Find events using pattern matching
-
Gunakan pola regex untuk menemukan peristiwa dengan pencocokan fleksibel untuk nilai bidang.
Pola filter:
{ $.eventType = %Trail% }
Kasus penggunaan:
Pelacakan acara fleksibel: Temukan semua acara yang berisi pola teks tertentu
Pemantauan API: Lacak keluarga API tanpa menentukan nama yang tepat
Analisis log: Cari kecocokan sebagian dalam nama atau deskripsi acara
- Monitor application data with wildcards
-
Gunakan wildcard dan regex untuk menemukan pola tertentu dalam elemen array apa pun.
Pola filter:
{ $.arrayKey[*] = %val.{2}% }
Kasus penggunaan:
Validasi data: Temukan array yang berisi nilai yang cocok dengan pola tertentu
Pemfilteran konten: Pantau konten buatan pengguna untuk pola tertentu
Jaminan kualitas: Lacak kepatuhan format data di seluruh log aplikasi
- Track network traffic patterns
-
Pantau alamat IP dalam rentang tertentu menggunakan pola regex dan wildcard.
Pola filter:
{ $.* = %111\.111\.111\.1[0-9]{1,2}% }
Kasus penggunaan:
Pemantauan jaringan: Lacak lalu lintas dari subnet IP tertentu
Analisis keamanan: Memantau akses dari rentang jaringan tertentu
Load balancing: Menganalisis distribusi lalu lintas di seluruh rentang IP
Kuota
Anda hanya dapat menggunakan hingga satu pemilih wildcard di pemilih properti.
- Handle JSON properties with special characters
-
Akses properti JSON yang berisi periode atau karakter khusus lainnya dalam namanya.
Pola filter:
{ $.['cluster.name'] = "c" }
Kasus penggunaan:
Pemantauan Kubernetes: Lacak nama cluster di log kontainer
Pelacakan konfigurasi: Pantau pengaturan dengan nama properti putus-putus
Integrasi pihak ketiga: Menangani log dari sistem menggunakan konvensi penamaan khusus
- Find null or missing values
-
Pantau data yang hilang atau nilai nol yang mungkin menunjukkan masalah aplikasi.
Pola filter:
{ $.SomeObject IS NULL }
Kasus penggunaan:
Pemantauan kualitas data: Temukan catatan dengan bidang wajib yang hilang
Debugging aplikasi: Lacak saat data yang diharapkan tidak ada
Deteksi kesalahan: Pantau respons API atau kueri basis data yang tidak lengkap
- Detect missing configuration fields
-
Temukan log yang kehilangan bidang yang diharapkan seluruhnya, yang dapat menunjukkan masalah konfigurasi.
Pola filter:
{ $.SomeOtherObject NOT EXISTS }
Kasus penggunaan:
Validasi konfigurasi: Pastikan semua bidang yang diperlukan ada di log
Pemantauan API: Lacak permintaan atau tanggapan yang tidak lengkap
Pemantauan pipa data: Temukan catatan yang hilang bidang skema yang diharapkan
Variabel IS NOT
dan EXISTS
saat ini tidak didukung.
Gunakan ekspresi majemuk saat Anda perlu menggabungkan beberapa kondisi menggunakan operator logis AND (“&&”) dan OR (“||”). Pola-pola ini membantu Anda membuat aturan pemantauan canggih yang memerlukan beberapa kriteria untuk dipenuhi atau dipicu pada salah satu dari beberapa kondisi.
Ekspresi majemuk mendukung tanda kurung (“()”) dan mengikuti urutan operasi standar: () > && > ||. Gunakan pola ini ketika filter satu kondisi sederhana tidak cukup untuk kebutuhan pemantauan Anda.
Contoh peristiwa log JSON untuk pengujian:
{
"user": {
"id": 1,
"email": "John.Stiles@example.com"
},
"users": [
{
"id": 2,
"email": "John.Doe@example.com"
},
{
"id": 3,
"email": "Jane.Doe@example.com"
}
],
"actions": [
"GET",
"PUT",
"DELETE"
],
"coordinates": [
[0, 1, 2],
[4, 5, 6],
[7, 8, 9]
]
}
- Monitor specific user actions
-
Lacak kapan pengguna tertentu melakukan tindakan tertentu dengan menggabungkan identifikasi pengguna dengan pemantauan tindakan.
Pola filter:
{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }
Kasus penggunaan:
Audit keamanan: Lacak kapan pengguna admin tertentu mengakses sumber daya sensitif
Pemantauan kepatuhan: Pastikan pengguna tertentu hanya melakukan tindakan yang disetujui
Analisis perilaku pengguna: Pantau korelasi antara atribut dan tindakan pengguna
- Alert on any suspicious activity
-
Buat pemantauan luas yang memicu ketika salah satu dari beberapa kondisi yang berkaitan terjadi.
Pola filter:
{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }
Kasus penggunaan:
Pemantauan keamanan: Peringatan saat pengguna tertentu aktif ATAU ketika pola data yang tidak biasa terjadi
Kesehatan sistem: Pantau salah satu dari beberapa kondisi kesalahan yang berbeda
Peringatan fleksibel: Buat aturan catch-all untuk berbagai skenario terkait
- Require multiple conditions for alerts
-
Kurangi positif palsu dengan mewajibkan beberapa kondisi tertentu untuk dipenuhi sebelum memicu peringatan.
Pola filter:
{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }
Kasus penggunaan:
Peringatan kepercayaan tinggi: Hanya waspada ketika beberapa indikator mencurigakan sejajar
Aturan bisnis yang kompleks: Pantau skenario yang membutuhkan banyak kriteria
Pengurangan kebisingan: Mencegah peringatan dari peristiwa tunggal yang terisolasi
Kuota
Anda hanya dapat menggunakan hingga satu pemilih wildcard di pemilih properti, dan hingga tiga pemilih wildcard dalam pola filter dengan ekspresi majemuk.
- Monitor failed correlation attempts
-
Lacak kapan hubungan yang diharapkan antara bidang data tidak cocok, yang dapat menunjukkan masalah kualitas data.
Pola filter:
{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }
Kasus penggunaan:
Validasi data: Temukan catatan di mana bidang terkait tidak cocok dengan pola yang diharapkan
Integritas sistem: Memantau kerusakan data atau masalah sinkronisasi
Jaminan kualitas: Lacak kapan hubungan data rusak