Narzędzia i dzienniki diagnostyczne

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

W tym temacie omówione są narzędzia sieciowe, narzędzia JVM oraz logi diagnostyczne, których możesz użyć do Rozwiązywanie problemów z siecią i maszyną wirtualną w Apigee Edge.

Narzędzie do sniffera pakietów TCP/IP (tcpdump)

Narzędzie tcpdump to sniffer pakietów wiersza poleceń, który pozwala: przechwytywać lub filtrować pakiety TCP/IP, które są odbierane lub przesyłane przez sieć. Jest dostępna w systemach operacyjnych Linux/Unix. Możesz zainstalować to narzędzie, używając yum jako następujące:

yum install tcpdump

Narzędzie tcpdump przydaje się do rozwiązywania problemów z siecią i protokołem SSL. Dla: przykład:

  • Błędy bramy 502 (spowodowane z powodu wyjątku EOF)
  • Błędy 503 „Niedostępna usługa”
  • Błędy uzgadniania połączenia SSL

Aby rozwiązać dowolny z tych problemów, należy najpierw określić parę składników gdzie wystąpił błąd. W przypadku Edge może przyjmować jedną z tych par:

  • Aplikacja kliencka i router
  • Router i procesor wiadomości
  • Procesor komunikatów i serwer backendu

Po zidentyfikowaniu problematycznej pary komponentów możesz przechwycić pakiety sieciowe używając narzędzia tcpdump na jednym lub obu komponentach.

Przechwytywanie pakietów wysyłanych do/odebranych od określonego hosta za pomocą tcpdump

Użyj poniższego polecenia tcpdump, aby przechwycić wszystkie pakiety wysłane do lub z serwera określonego hosta (adresu IP) i zapisać te informacje w określonym pliku:

tcpdump -i any -s 0 host <IP address> -w <File name>

Gdzie:

Parametr Opis
-I (interfejs) określa interfejs, z którego mają być przechwytywane pakiety. Zastosowanie wartość „any” umożliwia przechwytywanie pakietów ze wszystkich interfejsów.
– s (snarf/snaplen) określa ilość każdego pakietu do przechwycenia. Na podstawie wartości 0 (zero) umożliwia przechwycenie całego pakietu.
Adres IP to adres IP hosta, dla którego chcemy przechwytywać pakiety
Nazwa pliku to nazwa pliku, w którym ma zostać zapisany plik tcpdump

Przykład

Załóżmy, że chcesz przechwycić pakiety między procesorem wiadomości a backendem Serwer:

  1. Zaloguj się na komputerze z procesorem wiadomości.
  2. Ustal adres IP serwera backendu (przy założeniu, że jest to 22.22.22.22), dla którego chcemy przechwytywanie pakietów.

Użyj poniższego polecenia, aby przechwycić pakiety sieciowe dla hosta o określonym adresie IP adres:

tcpdump -i any -s 0 host 22.22.22.22 -w rmp-123.pcap

Jeśli serwer backendu określa kilka adresów IP, użyj nazwy hosta backendu serwera w poleceniu tcpdump, jak pokazano poniżej:

tcpdump -i any -s 0 host <Hostname> -w rmp-123.pcap

Jeśli istnieje wiele serwerów backendu z różnymi adresami IP (22.22.22.22, 33.33.33.33) 44.44.44.44), użyj poniższego polecenia tcpdump:

tcpdump -i any -s 0 host 22.22.22.22 or host 33.33.33.33 or host 44.44.44.44 -w rmp-123.pcap

Analizuję pliki tcpdumps

Możesz wyświetlić lub przeanalizować plik tcpdump za pomocą polecenia tcpdump lub narzędzia opartego na GUI Wireshark.

Pliki referencyjne

Zrzuty stosu

Zrzuty stosu to migawka pamięci procesu w Javie. Zawierają one informacje o obiektach i klasach Java na stercie w momencie zrzutu stosu zgromadzone dane. Zazwyczaj są one dość duże – od 100 MB do kilku GB.

Zrzut stosu jest bardzo przydatny, gdy proces w Javie, taki jak procesor wiadomości, wyświetla:

  • Wysokie wykorzystanie pamięci
  • OutofMemoryError

Generowanie zrzutu stosu dla procesu Java

Java udostępnia narzędzie o nazwie jmap, które umożliwia generowanie pamięci statystyk ani zrzutów stosu uruchomionego procesu Java.

Użyj tego polecenia jmap, aby wygenerować zrzut stosu procesu Java:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>

Gdzie:

Parametr Opis
JAVA_HOME Jest katalogiem instalacyjnym środowiska Java
nazwa pliku Jest nazwą pliku, w którym zostanie zapisany zrzut stosu
pid Jest identyfikatorem procesu aplikacji Java, której zrzut nagłówka ma zostać przechwycony

Przykład

Załóżmy, że procesor wiadomości mp-east ma duże wykorzystanie pamięci lub wysyła Błędy związane z brakiem pamięci. Określ identyfikator procesu procesora wiadomości za pomocą polecenia ps na System operacyjny Unix. Załóżmy, że jest to 24 569.

Aby wygenerować zrzut stosu, uruchom narzędzie jmap w ten sposób:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569

Analizuję zrzuty stosu

Zrzuty stosu można analizować za pomocą narzędzia Eclipse MAT (Memory Analyzer), aby określić potencjalne wycieki pamięci lub które obiekty Java powodują wysokie wykorzystanie pamięci.

Pliki referencyjne

Jak pobrać zrzut stosu

narzędzie jmap

strona jmap man

Narzędzie Analizator pamięci (MAT)


Zrzuty wątków

Zrzut wątku to migawka stanu wszystkich wątków uruchomionego procesu Java. stanu poszczególnych wątków przedstawia się zawartość stosu, nazywaną zrzutem stosu. Niektóre wątki będą częścią uruchomionej aplikacji Java, a inne wątki wewnętrzne JVM.

Zrzut wątku pozwala uzyskać informacje o działaniach poszczególnych wątków aplikacji. Te informacje mogą być bardzo przydatne, jeśli chcesz:

  • Diagnozowanie problemów, takich jak skoki procesora, powolne czasy odpowiedzi lub brak reakcji w Javie aplikacji
  • Zoptymalizuj wydajność aplikacji i JVM

Generuję zrzuty wątków

Zrzut wątku procesu Java można wygenerować przy użyciu narzędzia jstack, jak pokazano na ilustracji poniżej:

sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>

Gdzie:

Parametr Opis
JAVA_HOME Jest katalogiem instalacyjnym środowiska Java.
pid Jest identyfikatorem procesu aplikacji w Javie, której zrzut wątku chcesz przechwycić.
nazwa pliku Jest nazwą pliku, w którym zostanie zapisany zrzut wątku.

Przykład

Generowanie zrzutu wątku dla identyfikatora procesu o identyfikatorze 37320 w procesorze wiadomości mp-east, użyj tego polecenia:

sudo -u apigee <JAVA_HOME>/bin/jstack -l 37320 > /opt/apigee/edge-message-processor/mp-east-threadDump.txt

Zgodnie z powyższym przykładem zrzut wątku zostałby zapisany w pliku /opt/apigee/edge-message-processor/mp-east-threadDump.txt.

Analizuję zrzuty wątków

Zrzuty wątków możesz wyświetlać w dowolnym edytorze tekstu, takim jak vi (Linux) lub notatnik (Windows). Patrz: Zrzut wątku, w którym znajdują się szczegółowe informacje o różnych sekcjach zrzutu wątków i sposobie interpretowania i informacjami o nich.

Pliki referencyjne