Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Apa yang perlu dilakukan jika kuasa satu pelayan tidak mencukupi untuk memproses semua permintaan, dan pengeluar perisian tidak menyediakan pengimbangan beban? Terdapat banyak pilihan, daripada membeli pengimbang beban kepada mengehadkan bilangan permintaan. Mana satu yang betul mesti ditentukan oleh keadaan, dengan mengambil kira keadaan sedia ada. Dalam artikel ini kami akan memberitahu anda apa yang boleh anda lakukan jika belanjawan anda terhad dan anda mempunyai pelayan percuma.

Sebagai sistem yang diperlukan untuk mengurangkan beban pada salah satu pelayan, kami memilih DLP (sistem pencegahan kebocoran maklumat) daripada InfoWatch. Ciri pelaksanaan adalah penempatan fungsi pengimbang pada salah satu pelayan "tempur".

Salah satu masalah yang kami hadapi ialah ketidakupayaan untuk menggunakan Source NAT (SNAT). Mengapa ini diperlukan dan bagaimana masalah itu diselesaikan, kami akan menerangkan lebih lanjut.

Jadi, pada mulanya rajah logik sistem sedia ada kelihatan seperti ini:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Trafik ICAP, SMTP, peristiwa daripada komputer pengguna telah diproses pada pelayan Traffic Monitor (TM). Pada masa yang sama, pelayan pangkalan data mudah mengatasi beban selepas memproses peristiwa pada TM, tetapi beban pada TM itu sendiri adalah berat. Ini terbukti daripada kemunculan baris gilir mesej pada pelayan Monitor Peranti (DM), serta daripada beban CPU dan memori pada TM.

Pada pandangan pertama, jika kami menambah pelayan TM lain pada skim ini, maka sama ada ICAP atau DM boleh ditukar kepadanya, tetapi kami memutuskan untuk tidak menggunakan kaedah ini, kerana toleransi kesalahan telah dikurangkan.

Penerangan tentang penyelesaian

Dalam proses mencari penyelesaian yang sesuai, kami menyelesaikan perisian percuma terus hidup bersama dengan LVS. Kerana keepalived menyelesaikan masalah mencipta kluster failover dan juga boleh menguruskan pengimbang LVS.

Apa yang kami ingin capai (mengurangkan beban pada TM dan mengekalkan tahap toleransi kesalahan semasa) sepatutnya berfungsi mengikut skema berikut:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Apabila menyemak kefungsian, ternyata pemasangan RedHat tersuai yang dipasang pada pelayan tidak menyokong SNAT. Dalam kes kami, kami merancang untuk menggunakan SNAT untuk memastikan bahawa paket masuk dan respons kepada mereka dihantar dari alamat IP yang sama, jika tidak, kami akan mendapat gambar berikut:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Ini tidak boleh diterima. Sebagai contoh, pelayan proksi, setelah menghantar paket ke alamat IP Maya (VIP), akan mengharapkan respons daripada VIP, tetapi dalam kes ini ia akan datang daripada IP2 untuk sesi yang dihantar ke sandaran. Penyelesaian ditemui: adalah perlu untuk mencipta jadual penghalaan lain pada sandaran dan menyambungkan dua pelayan TM dengan rangkaian berasingan, seperti ditunjukkan di bawah:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Tetapan

Kami akan melaksanakan skim dua pelayan dengan perkhidmatan ICAP, SMTP, TCP 9100 dan pengimbang beban dipasang pada salah satu daripadanya.

Kami mempunyai dua pelayan RHEL6, dari mana repositori standard dan beberapa pakej telah dialih keluar.

Perkhidmatan yang perlu kita seimbangkan:

β€’ ICAP – tcp 1344;

β€’ SMTP – tcp 25.

Perkhidmatan penghantaran trafik dari DM – tcp 9100.

Pertama, kita perlu merancang rangkaian.

Alamat IP maya (VIP):

β€’ IP: 10.20.20.105.

Pelayan TM6_1:

β€’ IP Luaran: 10.20.20.101;

β€’ IP Dalaman: 192.168.1.101.

Pelayan TM6_2:

β€’ IP Luaran: 10.20.20.102;

β€’ IP Dalaman: 192.168.1.102.

Kemudian kami membolehkan penghantaran IP pada dua pelayan TM. Bagaimana untuk melakukan ini diterangkan pada RedHat di sini.

Kami memutuskan pelayan mana yang akan kami miliki adalah yang utama dan yang mana satu akan menjadi sandaran. Biarkan induk menjadi TM6_1, sandaran menjadi TM6_2.

Pada sandaran kami mencipta jadual penghalaan pengimbang baharu dan peraturan penghalaan:

[root@tm6_2 ~]echo 101 balancer >> /etc/iproute2/rt_tables
[root@tm6_2 ~]ip rule add from 192.168.1.102 table balancer
[root@tm6_2 ~]ip route add default via 192.168.1.101 table balancer

Arahan di atas berfungsi sehingga sistem dibut semula. Untuk memastikan bahawa laluan dikekalkan selepas but semula, anda boleh memasukkannya /etc/rc.d/rc.local, tetapi lebih baik melalui fail tetapan /etc/sysconfig/network-scripts/route-eth1 (nota: sintaks berbeza digunakan di sini).

Pasang keepalived pada kedua-dua pelayan TM. Kami menggunakan rpmfind.net sebagai sumber pengedaran:

