Czy chciałbyś mieć narzędzie, któremu możesz zaufać, które po zainstalowaniu staje się praktycznie niewidzialne, jest nieinwazyjne więc po prostu o nim zapominasz. Wyobraź sobie że apache pada na serwerze, a ty akurat jesteś w połowie imprezy. Kiedy to nastąpi, dobrze jest wiedzieć, że masz zainstalowaną tą dodatkową warstwę bezpieczeństwa i ochrony – Monit po prostu odczeka kilka sekund i ponownie uruchomi demona apache.

Monit jest zaprojektowany jako system autonomiczny i nie zależny od wtyczek, ani żadnych specjalnych bibliotek do uruchomienia. Jest to mały program, ma nieco ponad 500kB.

Monit jest darmowym programem, to sprytne narzędzie do zarządzania i monitorowania, procesów, programów, plików, katalogów. Monit prowadzi automatyczny nasłuch na serwerze i w przypadku awarii potrafi zareagować i naprawić awaryjną sytuację.

Możesz używać Monita do monitorowania procesów demona lub podobnych programów działających na Twoim serwerze VPS lub serwerze dedykowanym. Monit jest szczególnie przydatny do monitorowania procesów demona, takich jak te uruchamiane podczas startu systemu z / etc / init.d /. Na przykład sshd, sendmail, Apache lub MySQL.

W odróżnieniu od wielu systemów monitorowania, Monit działa wtedy, kiedy sytuacja tego wymaga, np., w przypadku gdy sendmail przestał działąć, Monit może ponownie automatycznie uruchomić sendmaila lub apacha jeśli ten używa zbyt wielu zasobów (np. w przypadku ataku DoS) Monit może zatrzymać lub ponownie uruchomić apache i wysłać na e-mail stosowny komunikat. Monit może również monitorować właściwości procesu, takie jak: ilość użytej pamięci, wykorzystanie CPU.

Możesz również użyć Monit do monitorowania plików, katalogów. Monit może monitorować zmiany tych elementów, takie jak data i czas edycji pliku, zmiany sumy kontrolnej lub zmiany rozmiaru. Jest to również przydatne ze względów bezpieczeństwa – można monitorować md5 lub sha1 sumy kontrolnej plików, które nie powinny się zmieniać.

Monit może monitorować połączenia sieciowe z różnych serwerów, zarówno na komputerze lokalnym lub na zdalnych hostach. TCP, UDP. Test sieci może być wykonywany na poziomie protokołu; Monit ma wbudowane testy na główne protokoły internetowe, takie jak HTTP, SMTP itp. Nawet jeśli protokół nie jest obsługiwany nadal można przetestować serwer ponieważ można skonfigurować Monit do wysyłania danych i testowania odpowiedzi z serwera.

Monit może być używany do testowania programów lub skryptów o określonym czasie, podobnie jak CRON, ale dodatkowo można sprawdzać wartość wyjścia z programu i w razie potrzeby wysłać alert, jeżeli wartość wyjścia wskazuje błąd. Oznacza to, że można użyć Monita do wykonywania wszelkiego rodzaju kontroli w przypadku napisania odpowiedniego skryptu.

Wreszcie, Monit może być używany do monitorowania ogólnych zasobów systemowych na serwerze, takie jak ogólne użycie procesora, pamięci lub średnie obciążenie serwera.

Instalacja

Debian

# aptitude install monit

Konfiguracja Monit

Konfigurację Monita zaczynamy od edycji pliku /etc/monit/monitrc

set daemon 120 set logfile syslog facility log_daemon set mailserver localhost # primary mailserver set alert admin@serwer1.pl # receive all alerts
  • set daemon 120 – uruchom monit co 2 minuty
  • set logfile syslog facility log_daemon : Logi  /var/log/messsages
  • set mailserver localhost : wyślij alert przez sendmail
  • set alert admin@serwer1.pl : Na ten e-mail będą wysyłane alerty

Parametry usług monitorowanych przez Monita ustawiamy również w pliku /etc/monit/monitrc

check system myhost.mydomain.tld
   if loadavg (1min) > 4 then alert
   if loadavg (5min) > 2 then alert
   if memory usage > 75% then alert
   if cpu usage (user) > 70% then alert
   if cpu usage (system) > 30% then alert
   if cpu usage (wait) > 20% then alert

check process apache
   with pidfile "/usr/local/apache/logs/httpd.pid"
   start program = "/etc/init.d/httpd start" with timeout 60 seconds
   stop program = "/etc/init.d/httpd stop"
   if 2 restarts within 3 cycles then timeout
   if totalmem > 100 Mb then alert
   if children > 255 for 5 cycles then stop
   if cpu usage > 95% for 3 cycles then restart
   if failed port 80 protocol http then restart
   group server
   depends on httpd.conf, httpd.bin

check file httpd.conf
    with path /usr/local/apache/conf/httpd.conf
    # Reload apache if the httpd.conf file was changed
    if changed checksum
       then exec "/usr/local/apache/bin/apachectl graceful"

check file httpd.bin
    with path /usr/local/apache/bin/httpd
    # Run /watch/dog in the case that the binary was changed
    # and alert in the case that the checksum value recovered
    # later
    if failed checksum then exec "/watch/dog"
       else if recovered then alert

include /etc/monit/mysql.monitrc
include /etc/monit/mail/*.monitrc

 

Następnie edytuj plik /etc/default/monit

startup=1 

W końcu po zakończeniu konfiguracji możemy uruchomić nasz monit w celu monitorowania serwera.

# /etc/init.d/monit start