Bagikan melalui


Memecahkan masalah jaringan

Artikel ini menjelaskan beberapa alat yang dapat mendiagnosis masalah jaringan dari berbagai kompleksitas. Masalah ini mencakup skenario yang berkisar dari pemecahan masalah nilai respons tak terduga dari layanan, hingga menemukan akar penyebab dari pengecualian koneksi tertutup.

Untuk pemecahan masalah di sisi klien, pustaka klien Azure Java menawarkan pengalaman pencatatan log yang konsisten dan kuat, seperti yang dijelaskan dalam Mengonfigurasi pencatatan log di Azure SDK untuk Java. Namun, pustaka klien mengakses jaringan melalui berbagai protokol, yang dapat menyebabkan skenario pemecahan masalah yang melampaui cakupan yang disediakan. Ketika masalah ini terjadi, solusinya adalah menggunakan alat eksternal yang dijelaskan dalam artikel ini untuk mendiagnosis masalah jaringan.

Pemain biola

Fiddler adalah proksi penelusuran kesalahan HTTP yang memungkinkan permintaan dan respons yang melewatinya dapat dicatat as-is. Permintaan mentah dan respons yang Anda ambil dapat membantu Anda memecahkan masalah skenario di mana layanan mendapatkan permintaan yang tidak terduga, atau klien menerima respons yang tidak terduga. Untuk menggunakan Fiddler, Anda perlu mengonfigurasi pustaka klien dengan proksi HTTP. Jika Anda menggunakan HTTPS, Anda memerlukan konfigurasi tambahan untuk memeriksa isi permintaan dan respons yang didekripsi.

Menambahkan proksi HTTP

Untuk menambahkan proksi HTTP, ikuti panduan dalam Mengonfigurasi proksi di Azure SDK untuk Java. Pastikan untuk menggunakan alamat Fiddler default localhost pada port 8888.

Aktifkan dekripsi HTTPS

Secara default, Fiddler hanya dapat menangkap lalu lintas HTTP. Jika aplikasi Anda menggunakan HTTPS, Anda harus mengambil langkah tambahan untuk mempercayai sertifikat Fiddler untuk memungkinkannya menangkap lalu lintas HTTPS. Untuk informasi selengkapnya, lihat Menu HTTPS dalam dokumentasi Fiddler.

Langkah-langkah berikut menunjukkan kepada Anda cara menggunakan Java Runtime Environment (JRE) untuk mempercayai sertifikat. Jika sertifikat tidak tepercaya, permintaan HTTPS melalui Fiddler mungkin gagal dengan peringatan keamanan.

  1. Ekspor sertifikat dari Fiddler.

  2. Temukan keytool JRE (biasanya di jre/bin).

  3. Temukan cacert JRE (biasanya dalam jre/lib/security).

  4. Buka jendela Bash dan gunakan perintah berikut untuk mengimpor sertifikat:

    sudo keytool -import -file <location-of-Fiddler-certificate> -keystore <location-of-cacert> -alias Fiddler
    
  5. Masukkan kata sandi.

  6. Percayai sertifikat.

Wireshark

Wireshark adalah penganalisis protokol jaringan yang dapat menangkap lalu lintas jaringan tanpa memerlukan perubahan pada kode aplikasi. Wireshark sangat dapat dikonfigurasi dan dapat menangkap lalu lintas jaringan tingkat rendah yang spesifik. Kemampuan ini berguna untuk skenario pemecahan masalah seperti host jarak jauh yang menutup koneksi atau memiliki koneksi yang ditutup selama operasi. GUI Wireshark menampilkan pengambilan menggunakan skema warna yang mengidentifikasi kasus pengambilan unik, seperti transmisi ulang TCP, RST, dan sebagainya. Anda juga dapat memfilter pengambilan baik pada waktu pengambilan atau selama analisis.

Mengonfigurasi filter penangkapan

Filter penangkapan mengurangi jumlah panggilan jaringan yang tertangkap untuk analisis. Tanpa menangkap filter, Wireshark menangkap semua lalu lintas yang melewati antarmuka jaringan. Perilaku ini dapat menghasilkan sejumlah besar data yang sebagian besar mungkin merupakan gangguan bagi penyelidikan. Menggunakan filter tangkapan membantu menyusun lingkup lalu lintas jaringan yang ditangkap secara proaktif untuk membantu menargetkan penyelidikan. Untuk informasi selengkapnya, lihat mengenai Penangkapan Data Jaringan Langsung dalam dokumentasi Wireshark.

