Todos os produtos
Search
Central de documentação

Simple Log Service:Consultar e analisar logs JSON

Última atualização: Jul 03, 2026

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

  1. Faça login no console do Simple Log Service.

  2. Na seção Projects, clique em o projeto desejado.

    image

  3. Na aba Log Storage > Logstores, clique em o logstore desejado.

    image

  4. No canto superior direito da página Query and Analysis do Logstore, escolha Index Attributes > Attributes. Se não existir nenhum índice, clique em Enable Indexing. Criar um índice.

    Nota

    Para 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.

  5. 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) e request.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_for e upstream_addr não possuem nós folha. Crie índices para esses campos diretamente sob o campo content.

    • Os campos request e time possuem nós folha, e esses nós não são arrays JSON.

      • Não é possível criar índices para os campos pai request e time, nem consultá-los ou analisá-los.

      • Crie índices para os nós folha sob request e time especificando o caminho completo do pai até a folha. O formato é CHAVE1.CHAVE2.CHAVE3, como time.request_time e time.upstream_response_time. Após criar os índices, você pode consultar time.request_time e time.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 analisar body_bytes_sent ou os nós folha de body_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 200 e null, 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_time igual a 45 para GET e avg_time igual a 11 para PUT.

Tópicos relacionados