Potreboval jsem na svem domacim serveru s Ubuntu monitorovat stav ssh, vyuziti CPU, RAM a spoustu dalsich veci. Po chvily googleni jsem nasel monit. Sice si snim hraju jenom chvily, ale vypada velice zajimave. Nejlepsi je, ze v pripade havarie spusti nebo zastavi dany program a posle e-mailem upozorneni.
Nema cenu, abych psal vycet vsech funkci. Nasledujici text je prevzat z webu debian.org:
Instalaci provedete prikazem apt-get install monit . Hlavni konfiguracni soubor se nachazi v /etc/monit/monitrc . Je dobre nejdrive provest zalohu: cp /etc/monit/monitrc /etc/monit/monitrc_ZAL .
Konfiguracni soubor je velci dobre okomentovany, tudiz by nikomu nemelo nastaveni cinit zadne vetsi problemy. Na ukazku uvedu svuj /etc/monit/monitrc :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
set daemon 120 set idfile /var/run/monit.id set statefile /var/run/monit.state set mailserver localhost # adresa SMTP serveru, ja mam na serveru <a href="http://www.postfix.org/">postfix</a>, takze localhost set eventqueue basedir /var/monit slots 100 set mail-format { from: monit@eu.vancl.eu } # odesilatel e-mailu bude mit zde uvedenou adresu set alert tux.martin@gmail.com # mail s upozornenim se posle na tuto adresu set httpd port 2812 and # vestavene webove rozhrani (slouzi ke kontrole) allow localhost # povoli pristup z localhostu allow 192.168.1.0/255.255.255.0 # a z mistni site allow admin:monit # vyzaduje uzivatelske jmeno 'admin' a heslo 'monit' pro pristup check system localhost # hlida aktualni pocitac (localhost) if loadavg (5min) > 4 then alert # kdyz je load average behem 5 minut vetsi nez 4, posle mail if memory usage > 85% then alert # kdyz je vyuziti RAM vetsi nez 85%, posle mail s upozornenim if cpu usage (user) > 95% then alert check process apache2 with pidfile /var/run/apache2.pid # hlida webovy server apache2 podle PID start program = "/etc/init.d/apache2 start" with timeout 60 seconds # prikaz na spusteni apache stop program = "/etc/init.d/apache2 stop" if cpu > 90% for 5 cycles then alert if totalmem > 200.0 MB for 5 cycles then restart # kdyz apache spostrebuje vic jak 200MB RAM, monit ho restartuje if children > 250 then restart check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/ssh start" stop program "/etc/init.d/ssh stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout |
V pripade prekroceni povolenych limitu prijde nasledujici e-mail:
Jakmile uz neni limit prekroceny, uzivatel dostane opet upozorneni:
Vestavene webove rozhrani je graficky velice jednoduche, ale funkcni:
jde pres nej take jednotlive sluzby spustit, zastavit, nebo restartovat.
Po nastaveni monit je jeste potreba povolit spousteni v /etc/default/monit jinak to nebude fungovat:
1 2 |
# You must set this variable to for monit to start startup=1 |
Syntaxi konfiguracniho souboru si muzete zkontrolovat prikazem monit -t . Melo by to dopadnou jako u me:
1 2 3 |
root@eu:/# monit -t Control file syntax OK root@eu:/# |
Jedna se o maly jednoduchy program, ktery mohu jedine doporucit.