Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:Arama sözdizimi ve işlevler

Son Güncelleme:Sep 30, 2026

Simple Log Service günlüklerinizi arama ifadeleriyle filtrelemenizi sağlar. Sonuçları tek başına kullanabilir veya analiz ifadelerine giriş olarak verebilirsiniz.

Ön koşullar

Günlükleri sorgulamak için bir dizin oluşturmanız gerekir.

Temel sözdizimi

Not

Sorgu ve analiz ifadeleri | karakteriyle ayrılarak sorgu ifadesi|analiz ifadesi biçiminde yazılır. Örnek:

* | SELECT status, count(*) AS PV GROUP BY status

İfade türü

Açıklama

arama ifadesi

Arama koşullarını belirtir: anahtar kelimeler, sayısal değerler, sayısal aralıklar, boşluklar veya yıldız işareti (*).

Boşluk veya yıldız işareti (*) belirtirseniz hiçbir filtre uygulanmaz.

Önemli

Bir arama ifadesinde en fazla 30 koşul belirtin.

analiz ifadesi

Önemli

Analiz ifadeleri bir arama ifadesinin ardından gelmelidir. FROM veya WHERE yan tümcesine gerek yoktur; SLS varsayılan olarak geçerli Logstore'daki tüm verileri analiz eder. Büyük/küçük harfe duyarlı değildir, offset desteklemez ve sonunda noktalı virgül (;) gerektirmez.

Arama sonuçları veya tüm veriler üzerinde hesaplama ve istatistiksel analiz gerçekleştirir. Desteklenen işlevler ve sözdizimi:

Arama sorguları yazma

image

Bir sorgu ifadesi yazmak için:

1. Adım: Arama türünü seçin

Önemli

Sonuçlar dizin yapılandırmanıza bağlıdır. Hem tam metin hem de alan dizinleri mevcutsa alan dizinleri önceliklidir.

Dizin türüne bağlı olarak Simple Log Service bir Logstore için iki arama türünü destekler: tam metin araması ve alana özel arama.

  • Yalnızca bir tam metin dizini oluşturduysanız tam metin araması kullanmalısınız.

  • Alan dizinleri oluşturduysanız aşağıdaki kurallara uyun:

    • double veya long türündeki alanlar için alana özel arama sözdizimini kullanmalısınız.

    • text türündeki alanlar için: Anahtar kelimenin hangi dizinli alanda bulunduğunu biliyorsanız alana özel arama sözdizimini kullanın. Anahtar kelimenin hangi alanda olduğunu bilmiyorsanız tam metin arama sözdizimini kullanın.

      • Tam metin dizini oluşturmazsanız tam metin arama sözdizimi yalnızca dizinlenmiş metin alanlarını sorgular.

      • Tam metin dizini oluşturursanız tam metin arama sözdizimi tüm dizinlenmiş metin alanlarında arama yapar.

Tam metin araması

Tam metin araması belirli bir alanı hedeflemez. Joker karakterleri (* ve ?) ve mantıksal işleçleri (and, or, not) destekler.

Arama sözdizimi
 keywords1  [ and | or | not ] keywords2  ...

Örnekler

  • Örnek 1

    GET anahtar kelimesini içeren günlükleri arayın. Arama sözdizimi: GET.

  • Örnek 2

    GET veya POST anahtar kelimelerini içeren günlükleri arayın. Arama sözdizimi: GET or POST .

  • Örnek 3

    Jo ile başlayan anahtar kelimeleri (örneğin Joe ve Jon) içeren günlükleri arayın. Arama sözdizimi: Jo*.

Alana özel arama

Alana özel arama belirli bir dizinli alanı hedefler ve sayısal karşılaştırmalar ile düzenli ifade eşleştirmesini destekler.

Önemli
  • indexname1 sorgulanacak alan adıdır. Bir alan adı veya başka bir tanımlayıcı özel karakterler (boşluklar veya Çince karakterler gibi) ya da arama anahtar kelimeleri (and veya or gibi) içeriyorsa çift tırnak içine ("") almanız gerekir. Arama ve analiz ifadelerinde tırnak işaretleri nasıl kullanılır.

  • long veya double olarak dizinlenmiş alanlar için >, >=, <, <=, = ve in gibi karşılaştırma işleçlerini kullanın.

Arama sözdizimi

indexname1 [ : | > | >= | < | <= | = | in ] keyword1 [ [ and | or | not ] indexname2 ... ]

