Delen via


Netwerkproblemen oplossen

In dit artikel worden enkele hulpprogramma's beschreven waarmee netwerkproblemen van verschillende complexiteiten kunnen worden vastgesteld. Deze problemen omvatten scenario's die variëren van het oplossen van een onverwachte reactiewaarde van een service tot het veroorzaken van een verbindingsondersluitingsuitzondering.

Voor probleemoplossing aan de clientzijde bieden de Azure-clientbibliotheken voor Java een consistent en robuust logboekregistratieverhaal, zoals beschreven in Logboekregistratie configureren in de Azure SDK voor Java. De clientbibliotheken voeren echter netwerkaanroepen uit via verschillende protocollen, wat kan leiden tot probleemoplossingsscenario's die buiten het opgegeven bereik voor probleemoplossing vallen. Wanneer deze problemen optreden, is de oplossing om de externe hulpprogramma's te gebruiken die in dit artikel worden beschreven om netwerkproblemen te diagnosticeren.

Fiddler

Fiddler is een HTTP-foutopsporingsproxy waarmee aanvragen en antwoorden die via deze proxy worden doorgegeven, als zodanig worden geregistreerd. De onbewerkte aanvragen en antwoorden die u vastlegt, kunnen u helpen bij het oplossen van problemen met scenario's waarbij de service een onverwachte aanvraag ontvangt of de client een onverwacht antwoord ontvangt. Als u Fiddler wilt gebruiken, moet u de clientbibliotheek configureren met een HTTP-proxy. Als u HTTPS gebruikt, hebt u extra configuratie nodig om de ontsleutelde aanvraag- en antwoordteksten te inspecteren.

Een HTTP-proxy toevoegen

Als u een HTTP-proxy wilt toevoegen, volgt u de richtlijnen in Proxy's configureren in de Azure SDK voor Java. Zorg ervoor dat u het standaardAdres van localhost Fiddler op poort 8888 gebruikt.

HTTPS-ontsleuteling inschakelen

Standaard kan Fiddler alleen HTTP-verkeer vastleggen. Als uw toepassing HTTPS gebruikt, moet u extra stappen uitvoeren om het certificaat van Fiddler te vertrouwen zodat het HTTPS-verkeer kan worden vastgelegd. Zie het HTTPS-menu in de Fiddler-documentatie voor meer informatie.

In de volgende stappen ziet u hoe u de Java Runtime Environment (JRE) gebruikt om het certificaat te vertrouwen. Als het certificaat niet wordt vertrouwd, kan een HTTPS-aanvraag via Fiddler mislukken met beveiligingswaarschuwingen.

  1. Exporteer het certificaat van Fiddler.

  2. Zoek het sleuteltool van JRE (meestal in jre/bin).

  3. Zoek het cacert van de JRE (meestal in jre/lib/security).

  4. Open een Bash-venster en gebruik de volgende opdracht om het certificaat te importeren:

    sudo keytool -import -file <location-of-Fiddler-certificate> -keystore <location-of-cacert> -alias Fiddler
    
  5. Voer een wachtwoord in.

  6. Vertrouw het certificaat.

Wireshark

Wireshark is een netwerkprotocolanalyse waarmee netwerkverkeer kan worden vastgelegd zonder dat er wijzigingen in de toepassingscode nodig zijn. Wireshark is zeer configureerbaar en kan breed tot specifiek netwerkverkeer op laag niveau vastleggen. Deze mogelijkheid is handig voor scenario's voor probleemoplossing, zoals het sluiten van een verbinding op een externe host of het sluiten van verbindingen tijdens een bewerking. De Wireshark-GUI geeft opnamen weer met behulp van een kleurenschema dat unieke capture cases identificeert, zoals een TCP-hertransmissie, RST, enzovoort. U kunt ook captures filteren op het moment van vastleggen of tijdens de analyse.

Een capture-filter configureren

Capture-filters verminderen het aantal netwerkoproepen dat voor analyse wordt vastgelegd. Zonder opnamefilters legt Wireshark al het verkeer vast dat via een netwerkinterface gaat. Dit gedrag kan enorme hoeveelheden gegevens produceren, waarbij het grootste deel hiervan ruis kan zijn voor het onderzoek. Met behulp van een capture-filter kunt u het netwerkverkeer dat wordt vastgelegd, preventief instellen om een onderzoek te helpen bereiken. Zie Captureing Live Network Data in de Wireshark-documentatie voor meer informatie.

