• Monit- narzędzie do monitorowanie usług i stanu serwera

    dodany przez Przemysław Sikora

    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 restart

    Teraz 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/ConfigurationExamples

    Na koniec zapisujemy zmiany w edytowanym przez nas pliku, czyli „/etc/monit.conf” i uruchamiamy Monit-a poleceniem:

    service monit start

2 komentarze do “Monit- narzędzie do monitorowanie usług i stanu serwera”

  1. cezar pisze:

    „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ę).

  2. admin pisze:

    Wielkie dzięki cezar za wytknięcie mojego błędu. Tekst poprawiony.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony