Cara mengkonfigurasi pemantauan pengimbang beban dengan ketersediaan tinggi pada Linux
Dalam seni bina aplikasi Internet moden, pengimbang beban ialah komponen utama yang boleh mengedarkan permintaan akses kepada berbilang pelayan untuk meningkatkan prestasi dan ketersediaan keseluruhan. Walau bagaimanapun, pengimbang beban itu sendiri boleh menjadi satu titik kegagalan dalam sistem. Untuk menyelesaikan masalah ini, kita boleh menggunakan teknologi ketersediaan tinggi untuk memastikan ketersediaan pengimbang beban. Artikel ini akan memperkenalkan cara mengkonfigurasi pemantauan pengimbang beban yang tersedia pada Linux dan memberikan contoh kod yang berkaitan.
Pertama, kita perlu memilih perisian pengimbang beban yang sesuai. Perisian pengimbang beban yang biasa digunakan di Linux termasuk Nginx, HAProxy dan Keepalived. Dalam artikel ini, kami akan menggunakan Keepalived sebagai contoh untuk mengkonfigurasi.
Pasang Keepalived pada Linux menggunakan arahan berikut:
$ sudo apt-get install keepalived
Selepas pemasangan selesai, kami perlu mengkonfigurasi Keepalived untuk mendayakan ketersediaan tinggi. Cipta fail bernama keepalived.conf dalam direktori /etc/keepalived/, dan tambahkan kandungan konfigurasi berikut pada fail:
# 只在主节点上运行 vrrp_script check_http { script "/usr/local/bin/check_http.sh" interval 2 } vrrp_instance VI_1 { state MASTER virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass example } virtual_ipaddress { 10.0.0.1/24 } track_script { check_http } }
Antaranya, check_http.sh ialah skrip tersuai yang digunakan untuk menyemak lokasi pengimbang beban Ketersediaan daripada pelayan bahagian belakang. Skrip boleh ditulis mengikut keperluan sebenar.
Selepas melengkapkan konfigurasi Keepalived, kami boleh menggunakan alat lain untuk memantau status berjalan pengimbang beban. Dalam artikel ini, kami akan menggunakan skrip Python mudah untuk memantau ketersediaan pengimbang beban.
Mula-mula, kita perlu memasang modul permintaan Python:
$ sudo pip install requests
Kemudian, buat skrip Python yang dipanggil check_lb.py dan tambah kod berikut pada fail:
import requests def check_lb(): try: response = requests.get('http://10.0.0.1') if response.status_code == 200: print('负载均衡器正常运行') else: print('负载均衡器故障') except requests.exceptions.RequestException as e: print('负载均衡器故障') if __name__ == '__main__': check_lb()
Dalam kod di atas, kami menggunakan perpustakaan permintaan untuk hantar permintaan HTTP dan semak kod status yang dikembalikan. Jika kod status ialah 200, ini bermakna pengimbang beban berjalan seperti biasa, sebaliknya, ini bermakna pengimbang beban rosak.
Untuk menjadikan skrip pemantauan berjalan dengan kerap, kami boleh menggunakan tugas cron untuk menjalankan skrip dengan kerap. Buka terminal dan masukkan arahan berikut:
$ crontab -e
Dalam editor tugas cron yang terbuka, tambahkan yang berikut:
*/5 * * * * /usr/bin/python /path/to/check_lb.py
Konfigurasi di atas akan menjalankan skrip pemantauan setiap 5 minit. Selang masa ini boleh diubah suai mengikut keperluan sebenar.
Dalam skrip pemantauan, kita boleh mengubah suai fungsi check_lb() dan menambah logik penggera. Contohnya, menghantar e-mel apabila pengimbang beban gagal atau menghantar mesej ke aplikasi mudah alih.
Berikut ialah contoh mudah, coretan kod untuk menghantar e-mel:
import smtplib from email.mime.text import MIMEText def send_email(): sender = 'your_email@example.com' receiver = 'recipient@example.com' subject = '负载均衡器故障' message = '负载均衡器无法访问' msg = MIMEText(message) msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver try: smtp_obj = smtplib.SMTP('localhost') smtp_obj.sendmail(sender, receiver, msg.as_string()) smtp_obj.quit() print('邮件已发送') except smtplib.SMTPException: print('邮件发送失败')
Dalam kod di atas, kami menggunakan perpustakaan smtplib untuk menghantar e-mel. Mula-mula, anda perlu menetapkan alamat e-mel pengirim dan penerima, kemudian buat objek MIMEText, tambah mesej yang dihantar dan tertakluk kepada objek, dan gunakan pelayan SMTP untuk menghantar e-mel.
Dalam fungsi check_lb(), apabila pengimbang beban gagal, fungsi send_email() boleh dipanggil untuk menghantar e-mel penggera.
Ringkasan:
Dalam artikel ini, kami memperkenalkan cara mengkonfigurasi pemantauan pengimbang beban yang tersedia pada Linux. Kami menggunakan Keepalived untuk menyediakan ketersediaan tinggi pengimbang beban dan menggunakan skrip Python dan tugas cron untuk sentiasa memantau status berjalan pengimbang beban. Selain itu, kami menyediakan contoh mudah tentang cara menghantar makluman e-mel apabila pengimbang beban gagal. Dengan langkah ini, anda boleh menyediakan sistem pemantauan dan amaran dengan mudah untuk pengimbang beban anda dan memastikan ketersediaan tinggi untuk aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pemantauan pengimbang beban yang tersedia pada Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!