Strona główna > Linuksy i okolice, Z życia admina > Monit, Perdition i Debian

Monit, Perdition i Debian

01/03/2012

Monit to cudowny program, zdejmujący z barków administratora kupę zmartwień – bo, prawdę mówiąc, nie ma tak dobrze, żeby z cudzej aplikacji wyeliminować wszystkie wycieki pamięci czy nagłe zgony. Biznes ma swoje priorytety, programiści swoje – a my możemy co najwyżej takiego obiekta reanimować i napisać kilka ciepłych słów do wspomnianych osób. Nic to nie da, ale podreperuje samopoczucie. Restartować możemy sami (o ile lubimy wstawać w środku nocy) albo jakimś automatem, na przykład wspomnianym Monitem, który dopilnuje czy aplikacja odpowiada, czy nie zjada za dużo pamięci – a jakby co, to podejmie za nas stosowne działania.

Perdition to przemiłe proxy dla protokołów POP3, IMAP4 i ManageSieve. Znakomicie ułatwia życie i upraszcza skomplikowane konfiguracje. Wiem, NGINX też co-nieco potrafi, ale nie o nim teraz mowa.

Debian to… no dobra, rozpędziłem się.

Wracając do tematu: debianowski (mam tu na myśli wersję ze Squeeze, ale pewnie jest to prawdą tez na innych) skrypt startowy dla Perdition ma wadę, która utrudnia wykorzystywanie go z Monitem – zakłada, że jednym poleceniem chcemy zarządzać wszystkimi możliwymi instancjami proxy (a może być ich sporo, po jednej na każdy protokół). Troszkę to nieelegancko ubijać wszystko co chodzi, bo jeden z pięciu, niezależnych, demonów miał czkawkę. Należy więc napisać własnych skrypt, który pozwoli nam uruchamiać i kłaść usługi selektywnie. Nie jest to zadanie trudne i nie traktuję tego jako pretekstu dla samochwalczej notki – po prostu uważam, że skoro zrobiła to jedna osoba to inne nie muszą wymyślać koła. A więc skrypt dostępny jest tutaj lub tutaj a przykładowe konfiguracje poniżej.

check process perdition.pop3 with pidfile /var/run/perdition.pop3.pid
    group mail
    start program = "/etc/init.d/perdition-monit start pop3"
    stop  program = "/etc/init.d/perdition-monit stop  pop3"
    if failed host 127.0.0.1 port 110
          protocol pop timeout 10 seconds for 2 cycles then restart

check process perdition.pop3s with pidfile /var/run/perdition.pop3s.pid
    group mail
    start program = "/etc/init.d/perdition-monit start pop3s"
    stop  program = "/etc/init.d/perdition-monit stop  pop3s"
    if failed host 127.0.0.1 port 995 type TCPSSL
          protocol pop timeout 10 seconds for 2 cycles then restart

check process perdition.imap4 with pidfile /var/run/perdition.imap4.pid
    group mail
    start program = "/etc/init.d/perdition-monit start imap4"
    stop  program = "/etc/init.d/perdition-monit stop  imap4"
    if failed host 127.0.0.1 port 143
          protocol imap timeout 10 seconds for 2 cycles then restart

check process perdition.imaps with pidfile /var/run/perdition.imaps.pid
    group mail
    start program = "/etc/init.d/perdition-monit start imaps"
    stop  program = "/etc/init.d/perdition-monit stop  imaps"
    if failed host 10.100.1.144 port 993 type TCPSSL
          protocol imap timeout 10 seconds for 2 cycles then restart

check process perdition.managesieve with pidfile /var/run/perdition.managesieve.pid
    group mail
    start program = "/etc/init.d/perdition-monit start managesieve"
    stop  program = "/etc/init.d/perdition-monit stop  managesieve"

Miłej pracy życzę.

%d blogerów lubi to: