Topik ini menjelaskan cara menggunakan pernyataan Simple Log Service Processing Language (SPL) untuk mengumpulkan log. Dalam kasus ini, pernyataan SPL berfungsi mirip dengan plug-in pemrosesan.
Informasi latar belakang
Untuk informasi lebih lanjut tentang cara memasang plug-in pemrosesan, lihat Ikhtisar Logtail plug-in untuk pemrosesan data.
Untuk informasi lebih lanjut tentang cara menggunakan pernyataan SPL untuk mengurai log, lihat Gunakan Logtail SPL untuk mengurai log.
Perbandingan antara pernyataan SPL dan plug-in asli
Perbandingan antara pernyataan SPL dan plug-in Pemrosesan Data (Mode Regex)
Contoh log:
127.0.0.1 - - [07/Jul/2022:10:43:30 +0800] "POST /PutData?Category=YunOsAccountOpLog" 0.024 18204 200 37 "-" "aliyun-sdk-java"Plug-in Pemrosesan Data (Mode Regex) | Pernyataan SPL |
Tentukan ekspresi reguler
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"ip": "127.0.0.1",
"time": "07/Jul/2022:10:43:30",
"method": "POST",
"url": "/PutData?Category=YunOsAccountOpLog",
"request_time": "0.024",
"request_length": "18204",
"status": "200",
"length": "37",
"ref_url": "-",
"browser": "aliyun-sdk-java",
"__time__": "1713184059"
}Perbandingan antara pernyataan SPL dan plug-in Pemrosesan Data (Mode Delimiter)
Contoh log:
127.0.0.1,07/Jul/2022:10:43:30 +0800,POST,PutData Category=YunOsAccountOpLog,0.024,18204,200,37,-,aliyun-sdk-javaPlug-in Pemrosesan Data (Mode Delimiter) | Pernyataan SPL |
Atur parameter Processor Type ke Pemrosesan Data (Mode Delimiter). Pilih Kustom dari daftar drop-down Delimiter dan tentukan koma (,) untuk memisahkan bidang. Untuk informasi lebih lanjut, lihat Kumpulkan log teks dari server.
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"ip": "127.0.0.1",
"time": "07/Jul/2022:10:43:30 +0800",
"method": "POST",
"url": "PutData?Category=YunOsAccountOpLog",
"request_time": "0.024",
"request_length": "18204",
"status": "200",
"length": "37",
"ref_url": "-",
"browser": "aliyun-sdk-java",
"__time__": "1713231487"
}Perbandingan antara pernyataan SPL dan plug-in Pemrosesan Data (Mode JSON)
Contoh log:
{"url": "POST /PutData?Category=YunOsAccountOpLog HTTP/1.1","ip": "10.200.98.220", "user-agent": "aliyun-sdk-java","request": "{\"status\":\"200\",\"latency\":\"18204\"}","time": "07/Jul/2022:10:30:28"}Plug-in Pemrosesan Data (Mode JSON) | Pernyataan SPL |
Untuk informasi lebih lanjut, lihat Kumpulkan log teks dalam mode JSON.
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"url": "POST /PutData?Category=YunOsAccountOpLog HTTP/1.1",
"ip": "10.200.98.220",
"user-agent": "aliyun-sdk-java",
"request": "{"status":"200","latency":"18204"}",
"time": "07/Jul/2022:10:30:28"
}Perbandingan antara pernyataan SPL dan kombinasi plug-in Pemrosesan Data (Mode Regex) dan Parsing Waktu
Contoh log:
127.0.0.1 - - [2024-11-05T15:47:05 +0800] "POST /PutData?Category=YunOsAccountOpLog" 0.024 18204 200 37 "-" "aliyun-sdk-java"Kombinasi Plug-in Pemrosesan Data (Mode Regex) dan Parsing Waktu | Pernyataan SPL |
| Tentukan pernyataan SPL berikut: |
Perbandingan antara pernyataan SPL dan kombinasi plug-in Pemrosesan Data (Mode Regex) dan Penyaringan Data
Contoh log:
127.0.0.1 - - [2024-11-05T15:47:05 +0800] "POST /PutData?Category=YunOsAccountOpLog" 0.024 18204 200 37 "-" "aliyun-sdk-java"Kombinasi Plug-in Pemrosesan Data (Mode Regex) dan Penyaringan Data | Pernyataan SPL |
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"ip": "127.0.0.1",
"time": "2024-11-05T15:47:05",
"method": "POST",
"url": "/PutData?Category=YunOsAccountOpLog",
"request_time": "0.024",
"request_length": "18204",
"status": "200",
"length": "37",
"ref_url": "-",
"browser": "aliyun-sdk-java",
"__time__": "1713238839"
}Perbandingan antara pernyataan SPL dan plug-in Masking Data
Contoh log:
{"account":"1812213231432969","password":"04a23f38"}Plug-in Masking Data | Pernyataan SPL |
Tentukan
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"content": "{"account":"1812213231432969","password":"******"}"
}Perbandingan antara pernyataan SPL dan plug-in ekstensi
Perbandingan antara pernyataan SPL dan plug-in Tambah Bidang
Contoh log:
this is a test logPlug-in Tambah Bidang | Pernyataan SPL |
Secara default, log disimpan di bidang
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"content": "this is a test log",
"service": "A"
}Perbandingan antara pernyataan SPL dan kombinasi plug-in Pemrosesan Data (Mode JSON) dan Hapus Bidang
Contoh log:
{"key1": 123456, "key2": "abcd"}Kombinasi Plug-in Pemrosesan Data (Mode JSON) dan Hapus Bidang | Pernyataan SPL |
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"key2": "abcd"
}Perbandingan antara pernyataan SPL dan kombinasi plug-in Pemrosesan Data (Mode JSON) dan Ubah Nama Bidang
Contoh log:
{"key1": 123456, "key2": "abcd"}Kombinasi Plug-in Pemrosesan Data (Mode JSON) dan Ubah Nama Bidang | Pernyataan SPL |
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"new_key1": "123456",
"key2": "abcd"
}Perbandingan antara pernyataan SPL dan kombinasi plug-in Pemrosesan Data (Mode JSON) dan Filter Log dengan Ekspresi Reguler (Cocokkan Nilai Bidang Log)
Contoh log:
{"ip": "10.**.**.**", "method": "POST", "browser": "aliyun-sdk-java"}
{"ip": "10.**.**.**", "method": "POST", "browser": "chrome"}
{"ip": "192.168.**.**", "method": "POST", "browser": "aliyun-sls-ilogtail"}Kombinasi Plug-in Pemrosesan Data (Mode JSON) dan Filter Log dengan Ekspresi Reguler (Cocokkan Nilai Bidang Log) | Pernyataan SPL |
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"ip": "10.**.**.**",
"method": "POST",
"browser": "chrome"
}Perbandingan antara pernyataan SPL dan kombinasi plug-in Pemrosesan Data (Mode JSON) dan Pemetaan Nilai Bidang
Contoh log:
{"_ip_":"192.168.*.*","Index":"900000003"}
{"_ip_":"255.255.**.**","Index":"3"}Kombinasi Plug-in Pemrosesan Data (Mode JSON) dan Pemetaan Nilai Bidang | Pernyataan SPL |
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"_ip_": "192.168.*.*",
"Index": "900000003",
"_processed_ip_": "default login"
}Perbandingan antara pernyataan SPL dan plug-in Penggantian String
Contoh log:
hello,how old are you? nice to meet youPlug-in Penggantian String | Pernyataan SPL |
Gunakan Plug-in Penggantian String untuk mengganti
| Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"content": "hello, nice to meet you"
}Perbandingan antara pernyataan SPL dan plug-in pengkodean data
Contoh log:
this is a test logPengkodean Base64
Plug-in BASE64 (Pengkodean) | Pernyataan SPL |
Untuk informasi lebih lanjut, lihat BASE64 (Pengkodean). | Tentukan pernyataan berikut: |
Pratinjau keluaran
{
"content": "this is a test log",
"content1": "dGhpcyBpcyBhIHRlc3QgbG9n"
}Pengkodean MD5
Plug-in MD5 | Pernyataan SPL |
Untuk informasi lebih lanjut, lihat MD5. | Tentukan pernyataan SPL berikut: |
Pratinjau keluaran
{
"content": "this is a test log",
"content1": "4f3c93e010f366eca78e00dc1ed08984"
}Kemampuan baru
Perhitungan matematika
Contoh log
4Pernyataan SPL
Fungsi cast mengonversi nilai suatu bidang ke tipe data tertentu. Untuk informasi lebih lanjut tentang fungsi power, round, dan sqrt, lihat Fungsi Perhitungan Matematika.
* | extend val = cast(content as double) | extend power_test = power(val, 2) | extend round_test = round(val) | extend sqrt_test = sqrt(val)Pratinjau Keluaran
{ "content": "4", "power_test": 16.0, "round_test": 4.0, "sqrt_test": 2.0, "val": 4.0 }
Perhitungan berbasis URL
Pengkodean dan Dekode URL
Contoh log
https://home.console.alibabacloud.com/home/dashboard/ProductAndServicePernyataan SPL
Untuk informasi lebih lanjut tentang fungsi url_encode dan url_decode, lihat Fungsi URL.
* | extend encoded = url_encode(content) | extend decoded = url_decode(encoded)Pratinjau Keluaran
{ "content": "https://home.console.alibabacloud.com/home/dashboard/ProductAndService", "decoded": "https://home.console.alibabacloud.com/home/dashboard/ProductAndService", "encoded": "https%3A%2F%2Fhome.console.alibabacloud.com%2Fhome%2Fdashboard%2FProductAndService" }
Ekstraksi URL
Contoh log
https://sls.console.alibabacloud.com:443/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdwPernyataan SPL
Untuk informasi lebih lanjut tentang fungsi yang digunakan dalam pernyataan SPL berikut, lihat Fungsi URL.
* | extend host = url_extract_host(content) | extend query = url_extract_query(content) | extend path = url_extract_path(content) | extend protocol = url_extract_protocol(content) | extend port = url_extract_port(content) | extend param = url_extract_parameter(content, 'accounttraceid')Pratinjau Keluaran
{ "content": "https://sls.console.alibabacloud.com:443/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw", "host": "sls.console.alibabacloud.com", "param": "d6241a173f88471c91d3405cda010ff5ghdw", "path": "/lognext/project/dashboard-all/logsearch/nginx-demo", "port": "443", "protocol": "https", "query": "accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw" }
Operator perbandingan dan logika
Contoh log
{"num1": 199, "num2": 10, "num3": 9}Pernyataan SPL
Fungsi cast mengonversi nilai suatu bidang ke tipe data tertentu dan instruksi parse-json mengekstrak bidang yang ditentukan.
* | parse-json content | extend compare_result = cast(num1 as double) > cast(num2 as double) AND cast(num2 as double) > cast(num3 as double)Pratinjau Keluaran
{ "compare_result": "true", "content": "{"num1": 199, "num2": 10, "num3": 9}", "num1": "199", "num2": "10", "num3": "9" }











