Todos los productos
Search
Centro de documentos

Simple Log Service:Consulta y análisis de registros JSON

Última actualización: Sep 02, 2026

Consulte y analice registros de sitios web en formato JSON mediante la creación de índices y la ejecución de sentencias SQL.

Requisitos previos

Los registros de texto se han recopilado en formato JSON. Collect text logs in JSON format.

Paso 1: Crear un índice

  1. Inicie sesión en la consola de Simple Log Service.

  2. En la sección Projects, haga clic en el proyecto deseado.

    image

  3. En la pestaña Log Storage > Logstores, haga clic en el logstore que desee.

    image

  4. En la esquina superior derecha de la página Query and Analysis del logstore, seleccione Index Attributes > Attributes. Si no existe ningún índice, haga clic en Enable Indexing. Create an index.

    Nota

    Para consultar todos los campos, cree un índice de texto completo. Para consultar campos específicos y reducir el tráfico de indexación, utilice un índice de campo. El índice de campo es obligatorio para analizar campos con sentencias SELECT.

  5. Configure un índice de campo. El siguiente ejemplo de registro JSON muestra la configuración de 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]
    }

    Establezca el tipo de datos del campo content como json. Los nodos hoja bajo request incluyen request.request_length (long), request.request_method (text) y request.request_uri (text). Habilite Enable Statistics para todos los campos.

    • Los campos __topic__, __source__ y __tag__ son reserved fields a nivel de sistema.

    • Los campos @timestamp, remote_addr, remote_user, http_referer, http_user_agent, status, server_protocal, http_x_forward_for y upstream_addr no tienen nodos hoja. Cree índices para estos campos directamente bajo el campo content.

    • Los campos request y time tienen nodos hoja, y dichos nodos no son matrices JSON.

      • No es posible crear índices para los campos padre request y time, ni consultarlos o analizarlos.

      • Cree índices para los nodos hoja bajo request y time al especificar la ruta completa desde el nodo padre hasta el nodo hoja. El formato es KEY1.KEY2.KEY3, por ejemplo, time.request_time y time.upstream_response_time. Después de crear los índices, podrá consultar time.request_time y time.upstream_response_time.

    • El campo body_bytes_sent es una matriz JSON. No es posible crear índices para este campo ni para sus nodos hoja, ni consultar o analizar body_bytes_sent o los nodos hoja de body_bytes_sent.

Paso 2: Reindexar

Los índices solo se aplican a los datos recién recopilados. Para consultar datos históricos, utilice la función Reindex.

Paso 3: Consultar y analizar registros

En la página Query and Analysis, introduzca una sentencia y seleccione un intervalo de tiempo. En las sentencias de análisis (SELECT), escriba los nombres de campo entre comillas dobles (") y las cadenas de texto entre comillas simples ('). Quick start for log query and analysis. FAQ about querying and analyzing JSON logs.

  • Busque registros con estado de solicitud 200.

    content.status:200
  • Busque registros con longitud de solicitud mayor a 70.

    content.request.request_length > 70
  • Busque registros correspondientes a solicitudes GET.

    content.request.request_method:GET
  • Cuente los registros agrupados por estado de solicitud.

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

    El resultado enumera cada código de estado, como 200 y null, junto con sus vistas de página (PV).

  • Cuente las solicitudes agrupadas por duración, ordenadas de forma ascendente.

    * | SELECT "content.time.request_time", COUNT(*) AS count GROUP BY "content.time.request_time" ORDER BY "content.time.request_time"
  • Calcule la duración promedio de las solicitudes agrupada por método de solicitud.

    * | SELECT avg("content.time.request_time") AS avg_time,"content.request.request_method"  GROUP BY "content.request.request_method"

    El resultado muestra un valor de avg_time de 45 para GET y un valor de avg_time de 11 para PUT.

Temas relacionados