poniedziałek, 18 lutego 2013

Powiadamianie poprzez Monit o błędach systemu - Debian Squeeze / Ubuntu 12.04

Przydatnym narzędziem przy monitorowaniu naszego systemu jest możliwość otrzymywania powiadomień sms w przypadku problemów z nim. W tym celu użyjemy prostego programu Monit oraz systemu rozsyłania sms CS Network. Oczywiście do wysłania wiadomości potrzebne są kredyty, które musimy kupić, aby móc te wiadomości wysyłać. Musimy założyć konto w CS Network, aby móc wykonać niżej opisane kroki. Wszystko jak zwykle robimy jako root.


1) Instalacja oraz konfiguracja Monit:

 apt-get install monit

Musimy dodać do Monita informacje o naszym koncie w sieci CS, dzięki czemu będziemy otrzymywać wiadomości :

nano /etc/monit/monitrc 


set mailserver api.cs-networks.net port 225
username "login_z_cs" password "haslo_z_cs", localhost
with timeout 15 seconds 

Możemy poprzez monit status zobaczyć jak działa nasz system:


  status                            Running
  monitoring status                 Monitored
  load average                      [0.03] [0.14] [0.20]
  cpu                               3.5%us 5.9%sy 0.0%wa
  memory usage                      26100 kB [10.4%]
  swap usage                        0 kB [0.0%]
  data collected                    Thu, 18 Feb 2013 18:35:00


Monit posiada również podgląd statusu systemu poprzez przeglądarkę na porcie 2812. W pliku konfiguracyjnym musimy znaleźć i odkomentować poniższy wpis :


set httpd port 2812
    use address 12.34.56.789  # akceptuj połączenia tylko z localhost
    allow 0.0.0.0/0.0.0.0        # pozwól localhost łączyć się z serwerem
    allow admin:monit      # pozwól na logowanie użytkownikowi admin z hasłem monit

Musimy wykonać monit reload.

Po zalogowaniu powinniśmy zobaczyć status naszych usług:




Jeżeli do tej pory wszystko działa tak jak powinno możemy dodać najbardziej wrażliwe procesy naszej sieci. Do pliku konfiguracyjnego dodajemy informacje o procesach według szablonu:

nano /etc/monit/monitrc 


check process nazwa_procesu with pidfile /run/nazwa_procesu.pid
    start program = "/etc/init.d/nazwa_procesu start" with timeout 60 seconds
    stop program  = "/etc/init.d/nazwa_procesu stop"



I tak:

Apache:


check process apache with pidfile /run/apache2.pid
    start program = "/etc/init.d/apache2 start" with timeout 60 seconds
    stop program  = "/etc/init.d/apache2 stop"

MySQL:



check process mysqld with pidfile /var/run/mysqld/mysqld.pid
    start program = "/etc/init.d/mysql start"
    stop program = "/etc/init.d/mysql stop"

Ngix:


check process nginx with pidfile /var/run/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"


Poleceniem monit -t możemy sprawdzić ewentualne błędy składniowe wpisane przez nas. Natomiast przy pomocy monit start all, uruchamiamy monita dla dodanych procesów.


Jeżeli coś się nie zgadza szczególnie ścieżka pidfile, trzeba sprawdzić czy nie ma naszego procesu w /var/run.
Od teraz powinniśmy spać spokojnie:)



Brak komentarzy:

Prześlij komentarz