Řešení potíží se sítěmi
Tento článek popisuje několik nástrojů, které můžou diagnostikovat problémy se sítěmi různých složitostí. Mezi tyto problémy patří scénáře, které se liší od řešení potíží s neočekávanou hodnotou odpovědi ze služby až po kořenovou výjimku způsobující zavřenou připojení.
Pro řešení potíží na straně klienta nabízejí klientské knihovny Azure pro Javu konzistentní a robustní protokolovací scénář, jak je popsáno v tématu Konfigurace protokolování v sadě Azure SDK pro Javu. Klientské knihovny však můžou volat přes různé protokoly, což může vést ke scénářům řešení potíží, které se rozšiřují mimo zadaný rozsah řešení potíží. Pokud k těmto problémům dojde, je řešením použití externích nástrojů popsaných v tomto článku k diagnostice problémů se sítěmi.
Fiddler
Fiddler je proxy pro ladění HTTP, který umožňuje protokolovat požadavky a odpovědi předávané přes něj tak, jak je. Nezpracované požadavky a odpovědi, které zaznamenáte, vám můžou pomoct při řešení potíží se scénáři, kdy služba získá neočekávaný požadavek, nebo klient obdrží neočekávanou odpověď. Pokud chcete používat Fiddler, musíte nakonfigurovat klientskou knihovnu s proxy serverem HTTP. Pokud používáte PROTOKOL HTTPS, potřebujete další konfiguraci ke kontrole dešifrovaných subjektů požadavků a odpovědí.
Přidání proxy serveru HTTP
Pokud chcete přidat proxy server HTTP, postupujte podle pokynů v tématu Konfigurace proxy serverů v sadě Azure SDK pro Javu. Nezapomeňte použít výchozí adresu localhost
fiddleru na portu 8888.
Povolení dešifrování HTTPS
Ve výchozím nastavení může Fiddler zaznamenávat pouze provoz HTTP. Pokud vaše aplikace používá protokol HTTPS, musíte provést další kroky, abyste důvěřovali certifikátu Fiddleru, aby mohl zaznamenávat provoz HTTPS. Další informace najdete v nabídce HTTPS v dokumentaci k Fiddleru.
Následující kroky ukazují, jak pomocí prostředí Java Runtime Environment (JRE) důvěřovat certifikátu. Pokud certifikát není důvěryhodný, může požadavek HTTPS přes Fiddler selhat s upozorněními zabezpečení.
Export certifikátu Fiddleru
Najděte nástroj klíče JRE (obvykle v jre/bin).
Najděte cacert JRE (obvykle v jre/lib/security).
Otevřete okno Bash a pomocí následujícího příkazu naimportujte certifikát:
sudo keytool -import -file <location-of-Fiddler-certificate> -keystore <location-of-cacert> -alias Fiddler
Zadejte heslo.
Důvěřovat certifikátu.
Wireshark
Wireshark je analyzátor síťového protokolu, který dokáže zachytit síťový provoz bez nutnosti změn kódu aplikace. Wireshark je vysoce konfigurovatelný a dokáže zachytit široký až specifický síťový provoz nízké úrovně. Tato funkce je užitečná při řešení potíží se scénáři, jako je například vzdálený hostitel, který zavře připojení nebo když je připojení během operace zavřená. Grafické uživatelské rozhraní Wireshark zobrazí zachytávání pomocí barevného schématu, které identifikuje jedinečné případy zachycení, jako je retransmission tcp, RST atd. Můžete také filtrovat zachytávání v době zachycení nebo během analýzy.
Konfigurace filtru zachycení
Zachytávání filtrů snižuje počet síťových volání zachycených k analýze. Bez filtrů zachycení wireshark zachytává veškerý provoz procházející síťovým rozhraním. Toto chování může vést k obrovskému množství dat, kde většina z nich může být šumem při vyšetřování. Použití filtru zachytávání pomáhá předem určit rozsah zachytávaného síťového provozu, který pomáhá cílit na šetření. Další informace naleznete v tématu Zachycení živých síťových dat v dokumentaci Wireshark.
Následující příklad přidá filtr zachytávání, který zachytí síťový provoz odesílaný do konkrétního hostitele nebo přijatý z konkrétního hostitele.
V Wiresharku přejděte na Capture Capture > Filters... a přidejte nový filtr s hodnotou host <host-IP-or-hostname>
. Tento filtr zaznamenává provoz pouze do a z tohoto hostitele. Pokud aplikace komunikuje s více hostiteli, můžete přidat více filtrů zachycení nebo můžete přidat IP adresu hostitele nebo název hostitele pomocí operátoru OR, který poskytuje volné filtrování zachycení.
Zachytávání na disk
Abyste mohli reprodukovat neočekávanou výjimku sítě, možná budete muset aplikaci spustit dlouho, abyste viděli provoz, který na ni vede. Navíc nemusí být možné udržovat všechny zachytávání v paměti. Wireshark naštěstí může protokolovat zachytávání na disk, aby byly k dispozici pro následné zpracování. Tento přístup zabraňuje riziku nedostatku paměti při reprodukování problému. Další informace naleznete v tématu Vstup, výstup a tisk souboru v dokumentaci Wireshark.
Následující příklad nastaví Wireshark tak, aby zachytával zachytávání na disk s více soubory, kde se soubory rozdělí na 100 tisíc zachycení nebo 50 MB velikosti.
V Wiresharku přejděte na Možnosti zachycení > a najděte kartu Výstup a zadejte název souboru, který chcete použít. Tato konfigurace způsobí, že Wireshark zachytí zachytávání do jednoho souboru.
Pokud chcete povolit zachytávání do více souborů, vyberte Vytvořit nový soubor automaticky a pak vyberte po 1 00000 paketech a po 50 megabajtech. Tato konfigurace obsahuje Wireshark vytvoření nového souboru, když se porovná jeden z predikátů. Každý nový soubor používá stejný základní název jako zadaný název souboru a připojí jedinečný identifikátor.
Pokud chcete omezit počet souborů, které wireshark může vytvořit, vyberte Použít vyrovnávací paměť okruhu se soubory X. Tato možnost omezuje Wireshark na protokolování pouze se zadaným počtem souborů. Po dosažení tohoto počtu souborů začne Wireshark přepisovat soubory od nejstaršího.
Filtrování zachytávání
Někdy nemůžete přesně určit rozsah provozu, který Wireshark zaznamenává – například pokud vaše aplikace komunikuje s více hostiteli pomocí různých protokolů. V tomto scénáři je obecně použití trvalého zachytávání popsaného dříve jednodušší spustit analýzu po zachytávání sítě. Wireshark podporuje syntaxi podobné filtru pro analýzu zachycení. Další informace naleznete v tématu Práce s zachycenými pakety v dokumentaci Wireshark.
Následující příklad načte trvalý zachycený soubor a filtry na ip.src_host==<IP>
.
V Wiresharku přejděte na > Soubor Otevřít a načtěte trvalý zachytávání z umístění souboru použitého dříve. Po načtení souboru pod řádek nabídek se zobrazí vstup filtru. Do vstupu filtru zadejte ip.src_host==<IP>
. Tento filtr omezuje zobrazení zachycení tak, aby zobrazovalo pouze zachytávání, kde byl zdroj z hostitele s IP adresou <IP>
.
Další kroky
Tento článek popisuje použití různých nástrojů k diagnostice problémů se sítěmi při práci se sadou Azure SDK pro Javu. Teď, když znáte scénáře použití vysoké úrovně, můžete začít zkoumat samotnou sadu SDK. Další informace o dostupných rozhraních API najdete v knihovnách Azure SDK pro Javu.