Bazirao sam ovaj howto na SUSE Linux Enterprise Server 10 SP1 operativnom sistemu mada će ovaj setup raditi na bilo kojoj Linux distribuciji.
Prvo što je potrebno uraditi je instalirati mon.
To radite na sledeći način:
# yast2 -i mon
Nakon toga prelazimo na podešavanje mon-a. Na ovom primeru ću pokazati kako podesiti mon da radi monitoring Postfix-a (SMTP).
Konfiguracija na SLES-u se nalazi u direktorijumu /etc/mon/mon.cf:
Code:
cfbasedir = /etc/mon
alertdir = /usr/lib/mon/alert.d
mondir = /usr/lib/mon/mon.d
statedir = /var/lib/mon
logdir = /var/log
maxprocs = 20
histlength = 100
randstart = 60s
historicfile = monitor.log
authtype = getpwnam
dtlogging = yes
hostgroup serveri node01
watch serveri
service smtp
interval 30s
monitor smtp.monitor -p 25
period wd {Mon-Sun}
alert postfix.alert
cfbasedir = /etc/mon
alertdir = /usr/lib/mon/alert.d
mondir = /usr/lib/mon/mon.d
statedir = /var/lib/mon
logdir = /var/log
maxprocs = 20
histlength = 100
randstart = 60s
historicfile = monitor.log
authtype = getpwnam
dtlogging = yes
hostgroup serveri node01
watch serveri
service smtp
interval 30s
monitor smtp.monitor -p 25
period wd {Mon-Sun}
alert postfix.alert
Ovde vidimo da je mon podešen tako da radi proveru SMTP na svakih 30 sekundi. Ako primeti da je port 25 zatvoren tj. da ne može da dobije nikakav odziv mon će pokrenuti skriptu koja se zove postfix.alert. Možete je nazvati kako god želite jedino je važno da se ona nalazi u folderu /usr/lib/mon/alert.d.
Sadržaj postfix.alert je sledeći:
Code:
#!/bin/bash
/etc/init.d/postfix stop >> /dev/null
sleep 5s
/etc/init.d/postfix start >> /dev/null
#!/bin/bash
/etc/init.d/postfix stop >> /dev/null
sleep 5s
/etc/init.d/postfix start >> /dev/null
Kada to završite pokrenite mon:
# /etc/init.d/mon start
Testiranje vršite na sledeći način.
Stopirajte postfix:
# /etc/init.d/postfix stop
Nakon toga probajte da se telnetujete na port 25 kako bi utvrdili da je nedostupan:
Kada prođe period od 30 sekundi koliko je podešeno mon će pokrenuti svoju skriptu za proveru koja se zove smtp.monitor. Skripta će proveriti da li je port 25 dostupan, ako ustanovi da nije mon će pokrenuće postfix.alert skriptu koja će ponovo pokrenuti Postfix. Nakon toga možete proveriti da li je port 25 aktivan ili ne. Videćete da jeste.
Ovo je najjednostavniji primer kako možete iskoristiti mon za nadgledanje kritičnih servisa.
Pozdrav!
update: Sitna izmena u tekstu. Hvala kolegama na sugestijama.
[Ovu poruku je menjao Miroslav Strugarevic dana 14.11.2007. u 13:47 GMT+1]