InfoWatch Traffic Monitorda yuk balansini sozlash

InfoWatch Traffic Monitorda yuk balansini sozlash

Agar bitta serverning kuchi barcha so'rovlarni qayta ishlash uchun etarli bo'lmasa va dasturiy ta'minot ishlab chiqaruvchisi yuk balansini ta'minlamasa nima qilish kerak? Yuk balanslagichni sotib olishdan tortib so'rovlar sonini cheklashgacha ko'p variantlar mavjud. Qaysi biri to'g'ri, mavjud sharoitlarni hisobga olgan holda vaziyatga qarab aniqlanishi kerak. Agar sizning byudjetingiz cheklangan bo'lsa va bepul serveringiz bo'lsa, nima qilishingiz mumkinligini ushbu maqolada aytib beramiz.

Serverlardan biriga yukni kamaytirish kerak bo'lgan tizim sifatida biz InfoWatch-dan DLP (axborot oqishini oldini olish tizimi) ni tanladik. Amalga oshirishning o'ziga xos xususiyati balanslash funktsiyasini "jangovar" serverlardan biriga joylashtirish edi.

Biz duch kelgan muammolardan biri bu Source NAT (SNAT) dan foydalana olmaslik edi. Nima uchun bu kerak edi va muammo qanday hal qilindi, biz batafsilroq tasvirlab beramiz.

Shunday qilib, dastlab mavjud tizimning mantiqiy diagrammasi quyidagicha ko'rinadi:

InfoWatch Traffic Monitorda yuk balansini sozlash

ICAP trafigi, SMTP, foydalanuvchi kompyuterlari hodisalari Traffic Monitor (TM) serverida qayta ishlandi. Shu bilan birga, ma'lumotlar bazasi serveri TMdagi voqealarni qayta ishlagandan so'ng yukni osonlikcha engib chiqdi, ammo TM ning o'zida yuk og'ir edi. Bu Device Monitor (DM) serverida xabarlar navbatining paydo bo'lishidan, shuningdek, TM dagi protsessor va xotira yukidan yaqqol ko'rindi.

Bir qarashda, agar biz ushbu sxemaga boshqa TM-serverni qo'shsak, u holda ICAP yoki DM-ni unga o'tkazish mumkin edi, ammo biz bu usuldan foydalanmaslikka qaror qildik, chunki nosozlikka chidamlilik pasaygan.

Yechim tavsifi

Tegishli echimni izlash jarayonida biz erkin tarqatilgan dasturiy ta'minotga qaror qildik saqlanib qolgan bilan birga LVS. Chunki keepalived muvaffaqiyatsiz klaster yaratish muammosini hal qiladi va LVS balanslagichini ham boshqarishi mumkin.

Biz erishmoqchi bo'lgan narsa (TM ga yukni kamaytirish va nosozliklarga chidamlilik darajasini saqlab qolish) quyidagi sxema bo'yicha ishlashi kerak edi:

InfoWatch Traffic Monitorda yuk balansini sozlash

Funktsionallikni tekshirishda serverlarda o'rnatilgan maxsus RedHat yig'ilishi SNAT-ni qo'llab-quvvatlamasligi ma'lum bo'ldi. Bizning holatda, biz kiruvchi paketlar va ularga javoblar bir xil IP manzildan yuborilishini ta'minlash uchun SNAT-dan foydalanishni rejalashtirgan edik, aks holda biz quyidagi rasmni olamiz:

InfoWatch Traffic Monitorda yuk balansini sozlash

Bu qabul qilinishi mumkin emas. Masalan, virtual IP (VIP) manziliga paketlarni yuborgan proksi-server VIP-dan javob kutadi, ammo bu holda u IP2-dan zahiraga yuborilgan seanslar uchun keladi. Yechim topildi: zaxirada boshqa marshrutlash jadvalini yaratish va quyida ko'rsatilganidek, ikkita TM serverini alohida tarmoq bilan ulash kerak edi:

InfoWatch Traffic Monitorda yuk balansini sozlash

Sozlamalar

Biz ICAP, SMTP, TCP 9100 xizmatlariga ega ikkita server sxemasini va ulardan birida o'rnatilgan yuk balansini amalga oshiramiz.

Bizda ikkita RHEL6 serveri bor, ulardan standart omborlar va ba'zi paketlar olib tashlangan.

Biz muvozanatlashimiz kerak bo'lgan xizmatlar:

β€’ ICAP – tcp 1344;

β€’ SMTP – tcp 25.

DM - tcp 9100 dan trafikni uzatish xizmati.

Birinchidan, biz tarmoqni rejalashtirishimiz kerak.

Virtual IP manzil (VIP):

β€’ IP: 10.20.20.105.

Server TM6_1:

β€’ Tashqi IP: 10.20.20.101;

β€’ Ichki IP: 192.168.1.101.

Server TM6_2:

β€’ Tashqi IP: 10.20.20.102;

β€’ Ichki IP: 192.168.1.102.

Keyin ikkita TM serverida IP-ni yo'naltirishni yoqamiz. Buni qanday qilish RedHat-da tasvirlangan shu yerda.

Biz serverlardan qaysi biri asosiy va qaysi biri zaxira bo'lishini hal qilamiz. Master TM6_1, zaxira TM6_2 boβ€˜lsin.

Zaxirada biz yangi balanslashtiruvchi marshrutlash jadvalini va marshrutlash qoidalarini yaratamiz:

[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

Yuqoridagi buyruqlar tizim qayta ishga tushirilgunga qadar ishlaydi. Qayta ishga tushirilgandan so'ng marshrutlar saqlanib qolishiga ishonch hosil qilish uchun ularni kiritishingiz mumkin /etc/rc.d/rc.local, lekin sozlamalar fayli orqali yaxshiroq /etc/sysconfig/network-scripts/route-eth1 (eslatma: bu erda turli sintaksis qo'llaniladi).

Keepalived-ni ikkala TM serveriga o'rnating. Biz tarqatish manbai sifatida rpmfind.net dan foydalandik:

[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

Saqlash sozlamalarida biz serverlardan birini master, ikkinchisini zaxira sifatida tayinlaymiz. Keyin yuklarni muvozanatlash uchun VIP va xizmatlarni o'rnatamiz. Sozlamalar fayli odatda bu erda joylashgan: /etc/keepalived/keepalived.conf.

TM1 Server sozlamalari

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
        }
    }
}

TM2 Server sozlamalari

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 
        } 
}

Biz magistralga LVSni o'rnatamiz, bu esa trafikni muvozanatlashtiradi. Ikkinchi server uchun balanserni o'rnatishning ma'nosi yo'q, chunki bizda konfiguratsiyada faqat ikkita server mavjud.

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

Balanslashtiruvchi biz allaqachon sozlagan keepalived tomonidan boshqariladi.

Rasmni yakunlash uchun ikkala serverda avtomatik ishga tushirishga keepalived qo'shamiz:

[root@tm6_1 ~]#chkconfig keepalived on

xulosa

Natijalarni tekshirish

Keling, ikkala serverda keepalived ishga tushamiz:

service keepalived start

VRRP virtual manzili mavjudligini tekshirish

Keling, VIP masterda ekanligiga ishonch hosil qilaylik:

InfoWatch Traffic Monitorda yuk balansini sozlash

Va zaxirada VIP yo'q:

InfoWatch Traffic Monitorda yuk balansini sozlash

Ping buyrug'idan foydalanib, biz VIP mavjudligini tekshiramiz:

InfoWatch Traffic Monitorda yuk balansini sozlash

Endi siz masterni o'chirib, buyruqni qayta ishga tushirishingiz mumkin ping.

Natija bir xil bo'lishi kerak va zaxirada biz VIP-ni ko'ramiz:

InfoWatch Traffic Monitorda yuk balansini sozlash

Xizmat balansini tekshirish

Masalan, SMTP ni olaylik. 10.20.20.105 ga bir vaqtning o'zida ikkita ulanishni ishga tushiramiz:

telnet 10.20.20.105 25

Master-da ikkala ulanish ham faol va turli serverlarga ulanganligini ko'rishimiz kerak:

[root@tm6_1 ~]#watch ipvsadm –Ln

InfoWatch Traffic Monitorda yuk balansini sozlash

Shunday qilib, biz TM serverlaridan birida muvozanatlashtiruvchini o'rnatish orqali TM xizmatlarining xatoga chidamli konfiguratsiyasini amalga oshirdik. Bizning tizimimiz uchun bu TM ga yukni ikki baravar kamaytirdi, bu tizim yordamida gorizontal o'lchov etishmasligi muammosini hal qilishga imkon berdi.

Ko'pgina hollarda, bu yechim tez va qo'shimcha xarajatlarsiz amalga oshiriladi, lekin ba'zida konfiguratsiyada bir qator cheklovlar va qiyinchiliklar mavjud, masalan, UDP trafigini muvozanatlashda.

Manba: www.habr.com

a Izoh qo'shish