Wstęp
Monit jest prostym narzędziem służącym do monitoringu serwera Linux. Monit działa zarówno lokalnie, jak i można przy jego pomocy monitorować inne serwery. Jedną z funkcjonalności jest podjęcie zdefiniowanych działań w przypadku wykrycia awarii np. restart usługi, co może być bardzo pomocne dla serwerów, gdzie nie mamy wsparcia 24/7.Instalacja
Monit zainstalujemy z gotowej paczki na większości systemów.Dla Debiana/Ubuntu:
apt install monitDla CentOS/AlmaLinux:
yum install monitPo instalacji włączamy usługę, aby uruchamiała się automatycznie po starcie i sprawdzamy jej status:
systemctl start monit systemctl enable monit systemctl status monitPowinniśmy otrzymać:
# systemctl status monit ● monit.service - LSB: service and resource monitoring daemon Loaded: loaded (/etc/init.d/monit; generated) Active: active (running) since Mon 2023-07-24 14:34:26 CEST; 17min ago Docs: man:systemd-sysv-generator(8) Process: 1567 ExecReload=/etc/init.d/monit reload (code=exited, status=0/SUCCESS) Tasks: 2 (limit: 3528) Memory: 4.8M CPU: 206ms CGroup: /system.slice/monit.service └─280 /usr/bin/monit -c /etc/monit/monitrc Jul 24 14:34:25 vps13877 systemd[1]: Starting LSB: service and resource monitoring daemon... Jul 24 14:34:26 vps13877 monit[252]: Starting daemon monitor: monit. Jul 24 14:34:26 vps13877 systemd[1]: Started LSB: service and resource monitoring daemon. Jul 24 14:42:25 vps13877 systemd[1]: Reloading LSB: service and resource monitoring daemon. Jul 24 14:42:25 vps13877 monit[1567]: Reloading daemon monitor configuration: monit. Jul 24 14:42:25 vps13877 systemd[1]: Reloaded LSB: service and resource monitoring daemon.
Konfiguracja
Po tym, jak nasza usługa działa poprawnie, możemy rozpocząć konfigurację. Zaczynamy od uruchomienia dostępu przez stronę www. Konfiguracja usługi znajduje się w pliku /etc/monit/monitrc. Otwieramy go ulubionym edytorem:nano /etc/monit/monitrcNastępnie szukamy (control+w dla nano):
set httpd port 2812 andi usuwamy # sprzed znalezionej linii oraz 2 następnych, tak żeby konfiguracja wyglądała następująco:
set httpd port 2812 and use address 0.0.0.0 # only accept connection from localhost (drop if you use M/Monit) allow 0.0.0.0/0 # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit'Po zmianach zapisujemy je, wciskając control+x oraz enter.
UWAGA, zamiast admin:monit powinniśmy wygenerować własną nazwę użytkownika i losowe hasło, aby uniemożliwić dostęp do strony botom lub hackerom.
Po zapisaniu sprawdzamy poprawność konfiguracji komendą:
# monit -t Control file syntax OKI przeładowujemy usługę:
systemctl reload monitNastępnie wchodząc na adres http://IPSERVERA:2812 powinniśmy zobaczyć pytanie o login i hasło:
Po wpisaniu danych, które wpisaliśmy w konfigu w poprzednim kroku, powinniśmy zobaczyć stronę z informacjami o serwerze:
Monitoring
Przy pomocy monit możemy monitorować różne usługi, możemy pisać sami nowe monitory, jak i użyć tych wbudowanych w oprogramowanie. W przykładzie dodamy monitoring apache2 na podstawie dostępnej konfiguracji.Wszystkie konfiguracje usług, które możemy odblokować lub dodać nowe znajdują się w katalogu /etc/monit/conf-available. Aby włączyć monitoring apache2, wykonujemy następująca komendę:
ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/Komenda ta utworzy link z katalogu conf-available (dostępnych konfiguracji usług) do conf-enabled, gdzie trzymane są odblokowane konfiguracje. Po utworzeniu linku sprawdzamy składnię:
# monit -t Control file syntax OKoraz przeładowujemy usługę:
systemctl reload monitPo wejściu na stronę monita powinniśmy zauważyć nowe wpisy dotyczące apache2:
Odblokowując dodatki openssh-server oraz cron otrzymamy następujące informacje:
W internecie możemy poszukać różnych dodatkowych konfiguracji zawierających np. sprawdzanie dostępnej przestrzeni dyskowej albo zużycia zasobów CPU.
Własne konfiguracje
W przykładzie dodamy konfigurację sprawdzającą, czy na serwerze znajduje się odpowiednia ilość wolnego miejsca. Tworzymy plik disk-space w katalogu /etc/monit/conf-available:nano /etc/monit/conf-available/disk-spacei wklejamy do niego (85% możemy zmienić na dowolny inny % zajętości dysku):
check filesystem root with path / if space usage > 85% then alertWłączamy nową konfigurację, sprawdzamy poprawność skryptu oraz przeładowujemy usługę:
ln -s /etc/monit/conf-available/disk-space /etc/monit/conf-enabled/ monit -t systemctl reload monitPo wykonaniu tych komend powinniśmy zobaczyć na stronie dodatkowy wpis:
Pełna dokumentacja znajduje się pod adresem: https://mmonit.com/monit/documentation/monit.html