Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Bagaimana untuk mengkonfigurasi pemantauan pengimbang beban yang tersedia pada Linux

Bagaimana untuk mengkonfigurasi pemantauan pengimbang beban yang tersedia pada Linux

王林
Lepaskan: 2023-07-06 23:37:38
asal
1266 orang telah melayarinya

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.

  1. Memasang dan Mengkonfigurasi Pengimbang Beban

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
Salin selepas log masuk

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
        }
}
Salin selepas log masuk

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.

  1. Konfigurasikan pemantauan pengimbang beban

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
Salin selepas log masuk

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()
Salin selepas log masuk

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.

  1. Sediakan skrip pemantauan secara automatik

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
Salin selepas log masuk

Dalam editor tugas cron yang terbuka, tambahkan yang berikut:

*/5 * * * * /usr/bin/python /path/to/check_lb.py
Salin selepas log masuk

Konfigurasi di atas akan menjalankan skrip pemantauan setiap 5 minit. Selang masa ini boleh diubah suai mengikut keperluan sebenar.

  1. Memantau dan membimbangkan

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('邮件发送失败')
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan