Korábban már írtam a zabbix proxyról, akinek ez új információ, olvassa el. Még egy Móricka ábrát is mellékeltem a topológiáról:
Mitől más a proxy group?
Tulajdonképpen ez a proxy magas rendelkezésre állása (HA). Van egy másik hozadéka, egyben load balancer funkciót is ellát. A proxy group proxyjai egyenlő arányban kapják meg a monitorozandó klienseket. Amint egy proxy kiesik, a többi másodperceken belül (állítható) átveszi a klienseit, így az esetleges kiesés hatásai minimalizálhatóak.
Sajnos még nagyon kezdetleges a load balancer algoritmusa, így -bár darabszámra- igyekszik egyenlően elosztani a klienseket, de nem veszi figyelembe a kliensekhez kapcsolódó mérések számát. Mutatok erre egy példát:
Fentről lefelé a 3. és 4. proxy tartozik egy csoportba, az egyik 23, a másik 21 hostot figyel. Ez majdnem egyenlő 🙂 Ám az egyik 3499 adatot gyűjt, míg a másik csak 619-et. A zabbix csapata azt ígérte, hogy egy újabb verzióban ezt az algoritmust javítani fogják.
Ez a zabbix 7 egyik újdonsága, ha eddig halogattad a frissítést, itt az ideje, hogy megtedd.
Hogyan működik?
A fenti rajzon látszik, hogy egy proxy alá tartoznak bizonyos gépek. Ám ha a proxy meghibásodik, vagy csak frissítés miatt újraindítod, akkor a szerver vakon lesz addig, amíg újra online lesz a proxy, és még a kiesés idején be nem gyűjtött adatoknak is búcsút inthetsz. Az agentek nem tárolják (sajnos).
Ezt a problémát javítja a proxy group.
A működéséhez minimum 2 proxyt kell beállítanod, valamint az agentekkel is közölni kell, hogy mostantól két vagy több proxy fog velük beszélgetni (passzív agent esetén), vagy egynél több proxy felé küldjék az adatokat (aktív agent esetén).
Így néz ki a képzeletbeli topológiánk, a kisebb telephely két proxyt kap, a nagyobb hármat:
Hogyan kell beállítani?
Feltehetően használsz már zabbix proxyt (ha nem, ezt olvasd el), így nincs más dolgod, csak csinálsz még legalább egyet. Ettől még az új proxy tétlenül fog állni, hiszen nem lesznek kliensei. Menj a webes felület Administration -> proxy groups oldalára. Hozz létre egy proxy groupot, jobb felül a „create proxy group” gombra kattintással:
A név tetszőleges, a rajzon „proxy-group-a” volt az egyik. A minimum maradhat 1, a failover period pedig 10 másodperctől 900 másodpercig bármi lehet.
Most menj az Administration -> proxies oldalra, és a már létező proxykat egyesével nyisd meg. A Proxy group mezőbe kezd el gépelni az imént létrehozott proxyd nevét, amint feldobja a teljes nevet, csak válaszd ki. Állítsd be az IP címét és portját (ezt csak az aktív agentek fogják használni):
Csináld meg ezt a lépést az összes többi proxyval, ami abban a lanban található.
A szemléltetéshez elég két proxy is.
Ez még nem elég, a hostokat is át kell állítani. Azt javaslom, hogy szűrjetek az egyik zóna hostjaira, majd tömegesen át lehet állítani az alul található Mass update gombra kattintással így:
Az Update gombbal mentsük el. És készen is vagyunk! Ha visszamegyünk az Administration -> Proxies oldalra, máris látni fogjuk az eredményt:
Szimuláljunk egy proxy hibát
A példa kedvéért leállítom az egyik proxymat, majd nézzük meg újra a proxies oldalt. 10 másodpercig nem történik semmi, azon kívül, hogy a last seen értéke felmegy 10-ig:
aztán be fog pirosodni a kiesett proxy státusza, és azonnal átkerül az eddig rajta lógó hoszt a másikra:
Ha újra bekapcsolom a kiesett proxyt, akkor már óvatosabb a zabbix, első körben a last seen befrissül:
majd nemsokkal később bezöldül a státusza:
Észrevettétek, hogy hiába online az összes proxy, még se ugrottak vissza rá a kliensek? Erre mondtam, hogy óvatosabb a zabbix, vár pár percet, és akkor újra szétosztja a terhelést:
Mit kell csinálni a zabbix-agentekkel?
Kezdjük a passzív agentekkel. Csak egy paraméter fog változni, mégpedig a Server változó.
Sima proxy vagy szerver esetén a Server változó a proxy vagy szerver ip címét/hoszt nevét fogja tartalmazni.
Pl: Server=labor-zabbix-proxy1
Az új verzióban fel kell sorolni az összes szerver vagy proxy ip címét/hoszt nevét, ahonnan kapcsolatokat kell fogadnia, a példámban két proxy van:
Server=labor-zabbix-proxy1,labor-zabbix-proxy2
A lényeg, hogy vesszővel válaszuk el őket egymástól, szóköz nélkül. Bátrak egy egész tartományt is beállíthatnak, és ha a proxy azon belül van, akkor nem kell egyesével felsorolni:
Pl: Server=192.168.0.0/24
Nem véletlenül használtam a bátrak kifejezést. Ha egy egész tartományt megadsz, akkor bárki azon a tartományon belül le tud kérdezni szinte bármit arról a hostról, az agent simán válaszolni fog mindenkinek. Ez ellen úgy tudsz védekezni, hogy minden agent titkosítottan kommunikáljon a proxykkal, így aki nem ismeri a psk kulcsot, vagy a certeket, az nem tud adatot lekérni az agentektől.
Jöhet az aktív agent beállítása. Egyetlen különbség van, itt nem vesszővel, hanem pontos vesszővel válasszuk el a proxykat:
ServerActive=labor-zabbix-proxy1;labor-zabbix-proxy2