Örnekler

  • Örnek 1

    request_method değeri GET olan günlükleri arayın. Arama sözdizimi: request_method: GET.

  • Örnek 2

    request_time_msec değeri 50 değerinden büyük olan günlükleri arayın (alan double olarak dizinlenmelidir). Arama sözdizimi: request_time_msec>50.

  • Örnek 3

    request_method değeri GET ve request_time_msec değeri 50 değerinden büyük olan günlükleri arayın. Arama sözdizimi: request_method: GET and request_time_msec>50.

2. Adım: Alan veri türleri

Her alan veri türü farklı operatörleri destekler.

Alan veri türleri

Tür

Açıklama

Desteklenen operatörler

text

Dize alanı. Tam metin dizini etkinleştirildiğinde, __time__ hariç tüm alanlar varsayılan olarak text türündedir.

and, or, not, (), :, "", \, * ve ?.

long and double

Sayısal aralık sorguları için alan türünün long veya double olması gerekir.

  • Alan türü double veya long değilse veya aralık sözdizimi geçersizse SLS tam metin aramasına geri döner; bu durum beklenmeyen sonuçlara yol açabilir.

    Örneğin, owner_id alanı double veya long türünde değilse owner_id>100 arama ifadesi; owner_id, > (ayırıcı değil, bir terim olarak işlenir) ve 100 olmak üzere üç terimi de içeren günlükleri döndürür.

  • Bir alanın veri türünü text türünden double veya long türüne değiştirirseniz yalnızca = operatörüyle eşitlik aramaları desteklenir. Büyüktür (>) ve küçüktür (<) gibi aralık operatörlerini kullanmak için yeniden dizinleme yapmanız gerekir.

and, or, not, (), >, >=, <, <=, = ve in.

JSON

JSON alanlarının veri türlerini değerlerine göre long, double veya text olarak ayarlayın ve Enable Analytics seçeneğini etkinleştirin.

JSON nesnesindeki alanların veri türüne göre operatörleri kullanın.

Operatörler

Önemli
  • in operatörü küçük harfle yazılmalıdır. Diğer operatörler büyük/küçük harfe duyarlı değildir.

  • SLS aşağıdaki kelimeleri operatör olarak kullanmak üzere ayırmıştır. Bu kelimeleri arama anahtar kelimesi olarak kullanmak istiyorsanız çift tırnak ("") içine almanız gerekir: sort, asc, desc, group by, avg, sum, min, max ve limit.

  • Operatörler öncelik sırasına göre (yüksekten düşüğe) aşağıda listelenmiştir:

    1. İki nokta üst üste (:)

    2. Çift tırnak ("")

    3. Parantez ()

    4. and, not

    5. or

Operatör

Açıklama

:

Anahtar:Değer biçiminde alana özgü arama yapar. Örnek: request_method:GET.

Bir alan adı veya değeri boşluk, iki nokta üst üste (:) veya tire (-) gibi özel karakterler içeriyorsa adı veya değeri çift tırnak ("") içine almanız gerekir. Örnek: "file info":apsara.

and

and operatörü. Örnek: request_method:GET and status:200.

Mantıksal operatör belirtmeden birden fazla anahtar kelime girerseniz varsayılan olarak and operatörü kullanılır. Örneğin, GET 200 cn-shanghai ifadesi GET and 200 and cn-shanghai ifadesine eşdeğerdir.

or

or operatörü. Örnek: request_method:GET or status:200.

not

not operatörü. Örnekler: request_method:GET not status:200 ve not status:200.

( )

Arama koşullarını gruplayarak önceliğini artırır. Örnek: (request_method:GET or request_method:POST) and status:200.

""

Bir sözdizimi anahtar kelimesini değişmez değer olarak işlemek için "" (çift tırnak) içine alın. Bir alan sorgusunda "" içindeki tüm kelimeler tek bir ifade olarak kabul edilir.

  • Bir alan adı veya değeri özel karakterler (boşluk, Çince karakterler, : veya - gibi) veya sözdizimi anahtar kelimeleri (and veya or gibi) içeriyorsa bunu "" içine almanız gerekir. Örneğin, "and" araması yapıldığında "and" kelimesini içeren günlükler bulunur; bu kelime operatör olarak işlenmez.

  • SLS aşağıdaki kelimeleri operatör olarak kullanmak üzere ayırmıştır. Bu kelimeleri arama anahtar kelimesi olarak kullanmak istiyorsanız "" içine almanız gerekir: sort, asc, desc, group by, avg, sum, min, max ve limit.

  • Günlükler veri dönüştürme veya Logtail eklentisi tarafından işlendiğinde etiket anahtarı standart bir anahtara dönüştürülür. Bu anahtarı sorgulamak için alan adını "" içine almanız gerekir. Örnek: "__tag__:__client_ip__":192.0.2.1. __tag__:__client_ip__ alanı, günlük toplama ana bilgisayar IP adresini depolayan bir ayrılmış alandır.

\

Kaçış karakteri. Çift tırnağı ("") kaçış karakteriyle işaretleyerek bunu değişmez değer olarak arayabilirsiniz. Örneğin, bir günlük instance_id:nginx"01" ifadesini içeriyorsa instance_id:nginx\"01\" ifadesiyle arama yapabilirsiniz.

*

Sıfır veya daha fazla karakterle eşleşen joker karakter. Örnek: host:www*com.

Not

SLS, günlüklerinizden en fazla 100 eşleşen terim bulur ve ardından bu terimleri içeren ve arama koşullarını karşılayan tüm günlükleri döndürür.

?

Tam olarak bir karakterle eşleşen joker karakter. Örnek: host:aliyund?c.

>

Alan değeri belirtilen sayıdan büyüktür. Örnek: request_time>100.

>=

Alan değeri belirtilen sayıdan büyük veya buna eşittir. Örnek: request_time>=100.

<

Alan değeri belirtilen sayıdan küçüktür. Örnek: request_time<100.

<=

Alan değeri belirtilen sayıdan küçük veya buna eşittir. Örnek: request_time<=100.

=

Bir alanın değeri belirtilen sayıya eşit olan günlükleri arar. double veya long türündeki alanlar için = ve : operatörleri eşdeğerdir. Örneğin, request_time=100 ifadesi request_time:100 ifadesine eşdeğerdir.

in

Bir alanın değeri belirtilen sayısal aralıkta olan günlükleri arar. Köşeli parantez [] kapalı aralığı (dahil), normal parantez () açık aralığı (hariç) belirtir. Aralıktaki iki sayıyı ayırmak için boşluk kullanın. Örnekler: request_time in [100.200] veya request_time in (100.200].

Önemli

in operatörü küçük harfle yazılmalıdır.

__source__

Belirli bir kaynaktan gelen günlükleri arar. Joker karakterler desteklenir. Örnek: __source__:192.0.2.*.

Önemli

Log Service'de __source__, source olarak kısaltılabilen ayrılmış bir alandır. source adında özel bir alan tanımlarsanız bu alan source ayrılmış alanıyla çakışır. Bu durumda özel alanınızı sorgulamak için Source veya SOURCE gibi farklı bir büyük/küçük harf kullanımı tercih etmeniz gerekir.

__tag__

Günlükleri meta verilere göre arar. Örnek: __tag__:__receive_time__:1609837139.

__topic__

Günlükleri konuya göre arar. Örnek: __topic__:nginx_access_log.

Adım 3: Eşleşme modu seçin

SLS tam eşleşme araması ve bulanık aramayı destekler.

Arama türü

Açıklama

Örnek

Tam eşleşme araması

Tam kelimelerle eşleşen günlükleri bulur.

SLS kelime ayırma kullandığından çok kelimeli bir sorgu her zaman tam eşleşme döndürmeyebilir. abc def sorgusu hem abc hem de def içeren günlükleri döndürür ancak bunlar mutlaka bitişik bir ifade halinde olmayabilir. abc def ifadesinin tam eşleşmesini sağlamak için ifade araması veya LIKE yan tümcesi kullanın. Günlüklerde tam eşleşme kullanarak nasıl sorgulama yaparım?

  • host:example.com: host alanında example.com içeren günlükleri bulur.

  • PUT and cn-shanghai: Hem PUT hem de cn-shanghai anahtar kelimelerini içeren günlükleri bulur.

  • | Select where http_user_agent like '%like Gecko%': http_user_agent alan değeri like Gecko ifadesini içeren günlükleri bulur.

  • #"redo_index/1": redo_index/1 ifadesini içeren günlükleri bulur.

Bulanık arama

Bir terimin ortasına veya sonuna joker karakter (* veya ?) ekleyin (64 karakter sınırı). SLS en fazla 100 terimle eşleşir ve bunları içeren tüm günlükleri döndürür. Daha spesifik terimler daha iyi sonuçlar verir.

Önemli
  • Arama teriminin başında yıldız işareti (*) veya soru işareti (?) gibi joker karakterler kullanmayın.

  • long veya double veri türündeki alanlarda joker karakterlerle (* veya ?) bulanık arama desteklenmez. Bunun yerine status in [200.299] gibi bir değer aralığı arayabilirsiniz.

Bulanık arama örnekleme tabanlı bir sorgudur:

  • Alan dizini etkinleştirildiğinde SLS tam tarama yapmak yerine o alanın dizininden örnekleme yapar ve temsilci niteliğinde bir sonuç alt kümesi döndürür.

  • Tam metin dizini etkin olduğunda ve belirli bir alan belirtilmediğinde SLS tam metin dizininden örnekleme yapar ve temsilci niteliğinde bir alt küme döndürür.

  • request_time>60 and request_method:Ge*: request_time alan değeri 60 değerinden büyük olan ve request_method alan değeri Ge ile başlayan günlükleri bulur.

  • addr*: addr ile başlayan en fazla 100 terimden herhangi birini içeren günlükleri bulur.

  • host:www.yl*: host alanı www.yl ile başlayan günlükleri bulur (en fazla 100 terimle eşleşir).

Günlüklerde bulanık sorgu nasıl yapılır?

Arama ifadesi örnekleri

Arama sonuçları, günlük içeriğine ve dizin yapılandırmasına bağlıdır. Aşağıdaki örnekler, belirtilen örnek günlük ve dizin yapılandırmasını kullanır.

Text, double ve long türleri

Örnek günlük

Aşağıda örnek bir NGINX erişim günlüğü verilmiştir. Sonraki arama ifadeleri bu günlük biçimine dayanmaktadır:

__tag__:__receive_time__0 :1645499498
body_bytes_sent :3033
client_ip :11x xxx xxx4.26
host :www.wmxxxxxxxxxm
http_host :wxxxxxxxx xxxck.com
http_user_agent :Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.xxx xxx56 Safari/535.11
http_x_forwarded_for :11xx xxxxxxx.213
instance_id :i-01
instance_name :instance-02
network_type :vlan
owner_id :owner-01
referer :www.xxxxxxxxx.com
region :cn-shanghai
remote_addr :21x xx xxx76
remote_user :6f3x
request method :PUT POST
request_length :2414
request_method :GET
request_time :71
request_uri :/request/path-1/file-2
scheme :https
server_protocol :HTTP/2.0
slbid :slb-01
status :200
time_local :22/Feb/2022:03:11:08
upstream_addr :117.xxx.xxx6
upstream_response_time :27
upstream_status :200
user_agent :Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 FireFox/29.0
vip_addr :2xx xxxxxxxx.33
vpc_id :195datxxxxxxxxxxxxxxxxx6d9c1f46f

Dizin yapılandırması

Günlükleri sorgulamadan önce Dizin oluşturun. Dizin yapılandırmanızı denetlemek için aşağıdaki adımları izleyin.

  1. Logstore'un query and analysis sayfasında Index Attributes > Attributes öğelerini seçin.

  2. Açılan panelde alan dizinlerinin yapılandırılıp yapılandırılmadığını kontrol edin.

Genel arama

Amaç

Arama ifadesi

Hata ayıklama

Başarılı GET isteklerini (durum kodu 200–299) arayın.

request_method:GET and status in [200 299]

Hata ayıklama

China (Hangzhou) bölgesi dışından gelen GET isteklerini arayın.

request_method:GET not region:cn-hangzhou

Yok

GET veya POST isteklerini arayın.

request_method:GET or request_method:POST

Hata ayıklama

GET olmayan istekleri arayın.

not request_method:GET

Hata ayıklama

Başarılı GET veya POST isteklerini arayın.

(request_method:GET or request_method:POST) and status in [200 299]

Hata ayıklama

Başarısız GET veya POST isteklerini arayın.

(request_method:GET or request_method:POST) not status in [200 299]

Hata ayıklama

İstek süresi 60 saniyeden az olan başarılı GET isteklerini (durum kodu 200–299) arayın.

request_method:GET and status in [200 299] not request_time>=60

Hata ayıklama

İstek süresi 60 saniye olan günlükleri arayın.

request_time:60

Hata ayıklama

request_time=60

Hata ayıklama

