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
Inicie sesión en la consola de Simple Log Service.
-
En la sección Projects, haga clic en el proyecto deseado.

-
En la pestaña , haga clic en el logstore que desee.

-
En la esquina superior derecha de la página Query and Analysis del logstore, seleccione . Si no existe ningún índice, haga clic en Enable Indexing. Create an index.
NotaPara 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.
-
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) yrequest.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_foryupstream_addrno tienen nodos hoja. Cree índices para estos campos directamente bajo el campocontent.-
Los campos
requestytimetienen nodos hoja, y dichos nodos no son matrices JSON.No es posible crear índices para los campos padre
requestytime, ni consultarlos o analizarlos.Cree índices para los nodos hoja bajo
requestytimeal especificar la ruta completa desde el nodo padre hasta el nodo hoja. El formato esKEY1.KEY2.KEY3, por ejemplo,time.request_timeytime.upstream_response_time. Después de crear los índices, podrá consultartime.request_timeytime.upstream_response_time.
El campo
body_bytes_sentes una matriz JSON. No es posible crear índices para este campo ni para sus nodos hoja, ni consultar o analizarbody_bytes_sento los nodos hoja debody_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
200ynull, 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_timede 45 para GET y un valor deavg_timede 11 para PUT.