Simple Log Service permite filtrar logs com instruções de pesquisa. Use os resultados individualmente ou como entrada para instruções analíticas.
Pré-requisitos
Para consultar logs, você deve criar um índice.
Sintaxe básica
-
SLS Query Skill para consulta e análise inteligente de logs: Consulte e analise dados de log do SLS com linguagem natural em um agente de IA local.
As instruções de consulta e analítica são separadas por | no formato instrução de consulta|instrução analítica. Exemplo:
* | SELECT status, count(*) AS PV GROUP BY status
|
Tipo de instrução |
Descrição |
|
instrução de pesquisa |
Especifica condições de pesquisa: palavras-chave, valores numéricos, intervalos numéricos, espaços ou um asterisco (*). Se você especificar um espaço ou um asterisco (*), nenhum filtro será aplicado. Importante
Especifique no máximo 30 condições em uma instrução de pesquisa. |
|
instrução analítica |
Importante
As instruções analíticas devem seguir uma instrução de pesquisa. Nenhuma cláusula FROM ou WHERE é necessária — o SLS analisa todos os dados no Logstore atual por padrão. Elas não diferenciam maiúsculas de minúsculas, não suportam offset e não exigem ponto e vírgula final (;). Realiza cálculos e análises estatísticas nos resultados da pesquisa ou em todos os dados. Funções e sintaxe suportadas: |
Como escrever consultas de pesquisa
Para escrever uma instrução de consulta:
Etapa 1: Escolher o tipo de pesquisa
Os resultados dependem da configuração de índice. Se existirem índices de texto completo e de campo, os índices de campo terão precedência.
Dependendo do tipo de índice, Simple Log Service oferece suporte a dois tipos de pesquisa para um Logstore: pesquisa de texto completo e pesquisa específica de campo.
-
Se você criar apenas um índice de texto completo, deverá usar a pesquisa de texto completo.
-
Se você criar índices de campo, siga estas regras:
-
Para campos do tipo double or long, você deve usar a sintaxe de pesquisa específica de campo.
-
Para campos do tipo text: Se você souber qual campo indexado contém a palavra-chave, use uma sintaxe de pesquisa específica de campo. Se não tiver certeza de qual campo contém a palavra-chave, use uma sintaxe de pesquisa de texto completo.
-
Se você não criar um índice de texto completo, a sintaxe de pesquisa de texto completo consultará apenas campos de texto indexados.
-
Se você criar um índice de texto completo, a sintaxe de pesquisa de texto completo pesquisará em todos os campos de texto indexados.
-
-
Pesquisa de texto completo
Uma pesquisa de texto completo não tem como alvo um campo específico. Ela suporta curingas (* and ?) e operadores lógicos (and, or, not).
Sintaxe de pesquisa
keywords1 [ and | or | not ] keywords2 ...
Exemplos
-
Exemplo 1
Pesquisar logs que contêm a palavra-chave
GET. Sintaxe de pesquisa:GET. -
Exemplo 2
Pesquisar logs que contêm a palavra-chave
GETorPOST. Sintaxe de pesquisa:GET or POST. -
Exemplo 3
Pesquisar logs com palavras-chave que começam com
Jo, such as Joe and Jon. Sintaxe de pesquisa:Jo*.
Pesquisa específica de campo
Uma pesquisa específica de campo tem como alvo um campo indexado específico e suporta comparações numéricas e correspondência de expressões regulares.
-
indexname1é o nome do campo a ser consultado. Se um nome de campo ou outro identificador contiver caracteres especiais (como espaços ou caracteres chineses) ou palavras-chave de pesquisa (comoandoror), você deverá colocá-lo entre aspas duplas (""). Como usar aspas em instruções de pesquisa e analítica. -
Para campos indexados como
longordouble, use operadores de comparação como>,>=,<,<=,=, andin.
Search syntax
indexname1 [ : | > | >= | < | <= | = | in ] keyword1 [ [ and | or | not ] indexname2 ... ]
Exemplos
-
Exemplo 1
Search for logs where
request_methodisGET. Sintaxe de pesquisa:request_method: GET. -
Exemplo 2
Pesquisar logs em que
request_time_msecé maior que50(o campo deve ser indexado como double). Sintaxe de pesquisa:request_time_msec>50. -
Exemplo 3
Search for logs where
request_methodisGETandrequest_time_msecis greater than50. Sintaxe de pesquisa:request_method: GET and request_time_msec>50.
Etapa 2: Tipos de dados de campo
Cada tipo de dados de campo suporta operadores diferentes.
Tipos de dados de campo
|
Tipo |
Descrição |
Operadores suportados |
|
Campo de string. Com a indexação de texto completo ativada, todos os campos assumem o padrão text except |
|
|
|
Consultas de intervalo numérico exigem que o tipo de campo seja long or double.
|
|
|
|
Defina o tipo de dados dos campos JSON como long, double, or text com base nos seus valores e ative Enable Analytics. |
Use operadores com base no tipo de dados dos campos dentro do objeto JSON. |
Operadores
-
O operador
indeve estar em minúsculas. Outros operadores não diferenciam maiúsculas de minúsculas. -
O SLS reserva as seguintes palavras para uso como operadores. Para usá-las como palavras-chave de pesquisa, você deve colocá-las entre aspas duplas (
""):sort,asc,desc,group by,avg,sum,min,max, andlimit. -
Os operadores estão listados em ordem decrescente de precedência:
-
Dois-pontos (:)
-
Aspas duplas ("")
-
Parênteses ()
-
and, not
-
or
-
|
Operador |
Descrição |
|
|
Pesquisa específica de campo no formato Chave:Valor. Exemplo: Se um nome ou valor de campo contiver caracteres especiais como espaços, dois-pontos (:) ou hífens (-), você deverá colocar o nome ou valor entre aspas duplas (""). Exemplo: |
|
|
O operador Se você especificar várias palavras-chave sem um operador lógico, o operador |
|
|
O operador |
|
|
O operador |
|
|
Agrupa condições de pesquisa para aumentar sua prioridade. Exemplo: |
|
|
Coloque uma palavra-chave de sintaxe entre
|
|
|
Caractere de escape. Escapa uma aspa dupla ( |
|
|
Curinga que corresponde a zero ou mais caracteres. Exemplo: Nota
O SLS encontra até 100 termos correspondentes nos seus logs e retorna todos os logs que contêm esses termos e atendem às condições de pesquisa. |
|
|
Curinga que corresponde exatamente a um caractere. Exemplo: |
|
|
Valor de campo maior que um número. Exemplo: |
|
|
Valor de campo maior ou igual a um número. Exemplo: |
|
|
Valor de campo menor que um número. Exemplo: |
|
|
Valor de campo menor ou igual a um número. Exemplo: |
|
|
Pesquisa logs em que o valor de um campo é igual a um número. Para campos do tipo double ou long, os operadores |
|
|
Pesquisa logs em que o valor de um campo está dentro de um intervalo numérico. Colchetes [] indicam um intervalo fechado (inclusivo) e parênteses () indicam um intervalo aberto (exclusivo). Use um espaço para separar os dois números no intervalo. Exemplos: Importante
O operador |
|
|
Pesquisa logs de uma origem específica. Caracteres curinga são suportados. Exemplo: Importante
No Log Service, __source__ é um campo reservado que pode ser abreviado como source. Se você definir um campo personalizado chamado source, ele entrará em conflito com o campo reservado source. Nesse caso, você deve usar capitalização diferente, como Source or SOURCE, para consultar seu campo personalizado. |
|
|
Pesquisa logs por metadados. Exemplo: |
|
|
Pesquisa logs por tópico. Exemplo: |
Etapa 3: Selecionar um modo de correspondência
O SLS suporta pesquisa exata e pesquisa aproximada.
|
Tipo de pesquisa |
Descrição |
Exemplo |
|
Pesquisa exata |
Encontra logs que correspondem a palavras inteiras. O SLS usa segmentação de palavras, portanto, uma consulta com várias palavras pode não retornar uma correspondência exata. Uma consulta por |
|
|
Pesquisa aproximada |
Adicione um curinga (* ou ?) ao meio ou ao final de um termo (limite de 64 caracteres). O SLS corresponde a até 100 termos e retorna todos os logs que os contêm. Termos mais específicos geram melhores resultados. Importante
A pesquisa aproximada é uma consulta baseada em amostragem:
|
|
Exemplos de instruções de pesquisa
Os resultados da pesquisa dependem do conteúdo do log e da configuração de índice. Os exemplos abaixo usam o seguinte log de amostra e configuração de índice.
Tipos text, double e long
Log de amostra
Os exemplos a seguir usam um log de acesso NGINX.

Configuração de índice
Crie índices antes de consultar logs. Para verificar sua configuração de índice:
-
Na página de consulta e análise do logstore, selecione Index Attributes > Attributes.

-
No painel exibido, verifique se os índices de campo estão configurados.

Pesquisa comum
|
Objetivo |
Instrução de pesquisa |
Depuração |
|
Pesquisar solicitações GET bem-sucedidas (código de status 200–299). |
|
|
|
Pesquisar solicitações GET de fora da região China (Hangzhou). |
|
Nenhum |
|
Pesquisar solicitações GET ou POST. |
|
|
|
Pesquisar solicitações que não sejam GET. |
|
|
|
Pesquisar solicitações GET ou POST bem-sucedidas. |
|
|
|
Pesquisar solicitações GET ou POST com falha. |
|
|
|
Pesquisar solicitações GET bem-sucedidas (código de status 200–299) com tempo de solicitação inferior a 60 segundos. |
|
|
|
Pesquisar logs com tempo de solicitação de 60 segundos. |
|
|
|
||
|
Pesquisar logs em que o tempo de solicitação é maior ou igual a 60 segundos e menor que 200 segundos. |
|
|
|
||
|
Pesquisar logs em que o campo request_time existe. |
|
|
|
Pesquisar logs em que o campo request_time está vazio ou contém um número inválido. |
|
|
|
Pesquisar logs que contêm o campo request_time com um valor numérico. |
|
|
|
Pesquisar logs que contêm and. |
Nota
A palavra and é tratada como uma string literal, não como operador. |
|
|
Pesquisar logs em que o valor do campo request method é PUT. |
Importante
O nome do campo request method contém um espaço. Você deve colocá-lo entre aspas duplas (""). |
Nenhum |
|
Pesquisar logs cujo tópico é HTTPS ou HTTP. |
|
Nenhum |
|
Pesquisar logs do host 192.0.2.1. |
O campo Importante
Se um log for processado usando transformação de dados ou um plug-in do Logtail, a chave na tag será convertida em uma chave padrão. Para consultar o log, você deve colocar o nome do campo entre aspas duplas (""). Exemplo: |
Nenhum |
|
Pesquisar logs que contêm |
Use a cláusula SQL LIKE para consultas aproximadas precisas. |
Nenhum |
|
Pesquisar logs em que o valor do campo remote_user não está vazio. |
|
|
|
Pesquisar logs em que o valor do campo remote_user está vazio. |
|
|
|
Pesquisar logs em que o valor do campo remote_user não é null. |
|
|
|
Pesquisar logs que não contêm o campo remote_user. |
|
|
|
Pesquisar logs que contêm o campo remote_user. |
|
|
|
Pesquisar logs em que o valor do campo city não é Shanghai. |
Nota
Para consultar strings em chinês, ative include Chinese ao configurar índices. |
Nenhum |
Pesquisa aproximada
|
Objetivo |
Instrução de pesquisa |
Depuração |
|
Pesquisar logs que contêm palavras que começam com cn. |
|
|
|
Search for logs where the region começa com cn. |
|
Nenhum |
|
Pesquisar logs em que o valor do campo region contém cn*. |
Nota
Nesta instrução de pesquisa,
|
Nenhum |
|
Pesquisar logs que contêm uma palavra que começa com "mozi", termina com "la" e tem um único caractere entre elas. |
|
|
|
Pesquisar logs que contêm uma palavra que começa com "mo", termina com "la" e tem zero ou mais caracteres entre elas. |
|
|
|
Pesquisar logs que contêm palavras que começam com "moz" e palavras que começam com "sa". |
|
|
|
Pesquisar logs em que o valor do campo region termina com "hai". |
Instruções de pesquisa não podem encontrar esses logs. Use a cláusula SQL LIKE.
|
Nenhum |
|
Search for logs where the message começa com |
Use a cláusula like na análise SQL.
Alternativamente, use a instrução where em Structured Process Language (SPL) para filtrar logs.
|
Nenhum |
Pesquisa por delimitador
O SLS divide o conteúdo do log em palavras usando os delimitadores configurados. Os padrões são , '";=()[]{}?@&<>/:\n\t\r. Se você deixar o Delimiter vazio, o valor do campo será tratado como um único termo e só poderá ser encontrado por pesquisa exata ou aproximada em toda a string. Criar índices.
Por exemplo, o valor do campo http_user_agent é Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/192.0.2.0 Safari/537.2.
-
Se você definir o delimitador como um valor vazio, o valor do campo será tratado como um único token. Como resultado, você não poderá encontrar o log usando a instrução de consulta
http_user_agent:Chrome. -
Se você definir Delimitador como
, '";=()[]{}?@&<>/:\n\t\r, o valor do campo será dividido nos termosMozilla,5.0,Windows,NT,6.1,AppleWebKit,537.2,KHTML,like,Gecko,Chrome,192.0.2.0,Safari, and537.2. Você pode encontrar o log usando instruções de pesquisa comohttp_user_agent:Chrome.
If a search keyword contains a delimiter, you must use a phrase search ou uma cláusula LIKE. For example:
-
Pesquisa de frase:
#"redo_index/1". -
Cláusula LIKE:
* | select * from log where key like 'redo_index/1'.
|
Objetivo |
Instrução de pesquisa |
Depuração |
|
Pesquisar logs em que o valor do campo http_user_agent contém Chrome. |
|
|
|
Pesquisar logs em que o valor do campo http_user_agent contém Linux e Chrome. |
|
|
|
||
|
Pesquisar logs em que o valor do campo http_user_agent contém Firefox ou Chrome. |
|
|
|
Pesquisar logs em que o valor do campo request_uri contém /request/path-2. |
|
|
|
Search for logs where the request_uri começa com /request but does not contain /file-0. |
|
|
|
Encontrar uma correspondência exata para logs que contêm a frase |
Nota
Uma pesquisa de frase ou uma cláusula LIKE pode fornecer uma correspondência exata para uma frase. Uma pesquisa exata padrão corresponde a termos individuais como |
Nenhum |
Escape de palavras-chave
-
Em instruções de pesquisa
Coloque uma palavra-chave de sintaxe entre
""(aspas duplas) para tratá-la como um literal. Em uma consulta de campo, todas as palavras entre""são tratadas como uma única frase.-
Se um nome ou valor de campo contiver caracteres especiais (como espaços, caracteres chineses,
:, or-) ou palavras-chave de sintaxe (comoandoror), você deverá colocá-lo entre"". Por exemplo, uma pesquisa por"and"encontra logs que contêm a palavra "and", que não é tratada como operador. -
O SLS reserva as seguintes palavras para uso como operadores. Para usá-las como palavras-chave de pesquisa, coloque-as entre
"":sort,asc,desc,group by,avg,sum,min,max, andlimit. -
Quando os logs são processados por transformação de dados ou um plug-in do Logtail, a chave da tag é convertida em uma chave padrão. Para consultar essa chave, você deve colocar o nome do campo entre
"". Example:"__tag__:__client_ip__":192.0.2.1. O campo__tag__:__client_ip__é um campo reservado que armazena o IP do host de coleta de logs.
Objetivo
Instrução de pesquisa
Pesquisar logs em que o valor do campo
request methodéPUT. O nome do camporequest methodcontém um espaço e deve ser colocado entre aspas duplas ("")."request method":PUTPesquisar logs em que o valor do campo
system error descriptioncontémDB. O nome do camposystem error descriptioncontém espaços."system error description":DB*Esta consulta encontra logs em que o valor do campo
regioncontémcn*. Aqui,cn*é uma string. Se o conteúdo do log forregion:cn*,ene o delimitador for uma vírgula (,), o conteúdo do log será dividido emregion,cn*een. Você pode usar a instrução à direita para encontrar este log.region:"cn*"Pesquisar logs em que o valor do campo
remote_userestá vazio.remote_user:""Pesquisar logs em que o valor do campo
AuthorizationéBearer 12345. O valor do campoBearer 12345contém um espaço."Authorization": "Bearer 12345"Analisar logs em que o valor do campo
errorContentcontémThe body is not valid json string. O valor do campo contém espaços.* | select * where errorContent like '%The body is not valid json string%'Pesquisar logs coletados do host
192.0.2.1."__tag__:__client_ip__":192.0.2.1 -
-
Em instruções analíticas
-
Se um substantivo próprio, como um nome de campo ou tabela, contiver caracteres especiais (como espaços, caracteres chineses,
:, or-) ou palavras-chave de sintaxe (comoandoror), você deverá colocá-lo entre aspas duplas (""). -
Caracteres que representam uma string devem ser colocados entre aspas simples (
''). Caracteres que não estão entre aspas ou estão entre aspas duplas ("") representam um nome de campo ou coluna. Por exemplo,'status'representa a string "status", enquantostatusor"status"represents thestatuslog field.
Objetivo
Instrução analítica
Pesquisar logs que contêm
192.168.XX.XX.* | select * from log where key like '192.168.%.%'Calcular os 10 principais tempos de solicitação.
O nome da coluna
top 10contém um espaço e deve ser colocado entre aspas duplas ("").* | SELECT max(request_time,10) AS "top 10"Contar o número de logs para cada status de solicitação.
O campo
contenté indexado como JSON. Como consultar e analisar um campo JSON indexado.* | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status" -
Tipo JSON
Sample log
{
"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"
}
}
Index configuration
Crie índices antes de consultar logs. Para verificar sua configuração de índice:
-
Na página de consulta e análise do logstore, selecione Index Attributes > Attributes.

-
No painel exibido, verifique se os índices de campo estão configurados.

Examples
|
Objetivo |
Instrução de pesquisa |
|
Pesquisar logs que registram erros de solicitação. |
|
|
Pesquisar todas as solicitações do usuário cujo ID é |
|
|
Pesquisar logs do usuário |
|
Perguntas frequentes
A consulta não retorna logs
O que fazer quando uma consulta não retorna logs
Problemas com logs JSON
Perguntas frequentes sobre consulta e análise de logs JSON
Solucionar erros de consulta
Tópicos relacionados
-
Exemplos de consulta de log
-
Como classificar resultados de consulta de log precisamente por tempo
-
Consultar e analisar logs JSON aborda exemplos para campos JSON com valores de objeto ou matriz.
-