İstek süresi 60 saniyeden büyük veya eşit ve 200 saniyeden küçük olan günlükleri arayın.

request_time>=60 and request_time<200

Hata ayıklama

request_time in [60 200)

Hata ayıklama

request_time alanının bulunduğu günlükleri arayın.

request_time:*

Hata ayıklama

request_time alanı boş olan veya geçersiz bir sayı içeren günlükleri arayın.

(request_time:"") or (not request_time > -10000000000)

Hata ayıklama

request_time alanında sayısal değer bulunan günlükleri arayın.

request_time > -1000000000

Hata ayıklama

and içeren günlükleri arayın.

"and"
Not

and kelimesi bir işleç değil, değişmez dize olarak değerlendirilir.

Hata ayıklama

request method alanının değeri PUT olan günlükleri arayın.

"request method":PUT
Önemli

request method alan adı boşluk içerir. Çift tırnak ("") içine almanız gerekir.

Yok

Konu HTTPS veya HTTP olan günlükleri arayın.

__topic__:HTTPS or __topic__:HTTP

Yok

192.0.2.1 ana bilgisayarından gelen günlükleri arayın.

__tag__:__client_ip__:192.0.2.1

__tag__:__client_ip__ alanı, günlük toplama ana bilgisayarının IP adresini depolayan bir ayrılmış alandır.

Önemli

Bir günlük veri dönüştürme veya Logtail eklentisi kullanılarak işlenirse, etiketteki anahtar normal bir anahtara dönüştürülür. Günlüğü sorgulamak için alan adını çift tırnak ("") içine almanız gerekir. Örnek: "__tag__:__client_ip__":192.0.2.1.

Yok

192.168.XX.XX içeren günlükleri arayın.

* | select * from log where key like '192.168.%.%'

Kesin bulanık sorgular için SQL LIKE yan tümcesini kullanın.

Yok

remote_user alan değeri boş olmayan günlükleri arayın.

not remote_user:""

Hata ayıklama

remote_user alan değeri boş olan günlükleri arayın.

remote_user:""

Hata ayıklama

remote_user alan değeri null olmayan günlükleri arayın.

not remote_user:"null"

Hata ayıklama

remote_user alanını içermeyen günlükleri arayın.

not remote_user:*

Hata ayıklama

remote_user alanını içeren günlükleri arayın.

remote_user:*

Hata ayıklama

city alan değeri Shanghai olmayan günlükleri arayın.

not city:Shanghai
Not

Çince dizeleri sorgulamak için dizinleri yapılandırırken include Chinese seçeneğini etkinleştirin.

Yok

Bulanık arama

Amaç

Arama ifadesi

Hata ayıklama

cn ile başlayan kelimeler içeren günlükleri arayın.

cn*

Hata ayıklama

region alan değeri cn ile başlayan günlükleri arayın.

region:cn*

Yok

region alan değeri cn* içeren günlükleri arayın.

region:"cn*"
Not

Bu arama ifadesinde cn* değişmez bir dize olarak değerlendirilir. Örneğin:

  • Bir günlük region:cn,en içeriyorsa ve sınırlayıcı virgül (,) ise içerik region, cn ve en olarak bölünür. Bu günlük arama ifadesi kullanılarak bulunabilir.

  • Bir günlük region:cnhangzhou içeriyorsa cnhangzhou tek bir terim olarak değerlendirilir. Bu günlüğü arama ifadesi kullanarak bulamazsınız.

Yok

"mozi" ile başlayan, "la" ile biten ve aralarında tek bir karakter bulunan kelime içeren günlükleri arayın.

mozi?la

Hata ayıklama

"mo" ile başlayan, "la" ile biten ve aralarında sıfır veya daha fazla karakter bulunan kelime içeren günlükleri arayın.

mo*la

Hata ayıklama

"moz" ile başlayan kelimeler ve "sa" ile başlayan kelimeler içeren günlükleri arayın.

moz* and sa*

Hata ayıklama

region alan değeri "hai" ile biten günlükleri arayın.

Arama ifadeleri bu günlükleri bulamaz. Bunun yerine SQL LIKE yan tümcesini kullanın.

*| select * from log where region like '%hai'

Yok

message alan değeri "get_time: 0. ile başlayan günlükleri arayın.

SQL analizinde like yan tümcesini kullanın.

*| select message where message like '"get_time: 0.%'

