Niestandardowe wymiary nie pojawiają się, jeśli skonfigurowano wiele grup

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Krótki opis problemu

Zmienna niestandardowa utworzona za pomocą zasady kolektora statystyk jest niewidoczna w sekcji Wymiary niestandardowe w raportach niestandardowych Analytics w interfejsie Edge.

Komunikat o błędzie

W przypadku każdej kombinacji organizacji i środowiska, w której brakuje ścieżki, po ponownym uruchomieniu log systemowy serwera Edge-postgres będzie zawierał następujący błąd:

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 dotyczące
Brak ścieżki właściwości Zookeeper dla kombinacji organizacji i środowiska. Jeśli brakuje ścieżki ZooKeeper /organizations//environments//properties, nie można tworzyć wymiarów niestandardowych. Użytkownicy chmury Edge Private Cloud

Przyczyna: brak ścieżki właściwości ZooKeeper dla kombinacji organizacji i środowiska

Diagnostyka

Analytics można włączyć dla kombinacji organizacja-środowisko za pomocą interfejsu Enable analytics API, który wypełnia kolumnę /organizations//environments//properties w drzewie ZooKeeper. Jeśli ten interfejs API przestanie działać, komponent Edge-postgres-server nie będzie mógł tworzyć wymiarów niestandardowych, a w logu 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 momencie, gdy istniała więcej niż 1 grupa analityczna używająca tych samych identyfikatorów UUID użytkownika postgres-serwer. Aby sprawdzić, ile grup istnieje, uruchom to wywołanie interfejsu API:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

Jeśli ten interfejs API zwraca wiele grup, najprawdopodobniej jest to przyczyna problemu. Zwróć uwagę, że istnieją 2 grupy różniące się jedynie łą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 ten występuje wtedy, gdy identyfikator UUID serwera postgres skonfigurowany dla każdej grupy abonenckiej jest taki sam. Aby szybko sprawdzić, czy tak jest, uruchom następujące polecenie:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

Poniższe przykładowe dane wyjściowe pozwalają szybko porównać identyfikatory UUID serwera postgres, aby sprawdzić, czy są one 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" ],

Rozdzielczość

Tego samego zestawu serwerów PostgreSQL nie można przypisać do 2 grup axgroups. Najszybszym sposobem rozwiązania problemu jest usunięcie informacji o serwerze postgres z jednej grupy osi i przypisanie wszystkich zakresów (kombinacji organizacji, środowisk) do drugiej. Aby to zrobić:

  1. Usuń komponenty serwera postgres z jednej z 2 grup osi, wykonując instrukcje podane w artykule Dodawanie i usuwanie komponentów Analytics w grupach Analytics. Jeśli problemy występują tylko w zakresach nieprodukcyjnych, wybierz grupę ax, która NIE ma żadnego zakresu produkcyjnego dla tego ćwiczenia. W przeciwnym razie wybierz grupę osi z najmniejszą liczbą zakresów.
  2. Usuń z grupy ax wszystkie zakresy, w których nie ma już serwerów postgres, oraz te, w przypadku których występuje problem z wymiarem niestandardowym z grupy osi. Zakładając, że axgroup-001 z powyższego przykładu jest grupą, której chcesz użyć, to aby usunąć zakres dla organizacji myorg i środowiska prod, musisz użyć poniższych ustawień:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Włącz analizy za pomocą interfejsu Włącz Analytics API.
  4. Ponownie uruchom komponent Edge-postgres-server w węźle głównym postgres wraz ze wszystkimi zainstalowanymi komponentami Edge-qpid-server, korzystając z tych poleceń:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Sprawdź, czy błąd podany w sekcji Komunikat o błędzie powyżej nie występuje w pliku logu serwera Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Sprawdź, czy wymiary niestandardowe wyświetlają się w interfejsie Edge.

Jeśli problem nie ustąpi, przejdź do artykułu Must Gather diagnostic Information (Wymagane zbieranie informacji diagnostycznych).

Musi gromadzić informacje diagnostyczne

Jeśli problem nie ustąpi mimo wykonania poprzednich instrukcji, zbierz poniższe informacje diagnostyczne. Skontaktuj się z zespołem pomocy Apigee Edge i udostępnij je:

  1. Serwer brzegowy /opt/apigee/var/log/edge-postgres-server/logs/system.log od czasu ostatniego ponownego uruchomienia.
  2. Dane wyjściowe tego wywołania interfejsu Management API:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Dane wyjściowe drzewa ZooKeeper uzyskane za pomocą tego polecenia:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt