Pemeriksaan kesehatan Network Load Balancer (NLB) memverifikasi bahwa server backend berjalan dengan benar. Kegagalan pemeriksaan kesehatan umumnya menunjukkan adanya masalah pada server backend, meskipun pengaturan pemeriksaan kesehatan yang salah atau konfigurasi server backend juga dapat menyebabkan kegagalan. Topik ini menjelaskan cara memecahkan kegagalan tersebut.
Gejala
Status Health Check Status untuk listener suatu instans NLB bernilai Unhealthy.
Penyebab
Jika pemeriksaan kesehatan gagal setelah dikonfigurasi untuk pertama kali, periksa terlebih dahulu konfigurasi pemeriksaan kesehatan. Kegagalan mungkin disebabkan oleh salah satu hal berikut:
-
Parameter pemeriksaan kesehatan tidak tepat
-
Masalah pada port listener
Jika pemeriksaan kesehatan gagal setelah sebelumnya berjalan berhasil, periksa terlebih dahulu server backend. Kegagalan mungkin disebabkan oleh salah satu hal berikut:
-
Masalah perangkat lunak keamanan
-
Konfigurasi rute tidak tepat
-
Beban server backend terlalu tinggi
Solusi
Pemeriksaan kesehatan gagal setelah konfigurasi awal
Penyebab 1: Parameter pemeriksaan kesehatan tidak tepat
Login ke Konsol NLB.
-
Di bilah navigasi atas, pilih wilayah tempat instans NLB dikerahkan.
-
Di panel navigasi kiri, pilih NLB > Server Groups.
-
Di halaman Server Groups, temukan kelompok server untuk instans NLB Anda dan klik Modify Health Check Settings.
-
Di kotak dialog Modify Health Check Settings, verifikasi bahwa parameter pemeriksaan kesehatan sudah benar. Kami merekomendasikan penggunaan parameter pemeriksaan kesehatan bawaan.
Penyebab 2: Masalah pada port listener
Periksa port pemeriksaan kesehatan.
Login ke Konsol NLB.
-
Di bilah navigasi atas, pilih wilayah tempat instans NLB dikerahkan.
-
Di panel navigasi kiri, pilih NLB > Server Groups.
-
Di halaman Server Groups, temukan kelompok server untuk instans NLB Anda dan klik ID kelompok server tersebut.
-
Di halaman detail kelompok server, klik tab Backend Servers untuk melihat dan mencatat port server backend.
-
Di halaman detail kelompok server, klik tab Details. Di bagian Health Check, klik Modify Health Check Settings. Di kotak dialog Modify Health Check Settings, lihat dan catat parameter pemeriksaan kesehatan.
Listener TCP
-
Login ke server backend dan jalankan perintah berikut untuk menguji koneksi ke port pemeriksaan kesehatan:
Untuk informasi cara login ke server backend, lihat Panduan koneksi jarak jauh untuk instance ECS.
telnet [$IP] [$Port]Catatan-
[$IP] adalah alamat IP pribadi server backend.
-
[$Port] adalah port probe untuk pemeriksaan kesehatan kelompok server. Jika port probe spesifik tidak dikonfigurasi, nilai ini secara bawaan menggunakan port server backend.
-
-
Periksa output perintah.
Respons seperti "telnet: connect to address [$IP]: Connection refused", seperti ditunjukkan pada gambar berikut, menunjukkan bahwa koneksi ditolak dan port pemeriksaan kesehatan tidak merespons.

Respons seperti "Connected to [$IP]", seperti ditunjukkan pada gambar berikut, menunjukkan bahwa port pemeriksaan kesehatan pada server backend sedang mendengarkan dengan benar.

Listener UDP
-
Login ke server backend dan jalankan perintah berikut untuk memeriksa status port pemeriksaan kesehatan:
Untuk informasi cara login ke server backend, lihat Panduan koneksi jarak jauh untuk instance ECS.
netstat -anu | grep [$IP]:[$Port]Catatan-
[$IP] adalah alamat IP pribadi server backend.
-
[$Port] adalah port probe untuk pemeriksaan kesehatan kelompok server. Jika port probe spesifik tidak dikonfigurasi, nilai ini secara bawaan menggunakan port server backend.
-
-
Periksa output perintah.
Jika tidak ada entri untuk
[$IP]:[$Port]yang dikembalikan, seperti ditunjukkan pada gambar berikut, port pemeriksaan kesehatan pada server backend tidak merespons.
Jika entri untuk
[$IP]:[$Port]dikembalikan, seperti ditunjukkan pada gambar berikut, port pemeriksaan kesehatan pada server backend sedang mendengarkan dengan benar.
Verifikasi bahwa aplikasi berjalan di server backend dan port-nya sesuai dengan port pemeriksaan kesehatan. Bagian ini menggunakan layanan Nginx sebagai contoh.
-
Login ke server backend yang tidak sehat dan jalankan perintah berikut untuk memeriksa status layanan Nginx:
systemctl status nginx -
Respons seperti di bawah ini menunjukkan bahwa layanan tidak berjalan.

