-
Monit- narzędzie do monitorowanie usług i stanu serwera
Stabilność oraz niezawodność serwerów i urządzeń sieciowych to najważniejsze czynniki świadczące o wyborze firm hostingowych w sektorze biznesu. Jeśli w grę wchodzą duże pieniądze, które możemy zarobić dzięki rozwiązaniom informatycznym, np. sklep internetowy- to nie oszczędzamy. Nie opłaca nam się to bowiem. Więcej będzie nas kosztować awaria i przestój , niż pewny partner technologiczny. Będąc administratorem musimy zdawać sobie z tego wszystkiego sprawę. Pomocnym narzędziem może okazać się Monit. Jego podstawową funkcjonalnością jest zapewnienie poprawnego działania monitorowanej usługi, np. serwera WWW oraz powiadomienie administratora o problemach z nią związanych. Niewątpliwą zaletą tego narzędzia jest elastyczność dzięki regułom, które możemy sami tworzyć. Przystąpmy do instalacji. Najprościej skorzystać z gotowej paczki znajdującej się w repozytorium rpmforge. Mając włączone owe repozytorium, przystępujemy do instalacji.
yum install monit
Następnie edytujemy poniższy plik:
vim /etc/monit.conf
Ustawiamy serwer pocztowy odpowiedzialny za wysyłanie mejli z alertami.
set mailserver localhost,
Ustawiamy nadawcę wiadomości:
set mail-format { from: monit@nasza_domena }
Załóżmy, że wiadomości mają do administratora
set alert admin@nasza_domena
Ustawiamy dostęp do menedżera webowego:
set httpd port numer_portu and
use address adres_strony_menadżera
allow adres_IP_hosta_lub_siec_z_której_ma_być_dostęp
allow nazwa_użytkownika:hasło_dostępowe
Przystępujemy do konfiguracji usług.
check system nazwa_serwera_przykładowo_localhost
if loadavg (1min) > 5 then alert
#jeśli load jest większy od 5 przez minutę, alarmuj mejlem
if memory usage > 75% then alert # jeśli zużycie pamięci większe niż 75%, alarmuj mejlem
Czas na przykładowe ustawienia dla popularnych usług. Na pierwszy ogień pójdzie Apache:
check process apache with pidfile /var/run/httpd.pid #ustalamy położenie pliku z rozszerzeniem pid Apache
start program = „/etc/init.d/httpd start” #sekwencja startowa
stop program = „/etc/init.d/httpd stop” #sekwencja stopująca
if totalmem > 600.0 MB for 5 cycles then restart #jeśli całkowita pamięć zużywana przez Apache (i procesy potomne) jest większa niż 600 MB przez 5 cykl testów, restart usługi
if children > 250 then restart #jeśli jest więcej procesów potomnych Apacha niż 250 (podejrzenie ataku DDos), restart usługi
if loadavg(5min) greater than 10 for 3 cycles then stop #jeśli obciążanie jest większe niż 10 przez 3 cykle testów, zatrzymaj usługę
if failed host mojastronka.com port 80 protocol http #jeśli nie powiedzie się test połączenia z podanym portem danego hosta, zrestartuj Apacha
then restartTeraz czas na monitorowanie bazy MySQL
check process mysql with pidfile /var/run/mysqld/mysqld.pid #ustalamy położenie pliku z rozszerzeniem pid MySQL-a
group database #grupa do jakije należy monitorowana usługa, w tym przypadku baza danych
start program = „/etc/init.d/mysqld start” #sekwencja startowa
stop program = „/etc/init.d/mysqld stop” #sekwencja stopująca
if failed host mojastrona.com port 3306 protocol mysql then restart #jeśli nie powiedzie się test połączenia z podanym portem danego hosta, zrestartuj testowaną usługą
if 5 restarts within 5 cycles then timeout #jeśli nie powedzie się 5 restartów, nic nie rób
Na koniec monitorowanie serwera FTP, a dokładniej proftp
check process proftpd with pidfile /var/run/proftpd/proftpd.pid #ustalamy położenie pliku z rozszerzeniem pid proftp-a
start program = „/etc/init.d/proftpd start” #sekwencja startowa
stop program = „/etc/init.d/proftpd stop” #sekwencja stopująca
if failed port 21 protocol ftp then restart #jeśli nie powiedzie się test połączenia z podanym portem danego hosta, zrestartuj proftp-a
if 5 restarts within 5 cycles then timeout #jeśli nie powiedzie się 5 restartów danej usługi, nic nie rób
Opisane przykłady pochodzą ze strony http://mmonit.com/wiki/Monit/ConfigurationExamplesNa koniec zapisujemy zmiany w edytowanym przez nas pliku, czyli „/etc/monit.conf” i uruchamiamy Monit-a poleceniem:
service monit start
„if children > 250 then restart #jeśli procesy potomne (dzieci) zużywają więcej niż 250 MB, restart Apacha”
Hmm…, a czy aby nie chodzi tu o ilość procesów potomnych? Czyli: jeżeli powstało więcej niż 250 procesów potomnych to zrestartuj usługę (powód: podejrzenie ataku DOS jak sądzę).
Wielkie dzięki cezar za wytknięcie mojego błędu. Tekst poprawiony.