Consulte e analise logs de sites no formato JSON criando índices e executando instruções SQL.
Pré-requisitos
Logs de texto foram coletados no formato JSON. Coletar logs de texto no formato JSON.
Etapa 1: Criar um índice
Faça login no console do Simple Log Service.
-
Na seção Projects, clique em o projeto desejado.

-
Na aba , clique em o logstore desejado.

-
No canto superior direito da página Query and Analysis do Logstore, escolha . Se não existir nenhum índice, clique em Enable Indexing. Criar um índice.
NotaPara consultar todos os campos, crie um índice de texto completo. Para consultar campos específicos e reduzir o tráfego de indexação, use um índice de campo. A análise de campos com instruções SELECT exige um índice de campo.
-
Configure um índice de campo. O exemplo de log JSON a seguir mostra a configuração dos campos.
{ "@timestamp": "2023-01-01T00:00:00+08:00", "remote_addr": "192.168.0.1", "remote_user": "-", "request": { "request_length": 123, "request_method": "GET", "request_uri": "/index.html" }, "status": 200, "http_referer": "http://example.com", "http_user_agent": "Mozilla/5.0", "server_protocal": "HTTP/1.1", "http_x_forward_for": "192.168.0.1", "upstream_addr": "10.0.0.1:8080", "time": { "request_time": 0.006, "upstream_response_time": 0.004 }, "body_bytes_sent": [123, 456] }Defina o tipo de dados do campo content como json. Os nós folha sob request incluem
request.request_length(long),request.request_method(text) erequest.request_uri(text). Ative Enable Statistics para todos os campos.Os campos
__topic__,__source__e__tag__são campos reservados do sistema.Os campos
@timestamp,remote_addr,remote_user,http_referer,http_user_agent,status,server_protocal,http_x_forward_foreupstream_addrnão possuem nós folha. Crie índices para esses campos diretamente sob o campocontent.-
Os campos
requestetimepossuem nós folha, e esses nós não são arrays JSON.Não é possível criar índices para os campos pai
requestetime, nem consultá-los ou analisá-los.Crie índices para os nós folha sob
requestetimeespecificando o caminho completo do pai até a folha. O formato é CHAVE1.CHAVE2.CHAVE3, comotime.request_timeetime.upstream_response_time. Após criar os índices, você pode consultartime.request_timeetime.upstream_response_time.
O campo
body_bytes_senté um array JSON. Não é possível criar índices para esse campo ou seus nós folha, nem consultar ou analisarbody_bytes_sentou os nós folha debody_bytes_sent.
Etapa 2: Reindexar
Os índices se aplicam apenas aos dados recém-coletados. Para consultar dados históricos, utilize o recurso Reindexar.
Etapa 3: Consultar e analisar logs
Na página Query and Analysis, insira uma instrução e selecione um intervalo de tempo. Em instruções de análise (SELECT), coloque nomes de campos entre aspas duplas (") e strings entre aspas simples ('). Guia de início rápido para consulta e análise de logs. Perguntas frequentes sobre consulta e análise de logs JSON.
-
Localize logs com status de requisição 200.
content.status:200 -
Encontre logs com comprimento de requisição superior a 70.
content.request.request_length > 70 -
Busque logs referentes a requisições GET.
content.request.request_method:GET -
Conte os logs agrupados por status de requisição.
* | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"O resultado lista cada código de status, como
200enull, juntamente com suas visualizações de página (PV). -
Agrupe as requisições por duração, em ordem crescente.
* | SELECT "content.time.request_time", COUNT(*) AS count GROUP BY "content.time.request_time" ORDER BY "content.time.request_time" -
Calcule a duração média das requisições por método.
* | SELECT avg("content.time.request_time") AS avg_time,"content.request.request_method" GROUP BY "content.request.request_method"O resultado exibe
avg_timeigual a 45 para GET eavg_timeigual a 11 para PUT.