Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Síntoma
Faltan datos de estadísticas en la nueva IU de Edge porque el servidor Qpidd no transfiere mensajes de estadísticas a PostgreSQL. En Edge, el componente edge-qpid-server corresponde al servidor Qpidd.
Qpidd mantiene dos colas para cada grupo de estadísticas:
ax-q-axgroup001-consumer-group-001
Esta cola contiene mensajes de análisis enviados desde los Message Processors y los routers. El componente
edge-qpid-serverextrae los mensajes de aquí, los analiza y los inserta en PostgreSQL. Una vez que los mensajes se procesan correctamente, se quitan de la cola.ax-q-axgroup001-consumer-group-001-dl
Esta cola es la cola de mensajes no entregados. Actúa como el destino de los mensajes que
edge-qpid-serverno pudo procesar y, por lo tanto, ya no desea recibir. Por lo general, se propaga cuando se supera el recuento máximo de entrega o si PostgreSQL rechazó la inserción de datos nuevos debido a errores de tiempo de ejecución.
Mensaje de error
La causa principal podría deberse a varios errores de tiempo de ejecución del componente edge-qpid-server. Por lo general, si edge-qpid-server recibe un error de tiempo de ejecución de PostgreSQL, crea la cola de mensajes no entregados si aún no existe y, luego, envía el siguiente mensaje allí:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
Causas posibles
| Causa | Descripción | Instrucciones de solución de problemas aplicables a |
|---|---|---|
| Mensajes atascados en la cola de mensajes no entregados de qpidd | edge-qpid-server no pudo comprender los mensajes que leyó del agente de Qpidd o no pudo conservar los mensajes en PostgreSQL.
|
Usuarios de la nube privada de Edge |
Pasos comunes de diagnóstico
Ejecuta el siguiente comando en el nodo Qpid para ver las estadísticas de la cola de Qpidd:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
El resultado muestra el conjunto de colas registradas con el agente. Si la cola con un nombre que termina en -dl tiene mensajes propagados (Q-Depth(Messages) en Edge para la nube privada 4.53.00 y versiones posteriores, o msg en Edge para la nube privada 4.52.x y versiones anteriores), los mensajes están atascados en la cola de mensajes no entregados.
Ejemplo de resultado en Edge para la nube privada 4.53.00 y versiones posteriores (incluidas 4.54.00, Apache Qpid Broker-J):
+---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | Queue Name | Messages Enqueued | Total Enqueued(B) | Messages Dequeued | Total Dequeued(B) | Consumers | Bindings | Q-Depth(Messages) | Q-Depth(B) | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | ax-q-axgroup001-consumer-group-001 | 185 | 13800000 | 185 | 13800000 | 6 | 1 | 0 | 0 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | ax-q-axgroup001-consumer-group-001-dl | 70 | 3900000 | 0 | 0 | 0 | 1 | 70 | 3900000 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+
Ejemplo de resultado en Edge para la nube privada 4.52.x y versiones anteriores (agente
heredado de C++qpidd):
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
Causa: Mensajes atascados en la cola de mensajes no entregados de qpidd
Diagnóstico
Esta condición puede ocurrir en las siguientes situaciones:
- Se realizó una actualización en el pasado, durante la cual PostgreSQL dejó de funcionar.
- Una interrupción temporal de PostgreSQL debido a problemas de red.
- El componente
edge-qpid-serverintentó enviar un mensaje a PostgreSQL, pero PostgreSQL mostró un error de tiempo de ejecución.
Solución
Sigue los pasos para tu versión de Edge para la nube privada para mover los mensajes atascados de la cola de mensajes no entregados a la cola de estadísticas principal.
Edge para la nube privada 4.53.00 y versiones posteriores (incluidas 4.54.00)
Edge para la nube privada 4.53.00 y versiones posteriores (incluidas 4.54.00) usa Apache Qpid Broker-J (10.0.1 en 4.54.00 y 8.0.6 en 4.53.x). Se quitó la CLI qpid-tool heredada en Edge para la nube privada 4.53.00 y versiones posteriores, y no se puede usar.
En su lugar, usa la API de REST de administración HTTP de Apache Qpid Broker-J (moveMessages) o la consola de administración web de Qpid para mover los mensajes de la cola de mensajes no entregados a la cola de estadísticas principal:
Anota los nombres exactos de la cola principal y la cola de mensajes no entregados del resultado de los pasos comunes de diagnóstico (por ejemplo,
ax-q-axgroup001-consumer-group-001yax-q-axgroup001-consumer-group-001-dl, oax-q-axgroup-001-consumer-group-001yax-q-axgroup-001-consumer-group-001-dl).En el nodo Qpid, ejecuta el siguiente comando
curlpara invocar la operaciónmoveMessagesen la cola de mensajes no entregados a través de la API de Management HTTP de Qpid Broker-J (puerto8090de forma predeterminada):curl -u QPID_USER:QPID_PASSWORD -X POST \ -H "Content-Type: application/json" \ -d '{"destination": "ax-q-axgroup001-consumer-group-001"}' \ http://127.0.0.1:8090/api/latest/queue/default/default/ax-q-axgroup001-consumer-group-001-dl/moveMessagesDonde:
QPID_USERyQPID_PASSWORDson las credenciales de administración de Qpid configuradas en/opt/apigee/customer/application/qpidd.propertieso/opt/apigee/token/application/qpidd.properties(el valor predeterminado esguest:guest).- Reemplaza
ax-q-axgroup001-consumer-group-001yax-q-axgroup001-consumer-group-001-dlsi los nombres de la cola de estadísticas enqpid-stat -qdifieren. - Para mover mensajes en lotes, incluye
"limit"en el cuerpo de la solicitud JSON (por ejemplo,"limit": 100000). - Si SSL/TLS está habilitado en la API de Management de Qpid (
conf_qpidd_qpid_management.https.enabled=true), usahttps://y pasa--cacert(o-k) acurl.
Verifica el resultado del comando. Una llamada exitosa muestra un array JSON de los IDs de mensajes internos movidos:
[ 3, 4, 5 ]
Si el array que se muestra está vacío (
[]), no había mensajes en la cola de mensajes no entregados para mover.Espera 5 minutos y, luego, ejecuta
/opt/apigee/apigee-qpidd/bin/qpid-stat -qdesde los pasos comunes de diagnóstico. Verifica que los mensajes de la cola principal (ax-q-axgroup001-consumer-group-001) se estén procesando y queQ-Depth(Messages)en la cola de mensajes no entregados (ax-q-axgroup001-consumer-group-001-dl) permanezca en0.
Edge para la nube privada 4.52.x y versiones anteriores
Anota el nombre de las colas de los pasos comunes de diagnóstico. Por ejemplo:
ax-q-axgroup-001-consumer-group-001ax-q-axgroup-001-consumer-group-001-dl
Ejecuta el comando
qpid-toolpara ingresar un mensajeqpidinteractivo:qpid-tool
Este comando muestra lo siguiente:
Management Tool for QPID qpid:
Ejecuta
list brokerpara obtener una lista de los agentes activos:list broker
Este comando muestra lo siguiente:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
En el ejemplo anterior, la columna
IDespecifica el ID del agente.Anota el ID del agente. En el ejemplo, es
125.Ejecuta el siguiente comando para mover los mensajes de la cola de mensajes no entregados a la cola real:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}Este comando muestra lo siguiente:
OK (0) - {}Si no hay resultado, no había nada que hacer, lo que significa que no hay mensajes para mover. Si no ves
OK (0), debes comunicarte con el equipo de asistencia de Apigee Edge.Sal de la terminal
qpid-tool:quit
Espera 5 minutos y, luego, vuelve a ejecutar los pasos de diagnóstico de los pasos comunes de diagnóstico. Verifica que los mensajes de la cola real se estén procesando y asegúrate de que el recuento de
msgde mensajes no entregados permanezca en0.
Si el problema persiste, ve a la siguiente sección.
Se debe recopilar información de diagnóstico
Si el problema persiste después de seguir las instrucciones anteriores, recopila la siguiente información de diagnóstico y compártela con el equipo de asistencia de Apigee Edge:
- Registros de Qpidd:
/opt/apigee/var/log/apigee-qpidd/qpidd.log(Edge para la nube privada 4.53.00 y versiones posteriores) y/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log - Registros de PostgreSQL:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log - Registros de Edge-qpid-server:
/opt/apigee/var/log/edge-qpid-server/logs/system.log - Registros de Edge-postgres-server:
/opt/apigee/var/log/edge-postgres-server/logs/system.log Estadísticas de la cola de Qpidd:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
Grupo de estadísticas que muestra el siguiente comando curl:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax