Hlavní navigace

MONIT - Monitorujte svoje daemony

Milan Gigel

Pomerne dôležité je zabezpečiť na svojich serverov beh určitých daemonov pre poskytovanie žiadaných služieb. Ako však zabezpečiť dohľad nad ich behom a v prípade nežiadaného výpadku uskutočniť automatický štart daemonov? Ako robiť ich monitoring na diaľku a byť informovaný o výpadkoch. Všetky tieto otázky rieši celkom zaujímavý projekt s názvom MONIT.

1. Inštalácia

Domovskú stránku projektu nájdete na adrese www.tildeslash­.com/monit, z ktorej je potrebné stiahnuť si distribučný balík a nasleduje rozbalenie a inštalácia klasickým spôsobom, akým sme zvyknutí:

tar xzvf monit-2.1.1.tar.gz
cd monit-2.1.1
./configure
make
make install
2. konfigurácia

Nasleduje úprava konfiguračného súboru, ktorého základnú štruktúru nájdete v súbore monitrc.

set daemon  60
set logfile syslog
set mailserver localhost
set httpd port 1230
allow localhost
allow admin:pustimadnu

check apache with pidfile /usr/local/apache/logs/httpd.pid
    start program = "/etc/rc.d/init.d/httpd start"
    stop program  = "/etc/rc.d/init.d/httpd stop"
    port 80   protocol http
    alert admin@domena.sk

check tacacs with pidfile /var/run/tac_plus.pid
    start program = "/etc/rc.d/init.d/tac_plus start"
    stop program  = "/etc/rc.d/init.d/tac_plus stop"
    port 49
    alert admin@domena.sk

Parametrom set daemon určujeme beh v režime daemon s kontrolou behu definovaných daemonov vo frekvencii 60 sekúnd. Voľba logfile určuje typ logovania, v našom prípade je to syslog, môžete však špecifikovať ľubovoľný názov súboru pre ukladanie logových správ. Položka mailserver nastavuje mailový server pre odosielanie notifikačných správ o zistených nezrovnalostiach a realizovaných štartov daemonov. Nakoľko tento monitorovací engine obsahuje aj web rozhranie s celkom zaujímavou informačnou hodnotou, je potrebné špecifikovať port, na ktorom má integrovaný web server bežať a viac ako vhodné je špecifikovať zoznam hostov, pre ktorých je prístup k web rozhraniu povolený a prihlasovacie meno a heslo k službe, nakoľko web interface umožňuje jednotlivé monitorované služby manuálne vypínať.

V ďalšej časti konfiguračného súboru nasleduje definícia jednotlivých kontrolovaných daemonov. Definujeme pid súbor daného procesu, štartovací a ukončovací skript, port na ktorom beží daný daemon aj s možnosťou definície pluginu pre kontrolu komunikácie, s ktorých máme k dipozícii ftp, smtp, pop, nntp a imap. Pre jeden daemon je možné priradiť aj viacero portov, ako napríklad pre apache 80 a 443. Pre daemony používajúce UDP komunikáciu, ako je napríklad bind, je potrebné definovať port ako port 53 type udp. Poslednou položkou dielčej definície je emailová adresa, na ktorú sa majú zasielať notifikácie k danému daemonu, kde je vhodné použiť bránu na SMS správy na mobilný telefón.

Konfiguráciu máme vytvorenú, môžeme teda prejsť k spusteniu samotného minitoringu.

3. aktivovanie a používanie

Monitoring spustíme nasledovne

monit -c /etc/monit.conf

alebo pomocou priloženého skriptu rc.monit v ./contrib, ktorý je určený pre spúšťanie a ukončovanie v rámci jednotlivých runleveloch a jednoduchú implementáciu do systému. Pre hľadanie chýb vám poslúži parameter -v, ktorý vypisuje na konzolu podrobné informácie o činnosti.

Jednoduché web rozhranie je prístupné prostredníctvom ľubovoľného web prehliadača na definovanom hoste a porte. Zobrazenie môže vyzerať nasledovne:

monit proces manager

proces status

Kontrolné súčty, ktoré sú zobrazené pre jednotlivé daemony slúžia na rozpoznanie zmeny, napríklad reinštalácia a podobne pre zamedzenie nechceným reštartom. Ak sa kontrolný súčet zmení, jedntlivý daemon prestane byť monitorovaný do reštartu mechanizmu MONIT.

Jednotlivé kontrolované procesy môžeme teraz prostredníctvom MONITu aktivovať, deaktivovať a reštartovať, a to nasledovne

monit start/stop/restart <daemon>

V prípade, že názov daemonu nie je uvedený, uskutoční sa táto činnosť pre všetky monitorované daemony. Pre výpis aktuálneho stavu poslúži

monit status

a pre manuálnu kontrolu ich behu

monit validate

Ako vidíte, jedná sa skutočne o jednoduchý nástroj, ktorého jednoduchá implementácia zjednoduší správu systému a v kombinácii monitoringu s ovládaním v prípade nečakaného výpadku zabezpečí nápravu, či už reštartom daného daemonu, alebo spustením jeho náhrady.

Našli jste v článku chybu?