Monit

W poprzednim wpisie wspomniałem o Monit. Jest to narzędzie do monitorowania i zarządzania demonami w systemie. Czemu o nim wspominam? Ponieważ ma dosyć fajną i prostą konfigurację. Jeszcze pewnie trochę czasu mi zajmie skonfigurowanie tego dokładnie tak jak chcę.

Szybko przyjrzyjmy się co to potrafi:

  • webowy interfejs ze statusem serwera i usług
  • powiadomienia na email
  • proste regułki akcji

Co w tym takiego fajnego? Spójrzmy na fragment przykładowej konfiguracji i powinno rozwiać wszelkie wątpliwości

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 cpu > 60% for 2 cycles then alert
    if cpu > 80% for 5 cycles then restart
    if totalmem > 200.0 MB for 5 cycles then restart
    if children > 250 then restart
    if loadavg(5min) greater than 10 for 8 cycles then stop
    if failed host www.tildeslash.com port 80 protocol http 
       and request "/somefile.html"
       then restart
    if failed port 443 type tcpssl protocol http
       with timeout 15 seconds
       then restart
    if 3 restarts within 5 cycles then timeout
    depends on apache_bin
    group server

Konfiguracja jest na tyle prosta, że chyba nie trzeba tłumaczyć co wyżej się dzieje.

Co mi się nie podoba? Braki funkcjonalności w interfejsie webowym – chociażby grupy. Za pomocą cli możemy wydać polecenie `monit restart www` i wszystkie usługi wpisane w tą grupę zostaną zrestartowane. Czegoś takiego nie zrobimy przez www, ani nawet zbyt wygodnie nie zobaczymy grup.

Druga sprawa – wygląd. Back-end jest ok, nie mam nic do zarzucenia, ale www jest po prostu brzydkie i źle napisane (cała strona to jedna wielka tabela…). I to jeszcze hardkodowane w aplikację. Może kiedyś jak najdzie mnie większa chęć i ochota to coś z tym zrobię – chyba, że znajdę inne rozwiązanie ;)