Crie índices e execute instruções de pesquisa e análise em logs de acesso a sites no Simple Log Service.
Pré-requisitos
Os logs de acesso ao site devem ser coletados por meio de uma configuração do Logtail. Coletar logs de texto de servidores.
Etapa 1: Criar índices
É necessário criar índices antes de consultar e analisar logs. O Simple Log Service oferece suporte a índices de texto completo e índices de campo. Este tópico utiliza índices de campo para logs de acesso a sites. Criar índices.
Faça login no console do Simple Log Service.
-
Na seção Projects, clique em projeto desejado.

-
Na guia , clique em logstore desejado.

No canto superior direito, escolha . Se a indexação não estiver ativada, clique em Enable.
-
Configure os índices de campo e clique em OK. Adicione os índices manualmente ou clique em Automatic Index Generation para gerá-los automaticamente com base no primeiro log da pré-visualização de coleta de dados.
ImportanteOs índices se aplicam apenas aos dados de log gravados após a configuração. Para consultar dados históricos, utilize o recurso de reindexação. Reindexar logs de um Logstore.
Para usar instruções analíticas (SELECT), ative Enable Analytics nos campos alvo durante a configuração dos índices.
O Simple Log Service configura automaticamente índices para alguns campos reservados. Campos reservados.
Na caixa de diálogo Index Attributes, clique em Automatic Index Generation para criar os índices de campo. Os campos gerados incluem
body_bytes_sent(long),client_ip(text),host(text),http_host(text),http_user_agent(text),request_length(long) erequest_method(text). Os campos de texto usam os delimitadores padrão,"';=()[]{}?@&<>/:\n\t\r, com Case-Sensitive e Include Chinese desativados e Enable Analytics ativado. Clique em OK para confirmar.
Etapa 2: Consultar e analisar logs
Execute instruções de pesquisa e análise no formato Search statement|Analytic statement. Uma instrução de pesquisa pode ser executada independentemente, mas uma instrução analítica deve ser combinada com uma instrução de pesquisa. Consultar e analisar logs.
Por padrão, uma consulta retorna apenas 100 linhas. Use a cláusula LIMIT para alterar o número de linhas retornadas.
Instrução de pesquisa
-
Consulte entradas de log que contenham Chrome:
Chrome -
Busque entradas de log com duração de solicitação superior a 60 segundos:
request_time > 60 -
Filtre entradas de log com duração de solicitação entre 60 e 120 segundos:
request_time in [60 120] -
Liste solicitações GET bem-sucedidas (código de status 200–299):
request_method : GET and status in [200 299] -
Encontre entradas de log onde
request_uriseja/request/path-2:request_uri:/request/path-2/file-2
Instrução de análise
-
Calcule as visualizações de página (PVs).
Utilize a função count para calcular o total de PVs.
* | SELECT count(*) AS PVO resultado apresenta um PV de
9685. -
Obtenha os PVs por minuto.
Use a função date_trunc para truncar o tempo por minuto, a função count para contar os PVs por minuto e GROUP BY e ORDER BY para agrupar e ordenar por tempo.
* | SELECT count(*) as PV, date_trunc('minute', __time__) as time GROUP BY time ORDER BY timeOs resultados são exibidos como um gráfico de linhas mostrando a tendência de PV por minuto.
-
Determine a contagem de solicitações por método em intervalos de 5 minutos.
Aplique
__time__ - __time__ %300para truncar o tempo em intervalos de 5 minutos, a função count para contar as solicitações e GROUP BY e ORDER BY para agrupar e ordenar por tempo.* | SELECT request_method, count(*) as count, __time__ - __time__ %300 as time GROUP BY time, request_method ORDER BY timeExemplo de resultado: 778 solicitações GET, 242 PUT, 231 POST, 101 DELETE e 4 HEAD, todas com timestamp 1610673300.
-
Compare os PVs desta semana com os da semana anterior.
Empregue a função count para o total de PVs e a função ts_compare para comparar os valores semanais. Nesta instrução,
website_logé o nome do Logstore.* | SELECT diff[1] as this_week, diff[2] as last_week, time FROM (SELECT ts_compare(pv, 604800) as diff, time FROM (SELECT COUNT(*) as pv, date_trunc('week', __time__) as time FROM website_log GROUP BY time ORDER BY time) GROUP BY time)
-
Analise a distribuição de endereços IP de clientes por província.
Recorra à função ip_to_province para mapear endereços IP em províncias e à função count para contar as ocorrências. Utilize GROUP BY e ORDER BY para agrupar e ordenar os resultados.
* | SELECT count(*) as count, ip_to_province(client_ip) as address GROUP BY address ORDER BY count DESCUm exemplo dos resultados da consulta: 451 solicitações da província de Guangdong, 447 de Jiangsu, 433 de Pequim e 425 da província de Shandong.
-
Identifique as 10 URIs de solicitação mais acessadas.
Combine GROUP BY para agrupar resultados por URI de solicitação, a função count para contar acessos por URI e ORDER BY para classificar pela contagem.
* | SELECT count(*) as PV, request_uri as PATH GROUP BY PATH ORDER BY PV DESC LIMIT 10Após executar a instrução de consulta, os resultados de exemplo mostram os 10 principais caminhos de solicitação (PATH) e suas respectivas contagens de visitas (PV).
-
Pesquise entradas de log onde
request_uritermina com%file-7.ImportanteEm instruções de pesquisa, os caracteres curinga asterisco (*) e ponto de interrogação (?) suportam pesquisas difusas, mas devem aparecer no meio ou no final de uma palavra. Para corresponder a campos que terminam com uma string específica, use o operador LIKE em uma instrução analítica.
* | select * from website_log where request_uri like '%file-7'website_logé o nome do Logstore. -
Levante estatísticas de acesso por URI de solicitação.
Aplique a função regexp_extract para extrair a parte do arquivo de
request_urie a função count para obter as contagens de acesso por URI.* | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) file, count(*) as count group by filePor exemplo, um resultado com valor file igual a
file-5e count de17127significa que o arquivo foi acessado 17.127 vezes. -
Localize entradas de log onde
request_uricontém%abc%.* | SELECT * where request_uri like '%/%abc/%%' escape '/'A consulta retorna a entrada de log correspondente. O valor do campo
request_urié/request/path-1/file-92 %abc%qereqwr, no qual a parte%abc%representa a correspondência encontrada.
Exemplo de logs de acesso a sites
__tag__:__client_ip__:192.0.2.0
__tag__:__receive_time__:1609985755
__source__:198.51.100.0
__topic__:website_access_log
body_bytes_sent:4512
client_ip:198.51.100.10
host:example.com
http_host:example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:198.51.100.1
instance_id:i-02
instance_name:instance-01
network_type:vlan
owner_id:%abc%-01
referer:example.com
region:cn-shanghai
remote_addr:203.0.113.0
remote_user:neb
request_length:4103
request_method:POST
request_time:69
request_uri:/request/path-1/file-0
scheme:https
server_protocol:HTTP/2.0
slbid:slb-02
status:200
time_local:07/Jan/2021:02:15:53
upstream_addr:203.0.113.10
upstream_response_time:43
upstream_status:200
user_agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33
vip_addr:192.0.2.2
vpc_id:3db327b1****82df19818a72