Monit je opensource nástroj pro monitorování procesů pro operační systém Linux, který vám pomáhá monitorovat proces systému pomocí webového prohlížeče a také kdykoli to vyžaduje automaticky provádět údržbu nebo opravu konkrétního procesu tak, aby jej bylo možné vrátit zpět online.
Monit může také použít pro správu a monitorování programů, souborů, adresářů a zařízení pro změny časových razítek, změny kontrolního součtu nebo změny velikosti; neomezuje se na provádění různých síťových kontrol TCP/IP, kontrol protokolů a může pro tyto kontroly využívat SSL.
Přihlásí se do svého log souboru a upozorní uživatele pomocí přizpůsobitelných zpráv.
Tato příručka vám pomůže nainstalovat Monit na CentOS 7 / RHEL 7.
Nainstalovat Monit
Povolte úložiště EPEL ke stažení nejnovější verze Monitu.
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Nainstalujte Monit pomocí příkazu YUM.
yum -y install monit
Spusťte monit pomocí následujícího příkazu.
monit
Výstup:
Spuštění démona Monit 5.25.1 s rozhraním http na [localhost]:2812
Zkontrolujte stav monit.
stav sledování
Výstup:
Monit 5.25.1 uptime:0mSystem 'server.itzgeek.local' stav OK stav monitorování Monitorovaný režim aktivní při startu restartu průměrná zátěž [0.01] [0.05] [0.04] cpu 0.0%us 0.0%sy 0.0%wa paměti využití 170,2 MB [29,0 %] využití swapu 0 B [0,0 %] doba provozu 4 m doba spouštění Ne, 9. února 2020 04:55:42 shromážděná data Ne, 9. února 2020 05:00:00
Konfigurovat Monit
Hlavní konfigurační soubor Monitu je /etc/monitrc. Pro naše požadavky provedeme několik změn v konfiguračním souboru Monit.
vi /etc/monitrc
Ve výchozím nastavení je monit nastaveno na kontrolu služeb v intervalu 30 sekund. Toto nastavení lze změnit změnou níže uvedeného řádku.
nastavit démona 30
Upozornění lze konfigurovat pomocí.
nastavit poštovní server mx.itzgeek.local port 25
Šablony výstrah lze nalézt v samotném konfiguračním souboru. Viz doplňky na konci tohoto článku.
Nastavení protokolů lze změnit pomocí následujícího souboru.
nastavit protokol /var/log/monit
Povolit webové rozhraní Monit
Monit také poskytuje webové rozhraní pro sledování a správu nakonfigurovaných služeb. Ve výchozím nastavení monit naslouchá na portu 2812, ale je třeba jej nastavit.
Upravte konfigurační soubor monit.
vi /etc/monitrc
Vyhledejte httpd port 2812, upravte následující položky.
OD:
nastavit httpd port 2812 a použít adresu localhost # přijmout připojení pouze z localhost povolit localhost # povolit localhost připojení k serveru a povolit admin:monit # vyžadovat uživatele 'admin' s heslem 'monit' #with ssl { # povolit SSL /TLS a nastavte cestu k certifikátu serveru # pemfile:/etc/ssl/certs/monit.pem #}
KOMU:
nastavte port httpd 2812 a použijte adresu 0.0.0.0 # přijímat pouze připojení z localhost povolit 0.0.0.0/0 # povolit localhost připojení k serveru a umožnit admin:monit # vyžadovat uživatele 'admin' s heslem 'monit' #with ssl { # povolit SSL/TLS a nastavit cestu k certifikátu serveru # pemfile:/etc/ssl/certs/monit .pem #}
Z výše uvedených nastavení bude monit naslouchat na 2812 a uživatel admin bude mít přístup k webovému rozhraní z jakékoli sítě.
Znovu načtěte monit.
systemctl restart monit
Auto-start Monit při spuštění.
systemctl enable monit
Nakonfigurujte bránu firewall tak, aby umožňovala přístup k webovému rozhraní Monit běžícímu na portu 2812.
firewall-cmd --permanent --add-port=2812/tcpfirewall-cmd --reload
Přístup k webovému rozhraní Monit
Otevřete webový prohlížeč a přejděte na níže uvedenou adresu URL.
http://your.ip.addr.ess:2812NEBO
http://your.fq.dn:2812Použijte uživatelské jméno a heslo uvedené v předchozím kroku.
Domovská stránka Monit bude vypadat následovně.
Konfigurace služeb pro monitorování pomocí Monit
Jakmile je webové rozhraní hotové, můžeme začít nastavovat služby, které chceme monitorovat.
Konfigurační soubory monitorování služby můžete umístit do adresáře /etc/monit.d/.
Nakonfigurujte službu SSH.
vi /etc/monit.d/sshdmonitor
Použijte níže uvedené informace.
zkontrolujte proces sshd pomocí pidfile /var/run/sshd.pidstart program "/usr/bin/systemctl start sshd.service"stop program "/usr/bin/systemctl stop sshd.service"pokud selže protokol portu 22 ssh potom restartovat
Nakonfigurujte službu pro syslog.
vi /etc/monit.d/syslogmonitor
Použijte níže uvedené informace.
zkontrolujte proces syslogd pomocí pidfile /var/run/syslogd.pidstart program ="/usr/bin/systemctl start rsyslog.service"stop program ="/usr/bin/systemctl stop rsyslog.service"
Konfigurační služba pro HTTP.
vi /etc/monit.d/httpdmonitor
Použijte níže uvedené informace.
zkontrolujte proces httpd pomocí pidfile /var/run/httpd/httpd.pidstart program "/usr/bin/systemctl start httpd.service"stop program "/usr/bin/systemctl stop httpd.service"pokud selže protokol portu 80 http a poté restartujte
Po konfiguraci otestujte syntaxi monit
monit -t
Výstup:
Řízení syntaxe souboru OK
Znovu jej načtěte, aby se změny projevily.
monit reload
Přístup k webovému rozhraní. Měli byste vidět nové služby, které jsme právě nakonfigurovali.
Kliknutím na služby získáte více informací o konkrétní službě. Zde můžete provádět akce, jako je spuštění, zastavení a restartování služby a také zakázat sledování.
Sledování testu
Nyní zastavte službu HTTP pro naše testování.
systemctl stop httpd
Počkejte 30 sekund, monit automaticky spustí syslog. Najdete jej v monit logu.
cat /var/log/monit.log
Výstup:
[UTC 9. února 05:18:00] chyba:proces 'httpd' neběží[UTC 9. únor 05:18:00] info :'httpd' se pokouší restartovat[UTC 9. února 05:18:00] info :'httpd' start:'/usr/bin/systemctl start httpd.service'[UTC Feb 9 05:18:31] info :'httpd' proces běží s pid 1959
E-mailové upozornění s Monit
V Monitu jsou k dispozici předdefinované šablony upozornění, které upozorní správce systému, když konkrétní služba selže.
Upravte konfigurační soubor.
vi /etc/monitrc
Níže uvedenou šablonu upozornění můžete aktualizovat podle svých požadavků.
set mail-format { from:Monitpředmět:monit alert -- $EVENT $SERVICE zpráva:$EVENT Service $SERVICE Datum:$DATE Akce:$ACTION Host:$HOST Popis:$DESCRIPTION Váš věrný zaměstnanec, Monit @ ITzGeek}
Zde nastavte adresu příjemce. Poznámka:Budete dostávat upozornění na všechny typy akcí
nastavit upozornění root@localhost
Pokud nechcete, aby vás upozorňovali na restartování služby iniciované uživatelem, přidejte níže uvedenou konfiguraci.
nastavit upozornění root@localhost not on { instance, action }
Nakonec nastavte konfiguraci poštovního serveru, abyste mohli přijímat poštu. Zde používám místní relé, abychom si mohli přečíst upozornění na poštu přes terminál a ověřit testování.
nastavit poštovní server localhost
Znovu načtěte službu.
monit reload
Příklad upozornění
Monit odeslal e-maily uživateli root o procesu HTTP.
cat /var/spool/mail/root
Pošta:
Od [email protected] Ne 9. února 05:22:48 2020Zpětná cesta:X-Original-To:root@localhostDelivered-To:[email protected]. localReceived:from server.itzgeek.local (localhost [IPv6:::1]) serverem.itzgeek.local (Postfix) s ESMTP id 670E21082B34 pro ; Ne, 9. února 2020 05:22:48 +0000 (UTC)Od:"Monit" Komu:[email protected]:monit alert -- Neexistuje httpdDate:Sun, 9. února 2020 05:22:48 GMTX-Mailer:Monit 5.25.1MIME-Verze:1.0Content-Type:text/plain; charset=utf-8Content-Transfer-Encoding:8bitMessage-Id:<[email protected]>Neexistuje Služba httpd Datum:Ne, 09. února 2020 05:22:48 Akce:restartování hostitele:server. Popis:proces neběží Váš věrný zaměstnanec, Monit @ ITzGeekFrom [email protected] Ne 9. února 05:23:18 2020Return-Path: X-Original-To:root@localhostDelivered-To:root@localhost .itzgeek.localReceived:from server.itzgeek.local (localhost [IPv6:::1]) serverem.itzgeek.local (Postfix) s ESMTP id B22AF1082B37 pro ; Ne, 9. února 2020 05:23:18 +0000 (UTC)Od:"Monit" Komu:[email protected]:monit alert -- Existuje httpdDate:Ne, 09. února 2020 05:23:18 GMTX-Mailer:Monit 5.25.1MIME-Verze:1.0Content-Type:text/plain; charset=utf-8Content-Transfer-Encoding:8bitMessage-Id:<[email protected]>Existuje služba httpd Datum:Ne, 09. února 2020 05:23:18 Akce:alert Host:server.itzgeek proces běží s pid 2139 Váš věrný zaměstnanec, Monit @ ITzGeek
NEBO
Použijte e-mailového klienta Mutt (yum install -y mutt).
Závěr
To je vše. Úspěšně jsme nakonfigurovali Monit na CentOS 7 / RHEL 7.