-
Jalankan perintah berikut untuk memulai layanan Nginx:
systemctl start nginx -
Kemudian, jalankan perintah berikut untuk memeriksa kembali status layanan Nginx:
systemctl status nginxRespons seperti di bawah ini menunjukkan bahwa layanan sedang berjalan.

-
Login ke Konsol Network Load Balancer (NLB) dan lakukan langkah-langkah berikut:
-
Di panel navigasi kiri, pilih .
-
Di halaman Server Groups, temukan kelompok server target dan klik Modify Health Check Settings di kolom Actions.
-
Di kotak dialog Modify Health Check Settings, periksa port pemeriksaan kesehatan
[$Port].
-
Periksa apakah pemeriksaan kesehatan sudah normal. Jika belum, jalankan perintah berikut untuk memeriksa port pendengar layanan Nginx.
netstat -tanp |grep nginx
-
-
Jika output seperti berikut, port pendengar tidak sesuai dengan nilai
[$Port].
Edit file
/etc/nginx/nginx.conf, cari dan ubah nilailistenmenjadi[$Port], lalu simpan dan keluar.CatatanJika Anda tidak dapat mengubah nilai
listen, Anda dapat mengubah port pemeriksaan kesehatan sebagai gantinya. Untuk informasi selengkapnya, lihat Listener NLB.
-
Jalankan perintah berikut untuk me-restart layanan Nginx. Tunggu beberapa saat, lalu pastikan pemeriksaan kesehatan sudah normal.
systemctl restart nginx
Pemeriksaan kesehatan gagal setelah sebelumnya berjalan berhasil
Penyebab 1: Masalah perangkat lunak keamanan
Instans NLB berkomunikasi dengan server backend menggunakan blok CIDR VPC-nya. Pastikan perangkat lunak keamanan di server backend Anda—seperti iptables—tidak memblokir trafik dari blok CIDR tersebut. Jika trafik ini diblokir, pemeriksaan kesehatan akan gagal. Bagian ini menggunakan iptables sebagai contoh untuk memeriksa rentang alamat IP yang diblokir.
-
Login ke Konsol Network Load Balancer (NLB) dan lihat alamat IP lokal yang digunakan instans NLB untuk berkomunikasi dengan server backend.

-
Login ke instans server backend yang tidak sehat dan jalankan perintah berikut untuk melihat semua aturan dalam tabel filter:
iptables -nLRespons seperti di bawah ini menunjukkan bahwa server backend menolak permintaan dari alamat IP lokal instans NLB.

-
Jalankan perintah berikut untuk menghapus aturan pemblokiran:
iptables -t filter -D INPUT -s 192.168.20.75 -j DROP # Alamat IP ini hanya untuk tujuan demonstrasi.CatatanGanti alamat IP dalam perintah dengan alamat IP lokal yang digunakan instans NLB Anda.
-
Jalankan perintah berikut untuk memastikan permintaan dari blok CIDR VPC NLB tidak lagi diblokir:
iptables -nL -
Verifikasi bahwa status Health Check Status untuk listener NLB berubah menjadi Healthy.
Penyebab 2: Konfigurasi rute tidak tepat
Konfigurasi rute yang salah di server backend untuk blok CIDR VPC instans NLB dapat mencegah instans NLB menerima respons pemeriksaan kesehatan, sehingga menyebabkan kegagalan. Bagian ini menggunakan perintah route Linux sebagai contoh untuk memeriksa konfigurasi rute.
-
Login ke Konsol Network Load Balancer (NLB) dan lihat alamat IP lokal yang digunakan instans NLB untuk berkomunikasi dengan server backend.

-
Login ke server backend yang tidak sehat dan jalankan perintah berikut untuk memeriksa konfigurasi rute saat ini:
route -nKonfigurasi rute dianggap tidak tepat jika terdapat entri rute di mana Tujuan adalah alamat IP lokal instans NLB, Genmask bernilai 255.255.255.255, dan Gerbang bukan merupakan gerbang bawaan antarmuka jaringan. Gerbang bawaan adalah alamat IP yang tercantum di kolom Gerbang ketika Tujuan bernilai 0.0.0.0.

-
Jalankan perintah berikut untuk menghapus rute yang salah:
ip route del blackhole 192.168.20.75 # Alamat IP ini hanya untuk tujuan demonstrasi.CatatanGanti alamat IP dalam perintah dengan alamat IP lokal yang digunakan instans NLB Anda.
-
Verifikasi bahwa status Health Check Status untuk listener NLB berubah menjadi Healthy.
Penyebab 3: Beban server backend terlalu tinggi
Lihat Memecahkan dan menyelesaikan masalah beban tinggi pada instance Linux untuk menentukan apakah beban server yang tinggi menyebabkan kegagalan.
Referensi
Fitur diagnostik instans NLB juga dapat membantu Anda memecahkan kegagalan pemeriksaan kesehatan.