Contoh berikut menambahkan filter pengambilan untuk menangkap lalu lintas jaringan yang dikirim atau diterima dari host tertentu.

Di Wireshark, buka Tangkap > Filter Penangkapan... dan tambahkan filter baru dengan nilai host <host-IP-or-hostname>. Filter ini menangkap lalu lintas hanya ke dan dari host tersebut. Jika aplikasi berkomunikasi dengan beberapa host, Anda dapat menambahkan beberapa filter penangkapan, atau Anda dapat menambahkan IP host/nama host dengan operator 'OR' untuk menyediakan pemfilteran penangkapan yang lebih fleksibel.

Tangkap ke disk

Anda mungkin perlu menjalankan aplikasi untuk waktu yang lama guna mereproduksi kesalahan jaringan yang tidak terduga dan melihat lalu lintas jaringan yang mengarah ke sana. Selain itu, mungkin tidak mungkin untuk mempertahankan semua tangkapan dalam memori. Untungnya, Wireshark dapat mencatat pengambilan ke disk sehingga tersedia untuk pasca-pemrosesan. Pendekatan ini menghindari risiko kehabisan memori saat Anda mereproduksi masalah. Untuk informasi selengkapnya, lihat Input, Output, dan Pencetakan File dalam dokumentasi Wireshark.

Contoh berikut menyiapkan Wireshark untuk menyimpan hasil tangkapan ke disk dengan beberapa file, di mana file dibagi berdasarkan 100k hasil tangkapan atau ukuran 50 MB.

Di Wireshark, navigasikan ke Pengambilan > Opsi dan temukan tab Output, lalu masukkan nama file yang akan digunakan. Konfigurasi ini menyebabkan Wireshark mempertahankan pengambilan ke satu file.

Untuk mengaktifkan pengambilan ke beberapa file, pilih Buat file baru secara otomatis lalu pilih setelah 100000 paket dan setelah 50 megabyte. Konfigurasi ini memiliki Wireshark membuat file baru ketika salah satu predikat cocok. Setiap file baru menggunakan nama dasar yang sama dengan nama file yang dimasukkan dan menambahkan pengidentifikasi unik.

Jika Anda ingin membatasi jumlah file yang dapat dibuat Wireshark, pilih Gunakan buffer cincin dengan file X. Opsi ini membatasi Wireshark untuk pengelogan hanya dengan jumlah file yang ditentukan. Ketika jumlah file tersebut tercapai, Wireshark mulai menimpa file-file tersebut, dimulai dengan yang terlama.

Filter tangkapan

Terkadang Anda tidak dapat dengan ketat mencakup lalu lintas yang ditangkap Wireshark - misalnya, jika aplikasi Anda berkomunikasi dengan beberapa host menggunakan berbagai protokol. Dalam skenario ini, umumnya dengan menggunakan penangkapan persisten yang telah diuraikan sebelumnya, lebih mudah untuk menjalankan analisis setelah menangkap jaringan. Wireshark mendukung sintaks seperti filter untuk menganalisis tangkapan. Untuk informasi selengkapnya, lihat Bekerja dengan Paket yang Ditangkap dalam dokumentasi Wireshark.

Contoh berikut memuat file tangkapan yang disimpan dan menerapkan filter pada ip.src_host==<IP>.

Di Wireshark, pergi ke File > Open dan kemudian muat hasil rekaman yang tersimpan dari lokasi file yang digunakan sebelumnya. Setelah file dimuat di bawah bilah menu, input filter akan muncul. Di input filter, masukkan ip.src_host==<IP>. Filter ini membatasi tampilan pengambilan sehingga hanya menampilkan pengambilan di mana sumbernya berasal dari host dengan IP <IP>.

Langkah berikutnya

Artikel ini membahas penggunaan berbagai alat untuk mendiagnosis masalah jaringan saat bekerja dengan Azure SDK untuk Java. Sekarang setelah Anda terbiasa dengan skenario penggunaan tingkat tinggi, Anda dapat mulai menjelajahi SDK itu sendiri. Untuk informasi selengkapnya tentang API yang tersedia, lihat Azure SDK untuk pustaka Java.