Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Krótki opis problemu
Zmienna niestandardowa utworzona za pomocą zasady Statistics Collector nie jest widoczna w sekcji Wymiary niestandardowe w raportach niestandardowych Analytics w interfejsie Edge.
Komunikat o błędzie
Po ponownym uruchomieniu w dzienniku systemowym edge-postgres-server pojawi się ten błąd w przypadku każdej kombinacji organizacji i środowiska, w której brakuje ścieżki:
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
Możliwe przyczyny
| Przyczyna | Opis | Instrukcje rozwiązywania problemów, których dotyczy problem |
|---|---|---|
| Brak ścieżki właściwości ZooKeeper dla kombinacji organizacji i środowiska. | Gdy brakuje ścieżki ZooKeeper /organizations/, nie można utworzyć wymiarów niestandardowych. |
Użytkownicy Edge Private Cloud |
Przyczyna: brak ścieżki właściwości ZooKeeper dla kombinacji organizacji i środowiska
Diagnostyka
Analityka jest włączona dla kombinacji organizacji i środowiska za pomocą interfejsu
Enable analytics API, który wypełnia /organizations/
w drzewie ZooKeeper. Gdy ten interfejs API się nie powiedzie, komponent edge-postgres-server nie może utworzyć wymiarów niestandardowych, a w pliku system.log pojawi się ten błąd:
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
Zwykle dzieje się tak, gdy organizacja została zarejestrowana w czasie, gdy istniała więcej niż 1 grupa analityczna, która używała tych samych identyfikatorów UUID serwera postgres. Aby sprawdzić, ile grup analitycznych istnieje, wykonaj to wywołanie interfejsu API:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
Jeśli ten interfejs API zwróci wiele grup, najprawdopodobniej jest to przyczyna problemu. W tym przykładzie widzimy, że istnieją 2 grupy, które różnią się tylko łącznikiem: axgroup-001 i 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" : {
}Problem występuje, jeśli identyfikator UUID serwera postgres skonfigurowany dla każdej grupy axgroup jest taki sam. Aby szybko to sprawdzić, uruchom to polecenie:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"
W tym przykładowym wyniku szybko porównasz identyfikatory UUID serwera postgres, aby sprawdzić, czy są takie same:
{ "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" ],Rozwiązanie
Tego samego zestawu serwerów PostgreSQL nie można przypisać do 2 axgroups. Najszybszym sposobem rozwiązania problemu jest usunięcie informacji o serwerze postgres z jednej grupy axgroup i przypisanie wszystkich zakresów (kombinacji organizacji i środowiska) do drugiej grupy. Aby to zrobić:
- Usuń komponenty serwera postgres z jednej z 2 grup axgroup, korzystając z instrukcji w sekcji Dodawanie i usuwanie komponentów analitycznych w grupach analitycznych. Jeśli problemy występują tylko w przypadku zakresów innych niż produkcyjne, wybierz grupę axgroup, która nie ma zakresu produkcyjnego. W przeciwnym razie wybierz grupę axgroup z najmniejszą liczbą zakresów.
- Usuń wszystkie zakresy z grupy axgroup, która nie ma już serwerów postgres, oraz te
w przypadku których występuje problem z wymiarami niestandardowymi. Zakładając
axgroup-001z powyższego przykładu to grupa, której chcesz użyć, musisz użyć tego polecenia, aby usunąć zakres dla organizacji myorg, i środowiska prod:curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
- Włącz analitykę za pomocą interfejsu Enable analytics API.
- Uruchom ponownie komponent edge-postgres-server w węźle głównym postgres oraz wszystkie
zainstalowane komponenty edge-qpid-server za pomocą tych poleceń:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Sprawdź, czy błąd podany w sekcji Komunikat o błędzie powyżej
nie występuje już w pliku dziennika serwera Postgres
/opt/apigee/var/log/edge-postgres-server/logs/system.log. - Sprawdź, czy wymiary niestandardowe wyświetlają się w interfejsie Edge.
Jeśli problem nadal występuje, przejdź do sekcji Informacje diagnostyczne, które należy zebrać.
Informacje diagnostyczne, które należy zebrać
Jeśli problem nadal występuje po wykonaniu poprzednich instrukcji, zbierz te informacje diagnostyczne. Skontaktuj się z zespołem pomocy Apigee Edge i udostępnij mu te informacje:
- Plik edge-postgres-server
/opt/apigee/var/log/edge-postgres-server/logs/system.logod czasu ostatniego ponownego uruchomienia. - Wynik tego wywołania interfejsu API zarządzania Google Analytics:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- Wynik drzewa ZooKeeper uzyskany za pomocą tego polecenia:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt