Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Monitorowanie systemu i uruchomionych usług - monit http://forum.freesco.pl/viewtopic.php?f=24&t=8580 |
Strona 1 z 1 |
Autor: | Mis' [ czwartek, 18 sierpnia 2005, 16:32 ] |
Tytuł: | Monitorowanie systemu i uruchomionych usług - monit |
Adres strony domowej: http://www.tildeslash.com/monit/ Gotowe pakiety : http://www.hustons.homechoice.co.uk/nnd ... pkg.tar.gz http://www.hustons.homechoice.co.uk/nnd ... pkg.tar.gz Przeznaczenie: Pakiet monitorujący zadane funkcje systemu i w razie problemów potrafiący wykonac określoną czynność. Monitorowaniu moga podlegać zarówno usługi jak i urządzenia. Możliwość wyświetlania stanu monitorowanych elementów na stronie www. Program posiada własny, wbudowany serwer www działający domyslnie na porcie 2812. W katalogu /usr/share/monit dwa scripty php pozwalające oglądac strony monita serwowane przez zwykły serwer www lub za pomocą przeglądarki wap. Stosunkowo łatwa konfiguracja poprzez edycję pliku /etc/monitrc. Pakiet testowany ostanie dwie godziny więc zupełnie świeży. Zapraszam do testów i dzielenia się swoimi regułkami z pliku konfiguracyjnego. Plik PKGBUILD: # Wersja dla NND: Mis' <michal@doriath.homeip.net> pkgname=monit pkgver=4.5.1 pkgrel=1nnd pkgdesc="Program monitorujący system i usługi." url="http://www.tildeslash.com/monit/" license="GPL2" depends=('glibc' 'openssl') makedepends=('glibc-devel' 'openssl-devel') conflicts=() replaces=() backup=(/etc/monitrc) install=monit.install source=(http://www.tildeslash.com/monit/dist/$pkgname-$pkgver.tar.gz monit) md5sums=('0f054ac39822b4be71789d49e4813754') build() { mkdir -p $startdir/pkg/etc/rc.d mkdir -p $startdir/pkg/usr/share/monit cd $startdir/src/$pkgname-$pkgver ./configure --prefix=/usr make || return 1 make DESTDIR=$startdir/pkg install cp -a $startdir/src/$pkgname-$pkgver/monitrc /$startdir/pkg/etc cp -a $startdir/src/$pkgname-$pkgver/contrib/wap.php $startdir/pkg/usr/share/monit cp -a $startdir/src/$pkgname-$pkgver/contrib/monit.php $startdir/pkg/usr/share/monit cp -a $startdir/src/$pkgname-$pkgver/FAQ.txt $startdir/pkg/usr/share/monit install -m 755 $startdir/src/monit $startdir/pkg/etc/rc.d/monit } Plik monit #! /bin/sh . /etc/rc.d/functions . /etc/rc.conf MONIT=/usr/bin/monit MONITRC=/etc/monitrc [ -f /usr/bin/monit ] || exit 1 PID=`cat /var/run/monit.pid 2>/dev/null` RETVAL=0 start() { stat_busy "Uruchamiam monitorowanie systemu: " [ -z "$PID" ] && /usr/bin/monit -d 300 -c /etc/monitrc -l /var/run/monit.pid 2>/dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then add_daemon monit stat_done else stat_fail fi } stop() { stat_busy "Zatrzymuję monitorowanie systemu: " if [ ! -z "$PID" ]; then /usr/bin/monit -c /etc/monitrc quit 2>/dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then rm_daemon monit stat_done else stat_fail fi else stat_fail fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start RETVAL=$? ;; reload) if [ ! -z $PID ]; then stat_busy "Przeładowuję plik konfiguracyjny monitrc: " /usr/bin/monit -c /etc/monitrc reload 2>/dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then stat_done else stat_fail fi else start fi ;; status) /usr/bin/monit -c /etc/monitrc status RETVAL=$? ;; check_rcfile) stat_busy "Sprawdzam plik konfiguracyjny monitrc:" /usr/bin/monit -t -c /etc/monitrc stat_done ;; *) echo "Usage: $0 {start|stop|restart|reload|status|check_rcfile}" exit 1 esac exit $RETVAL Plik monit.install # arg 1: the new package version pre_install() { # # do pre-install stuff here # /bin/true } # arg 1: the new package version post_install() { # # do post-install stuff here # grep '^DAEMONS' /etc/rc.conf | grep monit >/dev/null [ $? = 0 ] || sed -i '/^DAEMONS=/s/)$/ monit)/' /etc/rc.conf /bin/true } # arg 1: the new package version # arg 2: the old package version pre_upgrade() { # # do pre-upgrade stuff here # /bin/true } # arg 1: the new package version # arg 2: the old package version post_upgrade() { # # do post-upgrade stuff here # grep '^DAEMONS' /etc/rc.conf | grep monit >/dev/null [ $? = 0 ] || sed -i '/^DAEMONS=/s/)$/ monit)/' /etc/rc.conf /bin/true } # arg 1: the old package version pre_remove() { # # do pre-remove stuff here # [ -f /var/run/daemons/monit ] && /etc/rc.d/monit stop /bin/true } # arg 1: the old package version post_remove() { # # do post-remove stuff here # grep '^DAEMONS' /etc/rc.conf | grep monit >/dev/null [ $? = 0 ] && sed -i '/^DAEMONS=/s/ monit//' /etc/rc.conf /bin/true } op=$1 shift $op $* EDIT: Poprawione drobne błędy. Dodany plik monit.install. Pakietów na razie nie zmieniłem - w momencie włączenia monita do repozytorium dodamy jeszcze przykladowy plik konfiguracyjny (monitrc). |
Autor: | Maciek [ czwartek, 18 sierpnia 2005, 19:00 ] |
Tytuł: | |
Właśnie siadłem do komputera, zainstalowałem i niespodzianka.. nadspodziewanie łatwe w konfiguracji na pierwszy rzut oka, fajny podgląd na www, sprawdzam dalej, może to coś co zastąpi mi sysmona, którego bezskutecznie próbuję od paru tygodni skompilować.. |
Autor: | Mis' [ czwartek, 18 sierpnia 2005, 19:31 ] |
Tytuł: | |
Maciek pisze: Właśnie siadłem do komputera, zainstalowałem i niespodzianka.. nadspodziewanie łatwe w konfiguracji na pierwszy rzut oka, fajny podgląd na www, sprawdzam dalej, może to coś co zastąpi mi sysmona, którego bezskutecznie próbuję od paru tygodni skompilować..
ja bawię się tym już kilka godzin... są kłopoty ze scriptem startowym - czasem trzeba zrobić restart dwukrotnie gdyż za pierwszym razem nie daemon startuje. Następny problem jaki zauważyłem to problem z niektórymi scriptami startowymi. U mnie np. thttpd i crond nie zapisywały do pliku PID. W związku z tym ich monitorowanie było niemożliwe. Pliki thttpd.pid i crond.pid są tworzone, lecz niestety są puste. Dodatkowo mam niejakie wrażenie, że /etc/rc.d/monit reload nie spełnia swego zadania. Ostatnia (na razie) wątpliwość to jak zmusić go do autentykacji przy wysyaniu emaila... |
Autor: | Maciek [ czwartek, 18 sierpnia 2005, 20:56 ] |
Tytuł: | |
God bless the Mis' ![]() Od tygodni męczę się z odpaleniem sysmona na NND. Jest mi to potrzebne, niestety źródełka mają jakieś bugi, których nie potrafię zlokalizować. Jedyna udana wersja jaką uruchomiłem "do nothing". A tu nagle niespodzianka, że też tego sam nie znalazłem. Program może monitorować także odległe serwery i odpalone usługi. Widzę z manuala, że powinien móc także wysyłać alerty na rózne adresy. Na razie próbuję różne opcje konfiguracji. Co do problemów, to na razie odpalam ręcznie, więc trudno mi powiedzieć co jest ze skryptem. Co do autentykacji maila, to sprawa jest prosta o ile użyje się własnego serwera. Ja to zrobiłem tak: pocztę dostaje maciek@mój.serwer a adres nadawcy to może być nobody@mój.serwer (jakiekolwiek by to nie było konto, musi istnieć w systemie). Co do pidów, to chyba on używa tylko do sprawdzenia, numer procesu może nie być konieczny. Kiedy każemy mu zrobić np. restart, to najprawdopodobniej użyje plików startowych ale tego jeszcze nie miałem czasu wypróbować. |
Autor: | Mis' [ czwartek, 18 sierpnia 2005, 21:05 ] |
Tytuł: | |
Maciek pisze: Co do pidów, to chyba on używa tylko do sprawdzenia, numer procesu może nie być konieczny.
iestety z moich doświadczeń wynika, że jest konieczny... Co prawda nie jest to trudne do obejścia bo wystarczy w pliku startowym daemona zmianić linię echo $PID > /var/run/nazwa.pid na echo "`pidof /sciezka/plik`" > /var/run/nazwa.pid ale martwi mnie dlaczego tak się dzieje. Próbowałem zamiast konstrukcji with pidfile /sciezka/plik.pid użyć with path /sciezka/plik ale to nic nie dało. |
Autor: | rapsik [ czwartek, 18 sierpnia 2005, 21:36 ] |
Tytuł: | |
Bardzo sprytny pakiecik. Juz biore sie za testy. A i poczytać mana trzeba ![]() |
Autor: | Mis' [ czwartek, 18 sierpnia 2005, 21:45 ] |
Tytuł: | |
rapsik pisze: poczytać mana trzeba
![]() oj trzeba, trzeba.. imho największym problemem będzie trochę dziwna składnia pliku konfiguracyjnego, choć dla osób które znają choć kilka angielskich słów (wyłączając te na f) po przyzwyczajeniu będzie to dość intuicyjne... |
Autor: | Maciek [ czwartek, 18 sierpnia 2005, 22:36 ] |
Tytuł: | |
Hm.. szukam... i w Legal words nie ma żadnego na "f". No to może "restart that fuckin' process now!" ![]() |
Autor: | bihur [ poniedziałek, 22 sierpnia 2005, 18:41 ] |
Tytuł: | |
mam takie lamerske pytanie jak ustawic tego monita - ( moze raczej odblokować port) zeby go uruchomić |
Autor: | tasiorek [ czwartek, 1 września 2005, 16:13 ] |
Tytuł: | |
Widze, ze nikt nie chce sie pochwalic configiem, wiec ja zaczne # Monit control file ## Poll at 1-minute intervals. set daemon 60 ## Make monit start its web-server. set httpd port 2812 and use address 192.168.1.1 # and only accept connection from localhost allow 192.168.1.ZZ allow 192.168.1.YY allow XXX:XXX # user 'admin' with password 'monit' # check device dysk with path /dev/hda1 if space usage > 97% then exec "/etc/rc.d/samba2 restart" else if recovered then exec "/etc/rc.d/samba restart" mode passive # check directory bin with path /bin if failed permission 755 then unmonitor if failed uid 0 then unmonitor if failed gid 0 then unmonitor # check host www.onet.pl with address 213.180.130.200 if failed icmp type echo with timeout 3 seconds then alert # check process sshd with pidfile /var/run/sshd.pid start program "/etc/rc.d/sshd start" stop program "/etc/rc.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout # check process smbd with pidfile /var/run/smbd.pid group samba start program = "/etc/rc.d/samba start" stop program = "/etc/rc.d/samba stop" if failed host 192.168.1.1 port 139 type TCP then restart if 5 restarts within 5 cycles then timeout depends on smbd_bin check file smbd_bin with path /usr/sbin/smbd group samba if failed checksum then unmonitor if failed permission 755 then unmonitor if failed uid root then unmonitor if failed gid root then unmonitor check process nmbd with pidfile /var/run/nmbd.pid group samba start program = "/etc/rc.d/samba start" stop program = "/etc/rc.d/samba stop" if failed host 192.168.1.1 port 138 type UDP then restart if failed host 192.168.1.1 port 137 type UDP then restart if 5 restarts within 5 cycles then timeout depends on nmbd_bin check file nmbd_bin with path /usr/sbin/nmbd group samba if failed checksum then unmonitor if failed permission 755 then unmonitor if failed uid root then unmonitor if failed gid root then unmonitor # check process webmin with pidfile /var/webmin/miniserv.pid group webmin start program = "/etc/webmin/start" stop program = "/etc/webmin/stop" if failed host 192.168.1.1 port 10000 then restart if 5 restarts within 5 cycles then timeout Bardzo fajny ten program, proponuje dorzucic go do repozytorium. |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |