Úvod
Monit je užitečný program, který automaticky monitoruje a spravuje serverové programy, aby zajistil, že nejenže zůstanou trvale online, ale že velikost souboru, kontrolní součet nebo oprávnění jsou vždy správné.
# yum install monit ( To install monit On RedHat/CentOS/Fedora/ ) # sudo apt-get install monit ( To install monit On Ubuntu/Debian )
Konfigurace démona Monit
# vi /etc/monit.conf ( Configuration file in RedHat/CentOS/Fedora/ ) # vi /etc/monit/monitrc ( Configuration file in Ubuntu/Debian )
NYNÍ PŘIDÁVÁNÍ SLUŽEB DO KONFIGURAČNÍHO SOUBORU MONITOROVÁNÍ
Otevřete konfigurační soubor, tj.
For RedHat/CentOS/Fedora (# vi /etc/monit.conf) For Ubuntu/Debian (# vi /etc/monit/monitrc)
Smažte všechny řádky v konfiguračním souboru a přidejte níže uvedené řádky. (každý řádek je stručně definován níže)
Nastavit interval démona
Toto je interval (v sekundách), ve kterém Monit provádí své testy. Hodnota, kterou zvolíte, bude záviset na tom, kolik testů definujete. Pokud tuto hodnotu změníme, budete muset restartovat Monit.
# check services at 30 seconds of intervals set daemon 30
Nastavit soubor protokolu
# set logfile syslog facility log_daemon set logfile /var/log/monit.log
Zkontrolujte nastavení využití paměti a restartujte jej
##To check the memory usage and restart the services. check system localhost if memory usage > 93% then exec "/usr/local/bin/httpd-start"
Zkontrolujte službu HTTPD a restartujte
Zde je služba Httpd monitorována monit, tj. když služba neběží nebo když je loadavg větší, pak monit spustí službu httpd, aby se restartovala
#To check the Httpd service and restart the services. # Httpd check process httpd with pidfile /var/run/httpd/httpd.pid start program = "/usr/local/bin/httpd-start" stop program = "/usr/local/bin/httpd-kill" if loadavg (1min) greater than 10 for 1 cycles then restart
Zkontrolujte službu mysqld a restartujte
Zde je služba Mysqld monitorována monit, tj. když služba neběží nebo když je loadavg větší, pak monit spustí službu Mysql, aby se restartovala
#To check the mysql service and restart the services. # mysqld check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if memory usage > 70% for 1 cycles then restart if failed host 127.0.0.1 port 3306 then restart if loadavg (1min) greater than 5 for 1 cycles then restart
Stejným způsobem můžeme přidat jakoukoli službu, kterou je třeba monitorovat pomocí monit a restartovat
Jakmile jsou všechny služby přidány do konfiguračního souboru. konfigurační soubor vypadá níže..
# check services at 2-minute intervals set daemon 30 # set logfile syslog facility log_daemon set logfile /var/log/monit.log ##To check the memory usage and restart the services. check system localhost if memory usage > 93% then exec "/usr/local/bin/httpd-start" #To check the Httpd service and restart the services. # Httpd check process httpd with pidfile /var/run/httpd/httpd.pid start program = "/usr/local/bin/httpd-start" stop program = "/usr/local/bin/httpd-kill" if loadavg (1min) greater than 10 for 1 cycles then restart #To check the mysql service and restart the services. # mysqld check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if memory usage > 70% for 1 cycles then restart if failed host 127.0.0.1 port 3306 then restart if loadavg (1min) greater than 5 for 1 cycles then restart
POZNÁMKA:Protože jsme definovali následující řádek v konfiguračním souboru
spustit program ="/usr/local/bin/httpd-start"
zastavit program ="/usr/local/bin/httpd-kill"
Musíme přidat skripty httpd-start, httpd-kill, tj.
vytvořte soubor pomocí následujícího příkazu a přidejte následující řádky
vi /usr/local/bin/httpd-start
#!/bin/bash /usr/bin/killall -9 httpd; /usr/bin/killall -9 php-cgi; /usr/bin/ipcs |grep apache | /bin/cut -d" " -f2 | /usr/bin/xargs /usr/bin/ipcrm sem {}; /bin/sleep .5; /usr/sbin/apachectl start #/sbin/swapoff -a #/sbin/swapon -a exit 0;
nyní uložte a ukončete pomocí příkazu
:wq!
Nyní to samé pro skript httpd-kill
vytvořte soubor pomocí následujícího příkazu a přidejte následující řádky
vi /usr/local/bin/httpd-kill
#!/bin/bash /usr/bin/killall -9 httpd; /usr/bin/ipcs |grep apache | /bin/cut -d" " -f2 | /usr/bin/xargs /usr/bin/ipcrm sem {}; /bin/sleep .5; exit 0;
stejným způsobem musíme definovat pro skripty Mysqld..
Jakmile nakonfigurujete všechny programy pro monitorování, zkontrolujte syntaxi monit kvůli chybám. Pokud byly nalezeny nějaké chyby, opravte je, není tak těžké zjistit, co se pokazilo. Pomocí níže uvedeného příkazu
# monit -t
Pokud je soubor monit Config správný, zobrazí se zpráva jako „Syntaxe ovládacího souboru OK“, nebo pokud nevidíte žádné chyby,
Po opravě všech možných chyb můžete zadáním následujícího příkazu spustit službu monit.
# /etc/init.d/monit start
Ověřování služby Monit
Spuštění služby monit můžete ověřit kontrolou souboru protokolu.
# tail -f /var/log/monit
Ukázkový výstup protokolu je následující
[BDT Apr 3 03:06:04] info : Starting monit HTTP server at [localhost:2812] [BDT Apr 3 03:06:04] info : monit HTTP server started [BDT Apr 3 03:06:04] info : 'e2enetworks.com' Monit started [BDT Apr 3 03:06:04] error : 'nginx' process is not running [BDT Apr 3 03:06:04] info : 'nginx' trying to restart [BDT Apr 3 03:06:04] info : 'nginx' start: /etc/init.d/nginx