Alternatif olarak, günlükleri filtrelemek için Structured Process Language'deki (SPL) where yönergesini kullanabilirsiniz.

*| where message like '"get_time: 0.%'

Yok

Sınırlayıcıya göre arama

SLS, günlük içeriğini yapılandırılan sınırlayıcıları kullanarak kelimelere böler. Varsayılanlar , '";=()[]{}?@&<>/:\n\t\r. Delimiter boş bırakılırsa alan değeri tek bir terim olarak değerlendirilir ve yalnızca tüm dizede tam veya bulanık arama ile bulunabilir. Dizin oluşturma.

Örneğin, http_user_agent alanının değeri Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/192.0.2.0 Safari/537.2 şeklindedir.

  • delimiter değerini boş bırakırsanız alan değeri tek bir belirteç olarak değerlendirilir. Sonuç olarak, http_user_agent:Chrome sorgu ifadesini kullanarak günlüğü bulamazsınız.

  • Delimiter değerini , '";=()[]{}?@&<>/:\n\t\r olarak ayarlarsanız alan değeri Mozilla, 5.0, Windows, NT, 6.1, AppleWebKit, 537.2, KHTML, like, Gecko, Chrome, 192.0.2.0, Safari ve 537.2 terimlerine bölünür. http_user_agent:Chrome gibi arama ifadelerini kullanarak günlüğü bulabilirsiniz.

Önemli

Bir arama anahtar sözcüğü sınırlayıcı içeriyorsa ifade araması veya LIKE yan tümcesi kullanmanız gerekir. Örneğin:

  • İfade araması: #"redo_index/1".

  • LIKE yan tümcesi: * | select * from log where key like 'redo_index/1'.

Amaç

Arama ifadesi

Hata ayıklama

http_user_agent alan değeri Chrome içeren günlükleri arayın.

http_user_agent:Chrome

Hata ayıklama

http_user_agent alan değeri Linux ve Chrome içeren günlükleri arayın.

http_user_agent:Linux and http_user_agent:Chrome

Hata ayıklama

http_user_agent:"Linux Chrome"

Hata ayıklama

http_user_agent alan değeri Firefox veya Chrome içeren günlükleri arayın.

http_user_agent:Firefox or http_user_agent:Chrome

Hata ayıklama

request_uri alan değeri /request/path-2 içeren günlükleri arayın.

request_uri:/request/path-2

Hata ayıklama

request_uri alan değeri /request ile başlayan ancak /file-0 içermeyen günlükleri arayın.

request_uri:/request* not request_uri:/file-0

Hata ayıklama

redo_index/1 ifadesini içeren günlükler için tam eşleşme bulun.

  • #"redo_index/1"

  • | select from log where key like 'redo_index/1'

Not

İfade araması veya LIKE yan tümcesi bir ifade için tam eşleşme sağlayabilir. Standart tam arama ise redo_index ve 1 gibi bireysel terimleri eşleştirir.

Yok