[root@tm6_1 ~]#yum install https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/keepalived-1.2.13-5.el6_6.x86_64.rpm

Dalam tetapan keepalived, kami menetapkan salah satu pelayan sebagai induk, yang lain sebagai sandaran. Kemudian kami menetapkan VIP dan perkhidmatan untuk pengimbangan beban. Fail tetapan biasanya terletak di sini: /etc/keepalived/keepalived.conf.

Tetapan untuk Pelayan TM1

vrrp_sync_group VG1 { 
   group { 
      VI_1 
   } 
} 
vrrp_instance VI_1 { 
        state MASTER 
        interface eth0 

        lvs_sync_daemon_inteface eth0 
        virtual_router_id 51 
        priority 151 
        advert_int 1 
        authentication { 
                auth_type PASS 
                auth_pass example 
        } 

        virtual_ipaddress { 
                10.20.20.105 
        } 
}

virtual_server 10.20.20.105 1344 {
    delay_loop 6
    lb_algo wrr 
    lb_kind NAT
    protocol TCP

    real_server 192.168.1.101 1344 {
        weight 1
        TCP_CHECK { 
                connect_timeout 3 
            connect_port 1344
        nb_get_retry 3
        delay_before_retry 3
        }
    }

    real_server 192.168.1.102 1344 {
        weight 1
        TCP_CHECK { 
                connect_timeout 3 
            connect_port 1344
        nb_get_retry 3
        delay_before_retry 3
        }
    }
}

virtual_server 10.20.20.105 25 {
    delay_loop 6
    lb_algo wrr 
    lb_kind NAT
    protocol TCP

    real_server 192.168.1.101 25 {
        weight 1
        TCP_CHECK { 
                connect_timeout 3 
            connect_port 25
        nb_get_retry 3
        delay_before_retry 3
        }
    }

    real_server 192.168.1.102 25 {
        weight 1
        TCP_CHECK { 
                connect_timeout 3 
            connect_port 25
        nb_get_retry 3
        delay_before_retry 3
        }
    }
}

virtual_server 10.20.20.105 9100 {
    delay_loop 6
    lb_algo wrr 
    lb_kind NAT
    protocol TCP

    real_server 192.168.1.101 9100 {
        weight 1
        TCP_CHECK { 
                connect_timeout 3 
            connect_port 9100
        nb_get_retry 3
        delay_before_retry 3
        }
    }

    real_server 192.168.1.102 9100 {
        weight 1
        TCP_CHECK { 
                connect_timeout 3 
            connect_port 9100
        nb_get_retry 3
        delay_before_retry 3
        }
    }
}

Tetapan untuk Pelayan TM2

vrrp_sync_group VG1 { 
   group { 
      VI_1 
   } 
} 
vrrp_instance VI_1 { 
        state BACKUP 
        interface eth0 

        lvs_sync_daemon_inteface eth0 
        virtual_router_id 51 
        priority 100 
        advert_int 1 
        authentication { 
                auth_type PASS 
                auth_pass example 
        } 

        virtual_ipaddress { 
                10.20.20.105 
        } 
}

УстанавливаСм Π½Π° master LVS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ сСрвСра Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ балансировщик, Ρ‚. ΠΊ. Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρƒ нас всСго Π΄Π²Π° сСрвСра.

[root@tm6_1 ~]##yum install https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/ipvsadm-1.26-4.el6.x86_64.rpm

Pengimbang akan diuruskan oleh keepalived, yang telah kami konfigurasikan.

Untuk melengkapkan gambar, mari tambah keepalived ke autostart pada kedua-dua pelayan:

[root@tm6_1 ~]#chkconfig keepalived on

Kesimpulan

Menyemak keputusan

Mari jalankan keepalived pada kedua-dua pelayan:

service keepalived start

Menyemak ketersediaan alamat maya VRRP

Mari pastikan bahawa VIP berada di induk:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Dan tiada VIP pada sandaran:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Menggunakan arahan ping, kami akan menyemak ketersediaan VIP:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Kini anda boleh mematikan master dan menjalankan arahan itu semula ping.

Hasilnya harus tetap sama, dan pada sandaran kita akan melihat VIP:

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Menyemak pengimbangan perkhidmatan

Mari kita ambil SMTP sebagai contoh. Mari lancarkan dua sambungan ke 10.20.20.105 serentak:

telnet 10.20.20.105 25

Pada master kita harus melihat bahawa kedua-dua sambungan aktif dan disambungkan ke pelayan yang berbeza:

[root@tm6_1 ~]#watch ipvsadm –Ln

Menyediakan pengimbangan beban pada Pemantau Trafik InfoWatch

Oleh itu, kami telah melaksanakan konfigurasi toleransi kesalahan perkhidmatan TM dengan memasang pengimbang pada salah satu pelayan TM. Untuk sistem kami, ini mengurangkan separuh beban pada TM, yang memungkinkan untuk menyelesaikan masalah kekurangan penskalaan mendatar menggunakan sistem.

Dalam kebanyakan kes, penyelesaian ini dilaksanakan dengan cepat dan tanpa kos tambahan, tetapi kadangkala terdapat beberapa had dan kesukaran dalam konfigurasi, sebagai contoh, apabila mengimbangi trafik UDP.

Sumber: www.habr.com

Tambah komen