Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano kilka narzędzi, które mogą diagnozować problemy z siecią o różnych złożonościach. Te zagadnienia obejmują scenariusze, które wahają się od rozwiązywania problemów z nieoczekiwaną wartością odpowiedzi z usługi, po ustalenie przyczyny wyjątku zamknięcia połączenia.
W przypadku rozwiązywania problemów po stronie klienta biblioteki klienckie platformy Azure dla języka Java oferują spójny i niezawodny scenariusz rejestrowania, zgodnie z opisem w Konfigurowanie rejestrowania w zestawie Azure SDK dla języka Java. Jednak biblioteki klienckie tworzą wywołania sieciowe za pośrednictwem różnych protokołów, co może prowadzić do rozwiązywania problemów, które wykraczają poza podany zakres rozwiązywania problemów. W przypadku wystąpienia tych problemów użyj zewnętrznego narzędzia opisanego w tym artykule, aby zdiagnozować problemy z siecią.
Skrzypek
Fiddler to serwer proxy debugowania HTTP, którego można użyć do rejestrowania żądań i odpowiedzi as-is. Nieprzetworzone żądania i odpowiedzi, które można przechwycić, mogą pomóc w rozwiązywaniu problemów ze scenariuszami, w których usługa otrzymuje nieoczekiwane żądanie, lub klient otrzymuje nieoczekiwaną odpowiedź. Aby używać programu Fiddler, należy skonfigurować bibliotekę klienta za pomocą serwera proxy HTTP. Jeśli używasz protokołu HTTPS, potrzebujesz dodatkowej konfiguracji, aby sprawdzić odszyfrowane żądania i treść odpowiedzi.
Dodawanie serwera proxy HTTP
Aby dodać serwer proxy HTTP, postępuj zgodnie ze wskazówkami w Konfigurowanie serwerów proxy w zestawie Azure SDK dla języka Java. Użyj domyślnego adresu Fiddlera localhost na porcie 8888.
Włączanie odszyfrowywania HTTPS
Domyślnie program Fiddler może przechwytywać tylko ruch HTTP. Jeśli aplikacja używa protokołu HTTPS, należy wykonać dodatkowe kroki, aby ufać certyfikatowi programu Fiddler, aby umożliwić mu przechwytywanie ruchu HTTPS. Aby uzyskać więcej informacji, zapoznaj się z sekcją "Menu HTTPS" w dokumentacji programu Fiddler.
W poniższych krokach pokazano, jak ufać certyfikatowi za pomocą środowiska Java Runtime Environment (JRE). Jeśli certyfikat nie jest zaufany, żądanie HTTPS za pośrednictwem programu Fiddler może zakończyć się niepowodzeniem z ostrzeżeniami dotyczącymi zabezpieczeń.
Eksportowanie certyfikatu programu Fiddler.
Znajdź keytool środowiska JRE (zwykle w jre/bin).
Znajdź plik cacert dla JRE (zazwyczaj w jre/lib/security).
Otwórz okno Bash i użyj następującego polecenia, aby zaimportować certyfikat:
sudo keytool -import -file <location-of-Fiddler-certificate> -keystore <location-of-cacert> -alias FiddlerWprowadź hasło.
Ufaj certyfikatowi.
Wireshark
Wireshark to analizator protokołu sieciowego, który może przechwytywać ruch sieciowy bez konieczności wprowadzania zmian w kodzie aplikacji. Narzędzie Wireshark jest wysoce konfigurowalne i może przechwytywać szeroki ruch sieciowy niskiego poziomu. Ta funkcja jest przydatna w przypadku scenariuszy rozwiązywania problemów, takich jak zamknięcie połączenia przez hosta zdalnego lub zamknięcie połączeń podczas operacji. Graficzny interfejs użytkownika wireshark wyświetla przechwytywanie przy użyciu schematu kolorów, który identyfikuje unikatowe przypadki przechwytywania, takie jak retransmisja TCP, RST itd. Można również filtrować dane już podczas ich przechwytywania lub podczas analizy.
Konfigurowanie filtru przechwytywania
Filtry przechwytywania zmniejszają liczbę wywołań sieciowych przechwytywanych do analizy. Bez filtrów przechwytywania program Wireshark przechwytuje cały ruch przechodzący przez interfejs sieciowy. Takie zachowanie może generować ogromne ilości danych, z których większość może stanowić szum informacyjny utrudniający dochodzenie. Użycie filtru przechwytywania pomaga wstępnie określić zakres przechwytywanego ruchu sieciowego, aby lepiej ukierunkować dochodzenie. Aby uzyskać więcej informacji, zobacz Przechwytywanie danych sieci na żywo w dokumentacji programu Wireshark.
Poniższy przykład dodaje filtr przechwytywania w celu przechwytywania ruchu sieciowego wysyłanego do określonego hosta lub odbieranego z określonego hosta.
W programie Wireshark przejdź do Przechwytywanie>Filtry przechwytywania... i dodaj nowy filtr o wartości host <host-IP-or-hostname>. Ten filtr przechwytuje ruch tylko do i z tego hosta. Jeśli aplikacja komunikuje się z wieloma hostami, możesz dodać wiele filtrów przechwytywania lub dodać adres IP hosta lub nazwę hosta z operatorem OR w celu zapewnienia luźniejszego filtrowania przechwytywania.
Przechwytywanie na dysku
Może być konieczne, aby uruchomić aplikację przez długi czas, żeby zdiagnozować nieoczekiwany wyjątek sieciowy i zobaczyć ruch, który do niego prowadzi. Ponadto, utrzymanie wszystkich zrzutów w pamięci może nie być możliwe. Na szczęście narzędzie Wireshark może rejestrować przechwytywanie na dysku, aby były dostępne do przetwarzania końcowego. Takie podejście pozwala uniknąć ryzyka braku pamięci podczas odtwarzania problemu. Aby uzyskać więcej informacji, zobacz Dane wejściowe, wyjściowe i drukowanie w dokumentacji programu Wireshark.
W poniższym przykładzie skonfigurowano program Wireshark do zapisywania przechwyconych danych na dysku z użyciem wielu plików, przy czym pliki są dzielone po osiągnięciu 100 000 pakietów lub rozmiaru 50 MB.
W narzędziu Wireshark przejdź dopozycji Opcje> i znajdź kartę Dane wyjściowe, a następnie wprowadź nazwę pliku do użycia. Ta konfiguracja powoduje, że program Wireshark będzie utrwalał przechwytywanie w jednym pliku.
Aby włączyć przechwytywanie wielu plików, wybierz pozycję Utwórz nowy plik automatycznie, a następnie wybierz pozycję po 100000 pakietów i po 50 megabajtach. Ta konfiguracja sprawia, że Wireshark tworzy nowy plik, gdy jeden z predykatów jest spełniony. Każdy nowy plik używa tej samej nazwy podstawowej co wprowadzona nazwa pliku i dołącza unikatowy identyfikator.
Jeśli chcesz ograniczyć liczbę plików, które można utworzyć za pomocą narzędzia Wireshark, wybierz Użyj buforu pierścieniowego z plikami X. Ta opcja ogranicza program Wireshark do rejestrowania tylko z określoną liczbą plików. Po osiągnięciu tej liczby plików program Wireshark zaczyna zastępować pliki, począwszy od najstarszego.
Filtr przechwytuje
Czasami nie można ściśle ograniczyć zakresu ruchu przechwytywanego przez narzędzie Wireshark — na przykład jeśli aplikacja komunikuje się z wieloma hostami przy użyciu różnych protokołów. W tym scenariuszu zazwyczaj przy użyciu trwałego przechwytywania, opisanego wcześniej, łatwiej jest przeprowadzić analizę po przechwyceniu sieci. Narzędzie Wireshark obsługuje składnię filtrów do analizy przechwyconych danych. Aby uzyskać więcej informacji, zobacz Praca z przechwytywanymi pakietami w dokumentacji programu Wireshark.
Poniższy przykład ładuje utrwalony plik przechwytywania i stosuje filtr ip.src_host==<IP>.
W narzędziu Wireshark przejdź do Plik > Otwórz i załaduj utrwalone przechwytywanie z lokalizacji pliku użytej wcześniej. Po załadowaniu pliku zostanie wyświetlone dane wejściowe filtru. W danych wejściowych filtru wprowadź ip.src_host==<IP>. Ten filtr ogranicza widok przechwyceń, tak aby pokazywał tylko przechwycenia, w których źródłem jest host o adresie IP <IP>.
Następne kroki
W tym artykule opisano różne narzędzia do diagnozowania problemów z siecią podczas pracy z zestawem Azure SDK dla języka Java. Teraz, gdy znasz scenariusze wysokiego poziomu użycia, możesz rozpocząć eksplorowanie samego zestawu SDK. Aby uzyskać więcej informacji na temat dostępnych interfejsów API, zobacz Azure SDK for Java libraries.