Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Krótki opis problemu
Wdrożenie wersji serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu API zarządzania kończy się niepowodzeniem z przekroczeniem limitu czasu .
Komunikaty o błędach
Click to change deployment status. The revision is deployed and traffic can flow, but flow may be impaired. Error: Call timed out; either server is down or server is not reachable
Możliwe przyczyny
Oto typowe przyczyny:
Przyczyna | Szczegóły | Dla: |
Problem z połączeniem sieciowym | Błąd komunikacji między serwerem zarządzania a procesorem wiadomości z powodu sieci problemów z połączeniem lub reguł zapory sieciowej. | Tylko użytkownicy chmury prywatnej |
Duży pakiet serwerów proxy API | Aktywacja procesora wiadomości może zająć dużo czasu, jeśli pakiet serwera proxy API jest duży co prowadzi do przekroczenia limitu czasu RPC. | Użytkownicy chmury prywatnej i publicznej |
Problem z połączeniem sieciowym
Uwaga: tylko użytkownicy Edge Private Cloud mogą wykonywać poniższe czynności. Jeśli korzystają z Edge Public Cloud, skontaktuj się z zespołem pomocy Apigee Edge.
Diagnostyka
- Użyj tego kodu, aby uzyskać stan wdrożenia dla określonego interfejsu API, który wyświetla błąd.
wywołanie interfejsu API zarządzania:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Przykładowe dane wyjściowe z błędem:
{ "error": "Call timed out; either server is down or server is not reachable", "status": "error", "type": [ "message-processor" ], "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" }, { "status": "deployed", "type": [ "message-processor" ], "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" }, { "status": "deployed", "type": [ "router" ], "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" }, { "status": "deployed", "type": [ "router" ], "state" : "error" }
Powyższe przykładowe dane wyjściowe pokazują, że błąd wystąpił na jednym z procesorów wiadomości ma identyfikator UUID „
ebbc1078-cbde-4a00-a7db-66a3c1b2b748
”. - Na podstawie stanu wdrożenia serwera proxy interfejsu API zaloguj się do każdej
Procesory z odpowiednim identyfikatorem UUID, które wyświetliły błąd, i wykonaj te czynności:
- Sprawdź, czy procesor wiadomości nasłuchuje na porcie 4528:
netstat -an | grep LISTEN | grep 4528
Jeśli procesor wiadomości nie nasłuchuje na porcie 4528, uruchom ponownie aplikację Procesor:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Sprawdź ponownie stan wdrożenia serwera proxy interfejsu API przy użyciu wyświetlonego wywołania interfejsu Management API w kroku 1 powyżej. Jeśli nie ma błędów, oznacza to, że problem został rozwiązany.
- Sprawdź, czy procesor wiadomości nasłuchuje na porcie 4528:
- Jeśli problem będzie się powtarzać, sprawdź połączenie serwera zarządzania z wiadomością
Procesor w porcie 4528, wykonując te czynności:
- Jeśli usługa telnet jest dostępna, użyj polecenia telnet:
telnet <MessageProcessor_IP> 4528
- Jeśli usługa Telnet jest niedostępna, użyj narzędzia netcat, aby sprawdzić łączność w następujący sposób:
nc -vz <MessageProcessor_IP> 4528
- Jeśli pojawi się komunikat „Odmowa połączenia” lub „Osiągnięto limit czasu połączenia”, a następnie zaangażuj zespołu ds. operacji sieciowych.
- Jeśli usługa telnet jest dostępna, użyj polecenia telnet:
- Przetestuj połączenie procesora wiadomości z serwerem zarządzania na porcie 4526
w ten sposób:
- Jeśli usługa telnet jest dostępna, użyj polecenia telnet:
telnet <management-server-IP> 4526
- Jeśli usługa Telnet jest niedostępna, użyj narzędzia netcat, aby sprawdzić łączność w następujący sposób:
nc -vz <management-server-IP> 4526
- Jeśli pojawi się komunikat „Odmowa połączenia” lub „Osiągnięto limit czasu połączenia”, ds. działań sieciowych.
- Jeśli usługa telnet jest dostępna, użyj polecenia telnet:
- Wspólnie z zespołem operacyjnym ds. sieci wykonaj te czynności:
- Sprawdź, czy protokół RPC jest dozwolony zarówno na serwerze zarządzania, jak i w komunikacie Procesor.
- Usuń wszystkie ograniczenia zapory sieciowej i reguły zabezpieczeń skonfigurowane między serwerami zarządzania i procesora wiadomości, aby umożliwić połączenie z portem 4526 na serwerze zarządzania oraz połączenia między serwerem zarządzania a procesorami wiadomości przez port 4528.
- Ponownie sprawdź stan wdrożenia (patrz krok 1 powyżej). Jeśli nie widzisz żadnych błędów, oznacza to, że błąd został naprawiony.
- Jeśli problem nie ustąpi, sprawdź, czy nie występuje problem z siecią na procesorze wiadomości. Jeśli
problemu z siecią. Uruchom ponownie określony procesor komunikatów, który wyświetli błąd przekroczenia limitu czasu (zgodnie z
dane wyjściowe stanu wdrożenia) mogą rozwiązać problem:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jeśli problem będzie nadal występował, sprawdź dzienniki serwera zarządzania pod adresem:
(
/opt/apigee/var/log/edge-management-server/logs/system.log
).Przykładowy błąd przekroczenia limitu czasu wywołania z dziennika serwera zarządzania
2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true com.apigee.rpc.RPCException: Call timed out at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79]
Jeśli zauważysz podobny błąd jak w powyższym przykładzie, zwiększ RPC limit czasu na serwerze zarządzania, dzięki czemu w przypadku spowolnienia sieci powinna zostać czas na połączenie serwera zarządzania z procesorem wiadomości.
Rozdzielczość
Uwaga: tylko użytkownicy Edge Private Cloud mogą wykonywać poniższe czynności. Jeśli korzystają z Edge Public Cloud, skontaktuj się z zespołem pomocy Apigee Edge.
- Aby zwiększyć limit czasu RPC, wykonaj te czynności:
- Tworzenie pliku
/opt/apigee/customer/application/management-server.properties
Kierownictwo Komputer serwera, jeśli jeszcze nie istnieje. - Dodaj do tego pliku ten wiersz:
conf_cluster_rpc.connect.timeout=<time in seconds>
Domyślna wartość limitu czasu RPC wynosi 10, ale zalecamy zwiększenie jej do 40 sek. Ustaw go w następujący sposób:
conf_cluster_rpc.connect.timeout=40
- Sprawdź, czy ten plik należy do Apigee:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Ponownie uruchom serwer zarządzania:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Jeśli masz więcej niż jeden serwer zarządzania, powtórz powyższe kroki na wszystkich Serwery zarządzania.
- Wdróż serwer proxy interfejsu API w interfejsie Edge lub za pomocą wywołania interfejsu Edge Management API. Jeśli Serwer proxy interfejsu API jest wdrażany bez problemów, co oznacza, że problem został rozwiązany.
- Tworzenie pliku
- Jeśli problem będzie się powtarzał, zbierz
tcpdump z serwera zarządzania i procesora wiadomości. Włącz tcpdump
na każdym z serwerów, a następnie zainicjuj wdrożenie serwera proxy interfejsu API z poziomu interfejsu użytkownika
lub za pomocą interfejsu API do zarządzania:
- Uruchom to polecenie tcpdump z serwera zarządzania:
tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
- Uruchom poniższe polecenie tcpdump w procesorze wiadomości:
tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
- Aby uzyskać pomoc, skontaktuj się z zespołem pomocy Apigee Edge analiza tcpdumps i rozwiązanie problemu.
- Uruchom to polecenie tcpdump z serwera zarządzania:
Duży Pakiet serwerów proxy API
Diagnostyka
- Sprawdź rozmiar pakietu serwera proxy interfejsów API, w przypadku którego występuje błąd wdrażania zaobserwowane.
- Jeśli rozmiar wiadomości jest dość duży (co najmniej 10 MB), Procesor może potrzebować więcej czasu na aktywację serwera proxy interfejsu API.
- Jeśli rozmiar pakietu serwera proxy interfejsu API przekracza 15 MB, przejdź do Rozmiar pakietu serwerów proxy API przekracza 15 MB.
Rozdzielczość
Uwaga: tylko użytkownicy Edge Private Cloud mogą wykonywać poniższe czynności. Jeśli korzystają z Edge Public Cloud, skontaktuj się z zespołem pomocy Apigee Edge.
Zwiększ limit czasu RPC na serwerze zarządzania, aby procesor komunikatów miał wystarczająco dużo czasu na aktywować duże pakiety proxy interfejsów API. Aby zwiększyć limit czasu RPC, wykonaj te czynności: wartość:
- Utwórz plik
/opt/apigee/customer/application/management-server.properties
na serwerze zarządzania, jeśli jeszcze nie istnieje. - Dodaj do tego pliku ten wiersz:
conf_cluster_rpc.connect.timeout=<time in seconds>
Domyślna wartość limitu czasu RPC wynosi 10, ale zalecamy zwiększenie jej do 40 sekund. Ustaw go w następujący sposób:
conf_cluster_rpc.connect.timeout=40
- Sprawdź, czy ten plik należy do Apigee:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Ponownie uruchom serwer zarządzania:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Jeśli masz więcej niż jeden serwer zarządzania, powtórz powyższe kroki dla wszystkich Serwery.
Jeśli problem będzie nadal występował, skontaktuj się z zespołem pomocy Apigee Edge w celu uzyskania dostępu do dalszą pomoc.