Monitorujeme z balanceru služby
Administrace Exchange serveru - 41. část
Nastavení monitoringu dostupnosti serverů na balanceru    

A máme tu poslední část nastavení load balanceru. Nejdřív jsme udělali jednoduchý balancer pro dva servery. Pak jsme z něj udělali cluster, abychom nepřišli o služby v případě, že nám jeden balancer nefunguje. A teď si nastavíme, jak kontrolovat, jestli na Exchange serverech běží služby a máme tam teda z balanceru posílat vůbec požadavky. Protože asi nemá smysl, chtít se připojovat na server, na kterém neběží IIS.

Budeme kontrolovat pouze to jestli nám odpoví služba. A to pouze IIS a SMTP. Dělá se to pomocí scriptů, kterými se pokouším připojit a kontroluju, jestli se ozvalo, co mělo. Tahle část howto byla nejtěžší protože jednak nejsem programátor a napsat něco v linuxu je pro mě už úplně scifi. Takže uvedené příklady rozhodně neberte jako něco, co byste měli nasazovat ve firmě. Je to spíš takový příklad, jak to asi funguje.

Začneme u IIS. Budeme se připojovat k OWA, protože tam máme zapnutou form based authentizaci, tedy se nám po připojení vrací nějaký webový formulář a my víme, co na něm asi je. Proto víme, co hledat. Takže buď se připojte na konzoli vašeho linuxu nebo si stáhněte putty a připojte se pomocí SSH. Pak si vytvoříme soubor owa_check.sh, který umístíme do /etc/sysconfig/ha/. Na tom umístění až tak nesejde, ale chci mít všechny věci, které se týkají balanceru pohromadě a v tomhle adresáří je umístěna konfigurace. Script bude vypadat takto:

#!/bin/bash
content=$(wget -q -O - -nc --no-check-certificate https://$1:$2/owa)

if [[ $content == *"Outlook Web App"* ]]; then
echo "OK"
else
echo "FAILURE"
fi
exit 0

Co to vlastně znamená. Programem wget se připojíme na adresu, kterou dostane v proměnné $1 na port $2. Obsah se uloží do proměnné $content. A my v ní pak hledáme text Outlook Web App. Pokud najdeme, vracíme OK, pokud ne, tak vracíme FAILURE. Ještě nastavíme vlastnictví souboru a práva. Opět upozorňuju, že neručím za to, že to takhle musí být nastaveno. Ale mám odzkoušeno, že to funguje. Pošleme následující dva příkazy:

chown root:piranha /etc/sysconfig/ha/owa_check.sh
chmod 754 /etc/sysconfig/ha/owa_check.sh

Než se pustíte do dalšího, tak si script spusťte ručně. Musí vrátit OK. A musíme ho spustit s dvěma parametry. Prvním je IP adresa serveru a druhým port. V mém případě bych teda volal /etc/sysconfig/ha/owa_check.sh 192.168.2.44 443 a /etc/sysconfig/ha/owa_check.sh 192.168.2.46 443. Funguje? Jestli ne, tak vám něco nefunguje a nebo jste se někde překlepli nebo se vám špatně zkopírovaly nějaké znaky. Teď si pustíme piranha-gui v prohlížeči a nastavíme si, že se má script použít. V mém případě teda otevřu http://192.168.2.61:3636 a příhlásím se. Kliknu na virtual servers. Pak zaškrtnu políčko u Exchange-443 a kliknu dole na tlačítko EDIT.
Monitor

Na další obrazovce kliknu na MONITORING SCRIPTS. Dostaneme se do obrazovky, kde napíšeme, jak se má spouštět náš script. Do políčka Sending Program dáme:

/etc/sysconfig/ha/owa_check.sh %h %p

Do políčka Expect dáme:

OK

Bude to vypadat takto:
Monitor

A klikneme na Accept. Teď se vrátíme do linuxové konzole a restartujeme službu pulse.

service pulse restart

Chvíli počkáme a pak se podíváme do logu, jak to dopadlo. Spustíme příkaz:

cat /var/log/messages

Já musím hledat tyto řádky:

Aug 18 16:40:47 localhost nanny[43974]: [ active ] making 192.168.2.46:443 available
Aug 18 16:40:47 localhost nanny[43973]: [ active ] making 192.168.2.44:443 available

To znamená, že je všechno v pořádku a servery běží. Pokud by bylo něco špatně, tak by se tam objevilo něco podobného:

Aug 18 16:40:47 localhost nanny[43999]: Trouble. Received results are not what we expected from (192.168.2.44:443)

Někdy je potřeba chvíli počkat a všechno se chytne, takže příkaz cat /var/log/messages zopakujte a podívejte se, jestli už nejsou servery aktivní. O úspěchu či neúspěchu se taky přesvědčíte ve web gui, pokud kliknete na CONTROL/MONITORING.
Monitor

Pokud vidíte aktivní routy, tak je všechno OK a můžete stejné nastavení udělat pro druhý balancer.

A teď se pustíme do monitorování SMTP. To bude trošku těžší a budeme k tomu potřebovat jeden linuxový nástroj, který nemáme v minimální konfiguraci nainstalovaný. Jmenuje se expect. A kromě něj budeme potřebovat klasický telnet, abychom se mohli připojit na port 25 a otestovat si SMTP spojení. Nainstalujeme je spuštěním příkazů:

yum install expect
yum install telnet

Expect nám umožní, abychom z shellu vytvořili telnetem spojení a mohli posílat příkazy do toho otevřeného spojení podle toho, co se nám vrátí. Budeme potřebovat dva scripty. První se jmenuje smtp_check.sh a bude obsahovat tohle:

/etc/sysconfig/ha/smtp.exp $1 > /tmp/smtp_result.txt

if grep -q "Microsoft ESMTP MAIL Service ready" /tmp/smtp_result.txt
then
echo "OK"
else
echo "FAILED"
fi
rm -f /tmp/smtp_result.txt
exit 0

A druhý se bude jmenovat smtp.exp a bude obsahovat tohle:

#!/usr/bin/expect

spawn telnet [lindex $argv 0] 25

expect "*Microsoft ESMTP MAIL*"
send quit\r
interact

Teď nastavíme oprávnění a vlastnictví k souborům:

chown root:piranha /etc/sysconfig/ha/smtp*
chmod 754 /etc/sysconfig/ha/smtp*

A opět si zkusíme spustit script ručně. Tentokrát jen s jedním parametrem, protože port 25 tam mám natvrdo. Budeme spouštět /etc/sysconfig/ha/smtp_check.sh 192.168.2.44 a /etc/sysconfig/ha/smtp_check.sh 192.168.2.46. Musí vrátit OK. Pokud ne, tak si zkuste přímo telnet na port 25 a pošlete si mail ručně. Tam se nejlíp projeví chyba. No a zbytek už je stejný jako v předchozím případě. Otevřete web gui piranhy, najdete monitoring pro SMTP, napíšete cestu ke scriptu a parametr. Napíšete, jakou očekáváte odpověď.
Monitor

Restartujete službu pulse a zkontrolujete /var/log/messages. A samozřejmě můžeme zkontrolovat, jak to vypadá ve web gui, jestli jsou routy vytvořeny.
Monitor

A podobným způsobem můžete monitorovat cokoliv, pokud víte, co máte očekávat a umíte to zpracovat.


Další články o load balanceru:

Poslední aktualizace - Pondělí, 19. Srpna 2013 10:55
 
 
 
Page 1 of 1
© TNX alias Jan Kovář. Původní design stránky byl určen pro CMS Joomla! a vytvořen společností Siteground web hosting