Registrar y solucionar problemas de los servicios de recopilación y consulta

Se describen los métodos y sistemas para la resolución de problemas de servicios de recopilación y consulta.

Resolución de problemas de introducción

Al comprobar el servicio de introducción, lo primero que hará es comprobar la canalización de datos para asegurarse de que los datos se llevan realmente a Elasticsearch. Verifique los conectores en los contenedores de perfil. Cada etapa del inicio del servicio (así como de detención) se registra automáticamente en estos archivos. Puede encontrar los archivos de registro de servicio de introducción en profile/logs/container/ingest.

Cuando se ejecutan las canalizaciones NiFi, cada canalización registra runId cuando se ejecuta. En lugar de tener que buscar en estos registros, puede utilizar el servicio de introducción API de REST para consultar el servicio para códigos de retorno y para otra información de tiempo de ejecución. Para obtener runId (así como otra información de tiempo de ejecución), debe utilizar el mandato /connectors/{connectorId}/runs. runId se puede utilizar como entrada para consultas posteriores, por ejemplo, si la canalización específica ha fallado.

Puede explorar y probar los comandos utilizando la API de servicio de Ingest de búsqueda.
Note: Puede obtener información más detallada sobre una canalización determinada desde los puntos finales REST siguientes:
  • Descriptores: GET /connectors. Esta información, de ZooKeeper, le mostrará el estado de configuración de todos los conectores.
  • Resumen: GET /connectors{id}/runs
  • Flujo de rastreo: GET connectors{id}runs/{id} con rastreo, registro, resumen

Resolución de problemas del servicio de consulta

La configuración de registro es ligeramente diferente para el servicio de consulta. Para habilitar la opción de rastreo, edite el archivo /profile/apps/search-query.ear/search-query.war/WEB-INF/classes/logback.xml (registro Springboot). Establezca el nivel de registrador de búsqueda en "rastreo" como en el ejemplo siguiente.
<DefaultThreshold>TRACE</DefaultThreshold>

(El valor predeterminado es ERROR). Cuando reinicie la aplicación, el registro estará habilitado y el registro de consultas se registrará en /app/ESQueryService/logs.

HCL Commerce Version 9.1.3.0 or later logback.xml incluye un elemento de configuración: <configuration scan="true" scanPeriod="30 seconds">{}{} que permite que los valores de rastreo se cambien dinámicamente. Los cambios en el archivo se leerán cada 30 segundos, evitando la necesidad de reiniciar la aplicación.

El registro contiene una gran cantidad de información. Las entradas relevantes para la consulta comienzan después de la cadena de texto "Buscar en la memoria caché de consulta para la solicitud de consulta". Esta cadena precede a cada consulta que se ha enviado a Elasticsearch y representa el punto en el que la consulta interactúa con el motor de Elasticsearch. Cualquier cosa antes de esta serie es la información de preproceso; lo que sigue a la línea son los datos de posproceso.

Solicitud de rastreo de registros de nivel para el Servicio de consulta

También puede realizar el rastreo de registro a nivel de solicitud para el servicio de consulta. Le permite:
  • Cambiar los niveles de registro dinámicamente sin la necesidad de reiniciar el contenedor del servicio de consulta añadiendo un encabezamiento X-Log-Level.
  • Rastrear solo la solicitud única agregando un encabezamiento X-Log-Level.

En un sistema de registro centralizado, los registros de varios contenedores se vuelcan en un índice Elasticsearch. Dado que el índice tiene los registros de todos los contenedores mezclados entre sí, tiene que haber una forma de extraer los registros de registro relevantes del índice. El parámetro traceId se ha introducido para resolver este problema. Acompaña a cada registro de registro y le permite extraer los registros relevantes para la solicitud específica.

De forma predeterminada, los registros del servicio de consultas se generan en el nivel de registro de ERROR. Ahora puede cambiar a cualquier nivel de registro para una solicitud concreta añadiendo el encabezamiento X-Log-Level = <log-level>.

Note: Las <log-level> posibles son TRACE, DEBUG, INFO, WARN, ERROR.

Utilice la interfaz Swagger de la API de REST de consulta para tener acceso al siguiente punto final del servicio de consulta. Este punto final activa el rastreo a nivel de API para el servicio de consulta.

Asegúrese de incluir el parámetro envType obligatorio y {"apitracing":"enabled"} en el cuerpo del mensaje.

También puede utilizar el siguiente comando Curl para habilitar el seguimiento de nivel de API para el servicio de consulta:

"https://<query_host>:<query_port>/search/resources/api/v2/configuration?nodeName=tracing&envType=auth" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"apitracing\":\"enabled\"}"

Sentencias de registro en trace.log que tienen el traceId exclusivo de la petición específica.

Important: Este traceId se genera para todas las solicitudes independientemente de si el encabezado X-Log-Level se proporciona en la solicitud o no.

La respuesta tiene un encabezamiento como traceId que lleva el traceId a la persona que llama.

Habilitación del rastreo en el servidor de Ingest

Para habilitar el rastreo en el servidor de Ingest, edite el siguiente archivo:
./opt/WebSphere/Liberty/usr/servers/default/apps/search-ingest.ear/search-ingest.war/WEB-INF/classes/log4j2-spring.xml
<Loggers> ............ ............ <Logger name="com.hcl" level="ALL"/> <Root level="trace"> <AppenderRef ref="Console"></AppenderRef> <AppenderRef ref="RollingFileAppender"></AppenderRef> </Root> </Loggers>

Después de realizar este cambio, deberá reiniciar el servidor de Ingest.