Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Symptom
Analysedaten fehlen in der neuen Edge-UI, weil der Qpidd-Server keine Analysenachrichten an PostgreSQL überträgt. In Edge entspricht die Komponente edge-qpid-server dem Qpidd-Server.
Qpidd verwaltet zwei Warteschlangen für jede Analysegruppe:
ax-q-axgroup001-consumer-group-001
Diese Warteschlange enthält Analysenachrichten, die von den Message Processors und Routern gesendet wurden. Nachrichten werden von
edge-qpid-serverabgerufen, der sie parst und in PostgreSQL einfügt. Nachdem Nachrichten erfolgreich verarbeitet wurden, werden sie aus der Warteschlange entfernt.ax-q-axgroup001-consumer-group-001-dl
Diese Warteschlange ist die Warteschlange für unzustellbare Nachrichten. Sie dient als Ziel für Nachrichten, die von
edge-qpid-servernicht verarbeitet werden konnten und die daher nicht mehr empfangen werden sollen. Diese Warteschlange wird in der Regel gefüllt, wenn die maximale Anzahl von Zustellversuchen überschritten wird oder wenn PostgreSQL das Einfügen neuer Daten aufgrund von Laufzeitfehlern abgelehnt hat.
Fehlermeldung
Die Ursache können verschiedene Laufzeitfehler der Komponente edge-qpid-server sein. Wenn edge-qpid-server einen Laufzeitfehler von PostgreSQL erhält, wird in der Regel die Warteschlange für unzustellbare Nachrichten erstellt, falls sie noch nicht vorhanden ist, und dann wird die folgende Nachricht dorthin gesendet:
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.
Mögliche Ursachen
| Ursache | Beschreibung | Anleitungen zur Fehlerbehebung gelten für |
|---|---|---|
| Nachrichten in der Warteschlange für unzustellbare Nachrichten von Qpidd | edge-qpid-server konnte die Nachrichten, die er vom Qpidd-Broker gelesen hat, nicht verstehen oder konnte die Nachrichten nicht in PostgreSQL speichern.
|
Edge Private Cloud-Nutzer |
Allgemeine Diagnoseschritte
Führen Sie den folgenden Befehl auf dem Qpid-Knoten aus, um die Warteschlangenstatistiken von Qpidd aufzurufen:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
Die Ausgabe enthält die Warteschlangen, die beim Broker registriert sind. Wenn die Warteschlange mit einem Namen, der auf -dl endet, Nachrichten enthält (Q-Depth(Messages) in Edge for Private Cloud 4.53.00 und höher oder msg in Edge for Private Cloud 4.52.x und früher), befinden sich Nachrichten in der Warteschlange für unzustellbare Nachrichten.
Beispielausgabe in Edge for Private Cloud 4.53.00 und höher (einschließlich 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 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+
Beispielausgabe in Edge for Private Cloud 4.52.x und früher (Legacy-C++
qpidd Broker):
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
Ursache: Nachrichten in der Warteschlange für unzustellbare Nachrichten von Qpidd
Diagnose
Diese Situation kann in den folgenden Szenarien auftreten:
- In der Vergangenheit wurde ein Upgrade durchgeführt, bei dem PostgreSQL nicht verfügbar war.
- Ein vorübergehender Ausfall von PostgreSQL aufgrund von Netzwerkproblemen.
edge-qpid-serverhat versucht, eine Nachricht an PostgreSQL zu senden, aber PostgreSQL hat einen Laufzeitfehler zurückgegeben.
Auflösung
Folgen Sie der Anleitung für Ihre Edge for Private Cloud-Version, um Nachrichten aus der Warteschlange für unzustellbare Nachrichten zurück in die Hauptwarteschlange für Analysen zu verschieben.
Edge for Private Cloud 4.53.00 und höher (einschließlich 4.54.00)
In Edge for Private Cloud 4.53.00 und höher (einschließlich 4.54.00) wird Apache Qpid Broker-J verwendet (10.0.1 in 4.54.00 und 8.0.6 in 4.53.x). Die Legacy-CLI qpid-tool wurde in Edge for Private Cloud 4.53.00 und höher entfernt und kann nicht verwendet werden.
Verwenden Sie stattdessen die Apache Qpid Broker-J HTTP Management REST API (moveMessages) oder die Qpid Web Management Console, um Nachrichten aus der Warteschlange für unzustellbare Nachrichten zurück in die Hauptwarteschlange für Analysen zu verschieben:
Notieren Sie sich die genauen Namen der Hauptwarteschlange und der Warteschlange für unzustellbare Nachrichten aus der Ausgabe der allgemeinen Diagnoseschritte (z. B.
ax-q-axgroup001-consumer-group-001undax-q-axgroup001-consumer-group-001-dloderax-q-axgroup-001-consumer-group-001undax-q-axgroup-001-consumer-group-001-dl).Führen Sie auf dem Qpid-Knoten den folgenden
curl-Befehl aus, um den VorgangmoveMessagesin der Warteschlange für unzustellbare Nachrichten über die Qpid Broker-J HTTP Management API aufzurufen (Standardport8090):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/moveMessagesWobei:
QPID_USERundQPID_PASSWORDdie in/opt/apigee/customer/application/qpidd.propertiesoder/opt/apigee/token/application/qpidd.propertieskonfigurierten Qpid-Anmeldedaten sind (Standardeinstellung:guest:guest).- Ersetzen Sie
ax-q-axgroup001-consumer-group-001undax-q-axgroup001-consumer-group-001-dlwenn sich die Namen Ihrer Analysenwarteschlangen inqpid-stat -qunterscheiden. - Wenn Sie Nachrichten in Batches verschieben möchten, fügen Sie
"limit"in den JSON-Anfragetext ein (z. B."limit": 100000). - Wenn SSL/TLS für die Qpid Management API aktiviert ist (
conf_qpidd_qpid_management.https.enabled=true), verwenden Siehttps://und übergeben Sie--cacert(oder-k) ancurl.
Prüfen Sie die Befehlsausgabe. Ein erfolgreicher Aufruf gibt ein JSON-Array der verschobenen internen Nachrichten-IDs zurück:
[ 3, 4, 5 ]
Wenn das zurückgegebene Array leer ist (
[]), gab es in der Warteschlange für unzustellbare Nachrichten keine Nachrichten, die verschoben werden konnten.Warten Sie 5 Minuten und führen Sie dann
/opt/apigee/apigee-qpidd/bin/qpid-stat -qaus den allgemeinen Diagnoseschritten aus. Prüfen Sie, ob die Nachrichten in der Hauptwarteschlange (ax-q-axgroup001-consumer-group-001) verarbeitet werden und obQ-Depth(Messages)in der Warteschlange für unzustellbare Nachrichten (ax-q-axgroup001-consumer-group-001-dl) bei0bleibt.
Edge for Private Cloud 4.52.x und früher
Notieren Sie sich die Namen der Warteschlangen aus den allgemeinen Diagnoseschritten. Beispiel:
ax-q-axgroup-001-consumer-group-001ax-q-axgroup-001-consumer-group-001-dl
Führen Sie den Befehl
qpid-toolaus, um eine interaktiveqpidEingabeaufforderung zu öffnen:qpid-tool
Dieser Befehl gibt Folgendes zurück:
Management Tool for QPID qpid:
Führen Sie
list brokeraus, um eine Liste der aktiven Broker abzurufen:list broker
Dieser Befehl gibt Folgendes zurück:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
In der Spalte
IDwird die ID des Brokers angegeben.Notieren Sie sich die ID des Brokers. Im Beispiel ist sie
125.Führen Sie den folgenden Befehl aus, um die Nachrichten aus der Warteschlange für unzustellbare Nachrichten zurück in die eigentliche Warteschlange zu verschieben:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}Dieser Befehl gibt Folgendes zurück:
OK (0) - {}Wenn keine Ausgabe erfolgt, gab es nichts zu tun, d. h. keine Nachrichten zu verschieben. Wenn Sie
OK (0)nicht sehen, sollten Sie sich an den Apigee Edge-Support wenden.Beenden Sie das
qpid-tool-Terminal:quit
Warten Sie 5 Minuten und führen Sie dann die Diagnoseschritte aus den allgemeinen Diagnoseschritten noch einmal aus. Prüfen Sie, ob die Nachrichten in der eigentlichen Warteschlange verarbeitet werden, und stellen Sie sicher, dass die Anzahl der
msgin der Warteschlange für unzustellbare Nachrichten bei0bleibt.
Wenn das Problem weiterhin besteht, fahren Sie mit dem nächsten Abschnitt fort.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem nach Befolgen der vorherigen Anweisungen weiterhin besteht, erfassen Sie die folgenden Diagnoseinformationen und teilen Sie sie dem Apigee Edge-Support mit:
- Qpidd-Logs:
/opt/apigee/var/log/apigee-qpidd/qpidd.log(Edge for Private Cloud 4.53.00 und höher) und/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log - PostgreSQL-Logs:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log - Edge-qpid-Server-Logs:
/opt/apigee/var/log/edge-qpid-server/logs/system.log - Edge-postgres-Server-Logs:
/opt/apigee/var/log/edge-postgres-server/logs/system.log Qpidd-Warteschlangenstatistiken:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
Analysegruppe, die vom folgenden `curl`-Befehl zurückgegeben wird:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax