全部产品
Search
文档中心

Security Center:Gunakan kueri log kustom dan analisis

更新时间:Jan 23, 2026

Di halaman Analisis Log pada konsol Security Center, Anda dapat menjalankan kueri log kustom dan analisis untuk berbagai skenario kompleks. Topik ini menjelaskan sintaks untuk pernyataan kueri dan analisis.

Ikhtisar

Pilih Risk Governance > Log Analysis di panel navigasi sisi kiri konsol Security Center, lalu masukkan pernyataan SQL dalam Search & Analyze untuk menjalankan kueri log kustom dan analisis. Pernyataan kueri log terdiri dari dua bagian: sintaks pencarian dan sintaks analitik, yang dipisahkan oleh garis vertikal (|).

Saat menjalankan kueri log kustom dan analisis, sintaks pencarian dan analitik bersifat opsional. Berikut adalah penjelasan untuk sintaks pencarian dan analitik:

  • Pencarian: Gunakan kata kunci, kondisi pencocokan kabur, nilai numerik, rentang, atau kombinasi untuk membuat kondisi pencarian. Jika nilai bagian Pencarian adalah tanda bintang (*) atau kosong, data dari periode yang ditentukan tidak difilter. Dalam hal ini, semua data dari periode tersebut digunakan untuk analisis.

  • Analitik: Hitung dan kumpulkan statistik dari hasil pencarian atau data lengkap. Jika nilai bagian Analitik kosong, hasil kueri dikembalikan tanpa statistik.

Sintaks pencarian