Anahtar sözcük kaçış

  • Arama ifadelerinde

    Bir söz dizimi anahtar sözcüğünü değişmez olarak ele almak için "" (çift tırnak) içine alın. Alan sorgusunda "" içindeki tüm kelimeler tek bir ifade olarak değerlendirilir.

    • Bir alan adı veya değeri özel karakterler (boşluklar, Çince karakterler, : veya - gibi) veya söz dizimi anahtar sözcükleri (and veya or gibi) içeriyorsa bunu "" içine almanız gerekir. Örneğin, "and" araması işleç olarak değerlendirilmeyen "and" kelimesini içeren günlükleri bulur.

    • SLS aşağıdaki kelimeleri işleç olarak kullanmak üzere ayırır. Bunları arama anahtar sözcüğü olarak kullanmak için "" içine almanız gerekir: sort, asc, desc, group by, avg, sum, min, max ve limit.

    • Günlükler veri dönüştürme veya Logtail eklentisi tarafından işlendiğinde etiket anahtarı standart bir anahtara dönüştürülür. Bu anahtarı sorgulamak için alan adını "" içine almanız gerekir. Örnek: "__tag__:__client_ip__":192.0.2.1. __tag__:__client_ip__ alanı, günlük toplama ana bilgisayarının IP adresini depolayan bir ayrılmış alandır.

    Amaç

    Arama ifadesi

    request method alanının değeri PUT olan günlükleri arayın. request method alan adı boşluk içerir ve çift tırnak ("") içine alınmalıdır.

    "request method":PUT

    system error description alan değeri DB içeren günlükleri arayın. system error description alan adı boşluk içerir.

    "system error description":DB*

    Bu sorgu, region alan değeri cn içeren günlükleri bulur. Burada cn bir dizedir. Günlük içeriği region:cn,en ise ve sınırlayıcı virgül (,) ise günlük içeriği region, cn ve en olarak bölünür. Ardından sağdaki ifadeyi kullanarak bu günlüğü bulabilirsiniz.

    region:"cn*"

    remote_user alan değeri boş olan günlükleri arayın.

    remote_user:""

    Authorization alan değeri Bearer 12345 olan günlükleri arayın. Alan değeri Bearer 12345 boşluk içerir.

    "Authorization": "Bearer 12345"

    errorContent alan değeri The body is not valid json string içeren günlükleri analiz edin. Alan değeri boşluk içerir.

    * | select * where errorContent like '%The body is not valid json string%'

    192.0.2.1 ana bilgisayarından toplanan günlükleri arayın.

    "__tag__:__client_ip__":192.0.2.1
  • Analiz ifadelerinde

    • Alan adı veya tablo adı gibi özel isimler özel karakterler (boşluklar, Çince karakterler, : veya - gibi) veya söz dizimi anahtar sözcükleri (and veya or gibi) içeriyorsa bunları çift tırnak ("") içine almanız gerekir.

    • Bir dizeyi temsil eden karakterler tek tırnak ('') içine alınmalıdır. Tırnak içine alınmamış veya çift tırnak ("") içine alınmış karakterler bir alan adı veya sütun adını temsil eder. Örneğin, 'status' "status" dizesini temsil ederken status veya "status"status günlük alanını temsil eder.

    Amaç

    Analiz ifadesi

    192.168.XX.XX içeren günlükleri arayın.

    * | select * from log where key like '192.168.%.%'

    En yüksek 10 istek süresini hesaplayın.

    top 10 sütun adı boşluk içerir ve çift tırnak ("") içine alınmalıdır.

    * | SELECT max(request_time,10) AS "top 10"

    Her istek durumu için günlük sayısını sayın.

    content alanı JSON olarak dizine eklenir. Dizine eklenmiş bir JSON alanını nasıl sorgulayıp analiz edersiniz.

    * | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"

Json türü

Örnek günlük

{
  "timestamp": "2025-03-21T14:35:18Z",
  "level": "ERROR",
  "service": {
    "name": "payment-processor",
    "version": "v2.8.1",
    "environment": "production"
  },
  "error": {
    "code": 5031,
    "message": "Failed to connect to third-party API",
    "details": {
      "endpoint": "https://api.paymentgateway.com/v3/verify",
      "attempts": 3,
      "last_response": {
        "status_code": 504,
        "headers": {
          "Content-Type": "application/json",
          "X-RateLimit-Limit": "100"
        }
      }
    }
  },
  "user": {
    "id": "usr-9a2b3c4d",
    "session": {
      "id": "sess-zxy987",
      "device": {
        "type": "mobile",
        "os": "Android 14",
        "network": "4G"
      }
    }
  },
  "trace": {
    "correlation_id": "corr-6f5e4d3c",
    "span_id": "span-00a1b2"
  }
}

Dizin yapılandırması

Günlükleri sorgulamadan önce Dizin oluşturun. Dizin yapılandırmanızı denetlemek için aşağıdaki adımları izleyin.

  1. Logstore'un query and analysis sayfasında Index Attributes > Attributes seçeneğini belirleyin.

  2. Açılan panelde alan dizinlerinin yapılandırılıp yapılandırılmadığını kontrol edin.

Örnekler

Amaç

Arama ifadesi

İstek hatalarını kaydeden günlükleri arayın.

level:error

Kimliği usr-9a2b3c4d olan kullanıcıdan gelen tüm istekleri arayın.

user.id:usr-9a2b3c4d

usr-9a2b3c4d kullanıcısından gelen ve hata durum kodu 504 olan günlükleri arayın.

user.id:usr-9a2b3c4d and error.details.last_response.status_code :504

SSS

Sorgu herhangi bir günlük döndürmüyor

Bir sorgunun günlük döndürmemesi durumunda ne yapılmalı?

JSON günlük sorunları

JSON günlüklerini sorgulama ve analiz etme hakkında SSS

Sorgu hatalarını giderme

İlgili konular