Sdílet prostřednictvím


Ř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é zahrnují řešení potíží s neočekávanou hodnotou odpovědi ze služby až po určení kořenové příčiny výjimky uzavřeného 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 mohou provádět síťová volání přes různé protokoly, což může vést k problémovým scénářům, které se rozšiřují mimo poskytnutý 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.

Houslista

Fiddler je proxy pro ladění HTTP, který umožňuje protokolovat požadavky a odpovědi předávané prostřednictvím protokolu as-is. 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 fiddleru localhost 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 části HTTPS Menu 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 bezpečnostními varováními.

  1. Export certifikátu Fiddleru

  2. Najděte nástroj keytool JRE (obvykle v jre/bin).

  3. Vyhledejte cacert JRE (obvykle v jre/lib/security).

  4. 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
    
  5. Zadejte heslo.

  6. Důvěřovat certifikátu.

Wireshark

Wireshark je analyzátor síťového protokolu, který dokáže zaznamenávat 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ávací filtry snižují počet síťových volání, která jsou zachycena pro analýzu. 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 najdete v tématu Zachytávání živých síťových dat v dokumentaci k Wiresharku.

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 Wireshark 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

Aby se vám podařilo reprodukovat neočekávanou výjimku sítě, možná budete muset aplikaci dlouhodobě spouštět, abyste viděli provoz, který k ní směřuje. 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 najdete v tématu Vstup, Výstup a Tisk v dokumentaci k Wiresharku.

Následující příklad nastaví Wireshark tak, aby ukládal zachycení na disk do více souborů, kde se soubory rozdělí po 100 000 zachyceních nebo 50 MB.

V Wireshark přejděte na Capture > Options a najděte kartu Výstup a zadejte název souboru, který chcete použít. Tato konfigurace nastaví Wireshark, aby ukládal záznamy do jednoho souboru.

Pokud chcete povolit zachytávání do více souborů, vyberte Vytvořit nový soubor automaticky a potom vyberte po 1 00000 paketech a po 50 megabajtech. Tato konfigurace umožňuje Wiresharku vytvořit nový soubor, když je splněn 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.

Zachytávání filtrem

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 po použití dříve popsaného trvalého zachytávání obecně jednodušší spustit analýzu po zachycení sítě. Wireshark podporuje syntaxi podobné filtru pro analýzu zachycení. Další informace najdete v tématu Práce s zachycenými pakety v dokumentaci k Wiresharku.

Následující příklad načte uložený soubor záznamu a aplikuje filtr na ip.src_host==<IP>.

Ve Wiresharku přejděte na Soubor > Otevřít a načtěte trvalý záznam z dříve použitého umístění souboru. Po načtení souboru se pod řádkem nabídek zobrazí vstupní pole pro filtr. Do vstupu filtru zadejte ip.src_host==<IP>. Tento filtr omezuje zobrazení záznamů tak, aby zobrazovalo pouze zachycení, kde je zdroj z hostitele s IP <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 azure SDK pro knihovny Java.