In het volgende voorbeeld wordt een opnamefilter toegevoegd om netwerkverkeer vast te leggen dat wordt verzonden naar of ontvangen van een specifieke host.

Navigeer in Wireshark naar Capture Capture > Filters... en voeg een nieuw filter toe met de waarde host <host-IP-or-hostname>. Met dit filter wordt alleen verkeer van en naar die host vastgelegd. Als de toepassing communiceert met meerdere hosts, kunt u meerdere opnamefilters toevoegen of kunt u het ip-adres/hostnaam van de host toevoegen met de operator OR om een losser opnamefilter te bieden.

Vastleggen op schijf

Mogelijk moet u een toepassing lange tijd uitvoeren om een onverwachte netwerkonderzondering te reproduceren en om het verkeer te zien dat ertoe leidt. Bovendien is het mogelijk niet mogelijk om alle opnamen in het geheugen te onderhouden. Gelukkig kan Wireshark vastleggen op schijf vastleggen, zodat ze beschikbaar zijn voor naverwerking. Deze aanpak voorkomt het risico dat er onvoldoende geheugen beschikbaar is terwijl u een probleem reproduceert. Zie Bestandsinvoer, uitvoer en afdrukken in de Wireshark-documentatie voor meer informatie.

In het volgende voorbeeld wordt Wireshark ingesteld om opnamen op schijf te behouden met meerdere bestanden, waarbij de bestanden worden gesplitst op 100.000 opnamen of 50 MB.

Ga in Wireshark naar Opties voor vastleggen> en zoek het tabblad Uitvoer en voer een bestandsnaam in die u wilt gebruiken. Deze configuratie zorgt ervoor dat Wireshark vastleggen in één bestand.

Als u vastleggen naar meerdere bestanden wilt inschakelen, selecteert u automatisch een nieuw bestand maken en selecteert u vervolgens na 100000 pakketten en na 50 megabytes. Deze configuratie heeft Wireshark een nieuw bestand gemaakt wanneer een van de predicaten overeenkomt. Elk nieuw bestand gebruikt dezelfde basisnaam als de ingevoerde bestandsnaam en voegt een unieke id toe.

Als u het aantal bestanden wilt beperken dat Wireshark kan maken, selecteert u Een ringbuffer gebruiken met X-bestanden. Met deze optie beperkt u Wireshark tot logboekregistratie met alleen het opgegeven aantal bestanden. Wanneer dat aantal bestanden is bereikt, begint Wireshark met het overschrijven van de bestanden, beginnend met de oudste.

Filteropnamen

Soms kunt u het verkeer dat Wireshark vastlegt, niet nauwkeurig instellen, bijvoorbeeld als uw toepassing communiceert met meerdere hosts met behulp van verschillende protocollen. In dit scenario, over het algemeen met het gebruik van permanente capture die eerder is beschreven, is het eenvoudiger om analyse uit te voeren na het vastleggen van het netwerk. Wireshark ondersteunt filterachtige syntaxis voor het analyseren van captures. Zie Werken met vastgelegde pakketten in de Wireshark-documentatie voor meer informatie.

In het volgende voorbeeld wordt een persistent capture-bestand en filters geladen.ip.src_host==<IP>

Navigeer in Wireshark naar Bestand > openen en laad een permanente opname vanaf de eerder gebruikte bestandslocatie. Nadat het bestand onder de menubalk is geladen, wordt er een filterinvoer weergegeven. Voer in de filterinvoer het volgende in ip.src_host==<IP>. Met dit filter wordt de weergave voor vastleggen beperkt, zodat alleen wordt vastgelegd waar de bron van de host met het IP-adres <IP>was.

Volgende stappen

Dit artikel heeft betrekking op het gebruik van verschillende hulpprogramma's voor het diagnosticeren van netwerkproblemen bij het werken met de Azure SDK voor Java. Nu u bekend bent met de gebruiksscenario's op hoog niveau, kunt u beginnen met het verkennen van de SDK zelf. Zie de Azure SDK voor Java-bibliotheken voor meer informatie over de beschikbare API's.