Sintaks pencarian Layanan Log Sederhana mendukung kueri teks penuh dan kueri bidang. Kotak kueri mendukung fitur seperti pencarian multi-baris dan penyorotan sintaks.

  • Full-text query

    Masukkan kata kunci untuk mencari log tanpa menentukan bidang. Untuk beberapa kata kunci, letakkan setiap kata kunci dalam tanda kutip (") dan pisahkan dengan spasi atau operator and. Contoh:

    • Query with multiple keywords specified

      Cari log yang berisi www.aliyundoc.com dan 404. Contoh:

      www.aliyundoc.com 404

      atau:

      www.aliyundoc.com and 404
    • Conditional query

      Cari log yang berisi www.aliyundoc.com dan error, atau log yang mencakup www.aliyundoc.com dan 404. Contoh:

      www.aliyundoc.com and (error or 404)
    • Fuzzy search

      Cari log yang berisi www.aliyundoc.com dan dimulai dengan failed_. Contoh:

      www.aliyundoc.com and failed_*
      Catatan

      Kueri teks penuh hanya mendukung akhiran dengan tanda bintang (*). Awalan dengan tanda bintang (*) tidak didukung.

  • Field-specific search

    Filter data bidang numerik menggunakan Bidang: Nilai atau Bidang >= Nilai. Gabungkan kedua format tersebut menggunakan and atau or. Format ini juga dapat digunakan bersama dengan kueri teks penuh melalui kombinasi yang ditentukan oleh and dan or.

    Layanan Log Sederhana mendukung kueri lebih akurat berdasarkan bidang.

    • Multi-field query

      Cari log peringatan dengan tingkat keparahan serious. Contoh:

      __topic__ : sas-security-log and level: serious

      Cari log masuk SSH pada klien dengan alamat IP 1.2.XX.XX. Contoh:

      __topic__:aegis-log-login and ip:1.2.XX.XX and warn_type:SSHLOGIN
      Catatan

      Setiap log memiliki bidang __topic__ yang menunjukkan topik log. Log dibedakan berdasarkan bidang ini. Dalam contoh-contoh ini, bidang seperti level, warn_type, dan ip adalah bidang untuk jenis log tertentu.

    • Numeric field query

      Cari log kueri DNS internal dengan waktu respons lebih dari 1 detik. Contoh:

      __topic__:local-dns and time_usecond > 1000000

      Kueri berbasis rentang juga didukung. Misalnya, cari log DNS internal dengan waktu respons lebih dari 1 detik tetapi kurang dari atau sama dengan 10 detik. Contoh:

      __topic__:local-dns and time_usecond in [1000000,10000000]

    Untuk informasi lebih lanjut tentang sintaks, lihat Ikhtisar Pencarian Log.

Sintaks analitik

Gunakan pernyataan SQL-92 untuk menganalisis dan mengumpulkan statistik pada log. Untuk informasi lebih lanjut tentang sintaks dan fungsi yang didukung oleh Layanan Log Sederhana, lihat Ikhtisar Analisis Log.

Dalam pernyataan analitik, bagian from log mirip dengan bagian from <nama tabel> dalam pernyataan SQL standar dan dapat dihilangkan.

Secara default, Layanan Log Sederhana mengembalikan 100 entri log pertama. Ubah jumlah entri log yang ingin dikembalikan menggunakan sintaks LIMIT. Untuk informasi lebih lanjut, lihat Klausa LIMIT.

Kueri dan analisis log berbasis waktu

Setiap entri log memiliki bidang bawaan __time__, yang menunjukkan waktu pembuatan entri log. Bidang ini memfasilitasi analisis statistik berbasis waktu. Nilainya adalah timestamp UNIX yang mewakili jumlah detik sejak epoch 1 Januari 1970, 00:00:00 UTC. Oleh karena itu, timestamp harus dikonversi ke format yang didukung sebelum ditampilkan.

  • Select and display the time

    Dalam contoh ini, kueri 10 log masuk terbaru dengan alamat IP 1.2.XX.XX dalam rentang waktu tertentu. Nilai yang dikembalikan mencakup waktu, IP sumber, dan tipe log masuk. Contoh:

    __topic__: aegis-log-login and ip: 1.2.XX.XX
    | select date_format(__time__, '%Y-%m-%d %H:%i:%s') as time, warn_ip, warn_type 
    order by __time__ desc 
    limit 10
  • Calculate the time

    Gunakan __time__ untuk menghitung jumlah hari setelah log masuk. Contoh:

    __topic__: aegis-log-login and ip: 1.2.XX.XX
    | select date_format(__time__, '%Y-%m-%d %H:%i:%s') as time, warn_ip, warn_type ,
    round((to_unixtime(now()) - __time__)/86400,1) as "days_passed"
    order by __time__ desc 
    limit 10

    Dalam contoh ini, round((to_unixtime(now()) - __time__)/86400, 1) digunakan untuk perhitungan. Pertama, fungsi ini menggunakan to_unixtime untuk mengonversi waktu yang dikembalikan oleh now() menjadi timestamp UNIX. Kedua, ia mengurangi bidang bawaan __time__ dari nilai yang dihitung untuk mendapatkan jumlah detik yang telah berlalu. Kemudian, fungsi ini membagi nilai yang dihitung dengan 86400, yaitu total jumlah detik dalam sehari. Terakhir, fungsi round(data, 1) membulatkan nilai yang diperoleh ke satu tempat desimal untuk menghitung jumlah hari yang telah berlalu sejak pembuatan setiap log serangan.

  • Group statistics based on a specific time

    Jika ingin mengetahui tren log masuk untuk perangkat dalam rentang waktu tertentu, jalankan pernyataan SQL berikut:

    __topic__: aegis-log-login and ip: 1.2.XX.XX
    | select date_trunc('day', __time__) as dt,
    count(1) as PV
    group by dt
    order by dt

    Dalam contoh ini, bidang bawaan __time__ dilewatkan ke fungsi date_trunc('day', ..) untuk menyelaraskan waktu berdasarkan hari. Setiap entri log dikelompokkan ke partisi hari di mana ia termasuk untuk memfasilitasi perhitungan jumlah total (count(1)). Entri log diurutkan berdasarkan blok waktu partisi. Anda dapat menggunakan nilai lain untuk parameter pertama fungsi date_trunc untuk mengelompokkan entri log berdasarkan unit waktu lainnya, seperti second, minute, hour, week, month, dan year. Untuk informasi lebih lanjut tentang fungsi ini, lihat Fungsi Tanggal dan Waktu.

  • Group statistics based on a flexible time

    Jika ingin mengetahui aturan waktu pengelompokan yang lebih fleksibel, seperti tren log masuk setiap 5 menit untuk perangkat akun Anda, jalankan pernyataan SQL berikut:

    __topic__: aegis-log-login
    | select from_unixtime(__time__ - __time__% 300) as dt,
    count(1) as PV
    group by dt
    order by dt
    limit 1000                        

    Dalam contoh ini, bidang waktu bawaan digunakan untuk menghitung __time__ - __time__% 300 dan fungsi from_unixtime digunakan untuk pemformatan. Setiap entri log dikelompokkan ke partisi 5 menit (300 detik) untuk memfasilitasi perhitungan jumlah total (count(1)). Entri log diurutkan berdasarkan blok waktu partisi untuk mendapatkan 1.000 entri log pertama, yang setara dengan memilih data dalam 83 jam pertama.

    Untuk informasi lebih lanjut tentang fungsi terkait waktu, lihat Fungsi Tanggal dan Waktu. Sebagai contoh, fungsi date_parse dan date_format dapat mengonversi format waktu ke format lain.

Kueri dan analisis log berbasis alamat IP klien

Bidang warn_ip dalam entri log log masuk menunjukkan alamat IP sumber dari log masuk.

  • Distribusi Negara Sumber Log Masuk

    Kueri distribusi negara sumber dari mana pengguna masuk ke server. Contoh:

    __topic__: aegis-log-login and uuid: 12344567
    | SELECT ip_to_country(warn_ip) as country,
    count(1) as "Jumlah log masuk"
    group by country

    Dalam contoh ini, fungsi ip_to_country digunakan untuk mengambil negara yang sesuai dengan warn_ip, yang menentukan alamat IP sumber dari log masuk.

  • Distribusi Identitas Log Masuk

    Gunakan fungsi ip_to_province untuk mengambil distribusi log masuk yang lebih rinci berdasarkan provinsi. Contoh:

    __topic__: aegis-log-login and uuid: 12344567
    | SELECT ip_to_province(warn_ip) as province,
             count(1) as "Jumlah log masuk"
             group by province

    Dalam contoh ini, fungsi ip_to_province digunakan untuk mengambil provinsi sumber ke mana alamat IP milik. Jika alamat IP bukan dari Tiongkok, sistem mencoba mengonversinya ke provinsi atau negara bagian berdasarkan lokasi negara dari alamat IP. Namun, jika Anda memilih peta Tiongkok, provinsi atau negara bagian tidak dapat ditampilkan.

  • Distribusi Geotermal Log Masuk

    Gunakan fungsi ip_to_geo untuk mengambil distribusi geotermal log masuk:

    __topic__: aegis-log-login and uuid: 12344567
    | SELECT ip_to_geo(warn_ip) as geo,
             count(1) as "Jumlah log masuk"
             group by geo
             limit 10000

    Dalam contoh ini, fungsi ip_to_geo digunakan untuk mengambil lintang dan bujur alamat IP. LIMIT diatur ke 10000 untuk mengambil 10.000 entri log pertama.

    Catatan

    Untuk informasi lebih lanjut tentang fitur berbasis alamat IP, lihat Fungsi IP. Sebagai contoh, Anda dapat menggunakan fungsi ip_to_provider untuk mendapatkan penyedia alamat IP dan fungsi ip_to_domain untuk menentukan apakah alamat IP bersifat publik atau pribadi.