Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur
Dokumentation zuApigee X wechseln. info
Symptom
Die mit der Statistics Collector -Richtlinie erstellte benutzerdefinierte Variable ist in der Edge-UI unter „Benutzerdefinierte Dimensionen“ in den benutzerdefinierten Analytics-Berichten nicht sichtbar.
Fehlermeldung
Im Systemprotokoll des Edge-Postgres-Servers wird nach einem Neustart für jede Kombination aus Organisation und Umgebung, bei der der Pfad fehlt, der folgende Fehler angezeigt:
KeeperErrorCode = NoNode for /organizations/<ORG>/environments/<ENV>/properties 2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER - ZooKeeperServiceImpl.getData() : Could not get data for path: /organizations//environments/ /properties, reason: KeeperErrorCode = NoNode for /organizations/ /environments/ /properties
Mögliche Ursachen
| Ursache | Beschreibung | Anleitungen zur Fehlerbehebung gelten für |
|---|---|---|
| Der Pfad zu den ZooKeeper-Eigenschaften fehlt für die Kombination aus Organisation und Umgebung. | Wenn der ZooKeeper-Pfad /organizations/
fehlt, können keine benutzerdefinierten Dimensionen erstellt werden. |
Edge Private Cloud-Nutzer |
Ursache: Der Pfad zu den ZooKeeper-Eigenschaften fehlt für die Kombination aus Organisation und Umgebung
Diagnose
Analytics wird für eine Kombination aus Organisation und Umgebung über die
Enable analytics API aktiviert. Dadurch wird /organizations/
in der ZooKeeper-Struktur aufgefüllt. Wenn diese API fehlschlägt, kann die edge-postgres-server-Komponente keine benutzerdefinierten Dimensionen erstellen und der folgende Fehler wird in der Datei „system.log“ angezeigt:
KeeperErrorCode = NoNode for /organizations/example/environments/prod/properties 2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER - ZooKeeperServiceImpl.getData() : Could not get data for path: /organizations/example/environments/prod/properties, reason: KeeperErrorCode = NoNode for /organizations/digi/environments/sandbox/properties
Dies geschieht in der Regel, wenn eine Organisation zu einem Zeitpunkt eingebunden wurde, als mehrere Analytics-Gruppen vorhanden waren, die dieselben postgres-server-UUIDs verwendeten. Führen Sie den folgenden API-Aufruf aus, um zu prüfen, wie viele Analytics-Gruppen vorhanden sind:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
Wenn diese API mehrere Gruppen zurückgibt, ist dies höchstwahrscheinlich die Ursache des Problems. Im folgenden Beispiel sind zwei Gruppen vorhanden, die sich nur durch einen Bindestrich unterscheiden: axgroup-001 und axgroup001.
[ {
"name" : "axgroup-001",
"properties" : {
},
"scopes" : [ "VALIDATE~test" ],
"uuids" : {
"qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
},
"consumer-groups" : [ {
"name" : "consumer-group-001",
"consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
"properties" : {
}
} ],
"data-processors" : {
}
}, {
"name" : "axgroup001",
"properties" : {
},
"scopes" : [ "example~prod" ],
"uuids" : {
"qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
},
"consumer-groups" : [ {
"name" : "consumer-group-001",
"consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
"properties" : {
}
} ],
"data-processors" : {
}Das Problem tritt auf, wenn die für jede axgroup konfigurierte postgres-server-UUID identisch ist. Sie können dies schnell feststellen, indem Sie Folgendes ausführen:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"
Im folgenden Beispielausgabe werden die postgres-server-UUIDs schnell verglichen, um festzustellen, dass sie identisch sind:
{ "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test" ],
"uuids" : { "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001", "properties" : { }, "scopes" : [ "myorg~prod" ],
"uuids" : { "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ], "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],Auflösung
Derselbe Satz von PostgreSQL-Servern kann nicht zwei axgroups zugewiesen werden. Die schnellste Lösung besteht darin, die Informationen zum Postgres-Server aus einer axgroup zu löschen und alle Bereiche (Kombinationen aus Organisation und Umgebung) der anderen Gruppe zuzuweisen. Gehen Sie dazu so vor:
- Entfernen Sie die Postgres-Serverkomponenten aus einer der beiden axgroups. Folgen Sie dazu der Anleitung unter Analytics-Komponenten in Analytics-Gruppen hinzufügen und löschen. Wenn Probleme nur bei Nicht-Produktionsbereichen auftreten, wählen Sie die axgroup aus, die keinen Produktionsbereich hat. Andernfalls wählen Sie die axgroup mit der geringsten Anzahl von Bereichen aus.
- Entfernen Sie alle Bereiche aus der axgroup, die keine Postgres-Server mehr hat, und die Bereiche
bei denen das Problem mit der benutzerdefinierten Dimension auftritt, aus ihrer axgroup. Wenn
axgroup-001aus dem obigen Beispiel die Gruppe ist, die Sie verwenden möchten, müssen Sie Folgendes verwenden, um den Bereich für die Organisation myorg und die Umgebung prod zu entfernen:curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
- Aktivieren Sie Analytics mit der Enable analytics API.
- Starten Sie die edge-postgres-server-Komponente auf dem Postgres-Masterknoten und alle
installierten edge-qpid-server-Komponenten mit den folgenden Befehlen neu:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Prüfen Sie, ob der im Abschnitt Fehlermeldung oben angegebene Fehler
nicht mehr in der Protokolldatei des Postgres-Servers
/opt/apigee/var/log/edge-postgres-server/logs/system.logauftritt. - Prüfen Sie, ob die benutzerdefinierten Dimensionen in der Edge-UI angezeigt werden.
Wenn das Problem weiterhin besteht, lesen Sie unten den Abschnitt Erfassen von Diagnoseinformationen erforderlich.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem auch nach dem Ausführen der vorherigen Schritte weiterhin besteht, erfassen Sie die folgenden Diagnoseinformationen. Wenden Sie sich an den Apigee Edge-Support und teilen Sie ihm die Informationen mit:
- Die Datei „
/opt/apigee/var/log/edge-postgres-server/logs/system.log“ des Edge-Postgres-Servers vom Zeitpunkt des letzten Neustarts. - Die Ausgabe des folgenden Management API-Aufrufs:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- Die Ausgabe der ZooKeeper-Struktur, die mit dem folgenden Befehl abgerufen wurde:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt