Monit je open-source nástroj pro monitorování procesů pro operační systém Linux, který vám pomáhá sledovat systémový proces. Kdykoli dojde k výpadku služby/procesu, automaticky provede údržbu a opravu konkrétního procesu a zajistí, aby byl opět online.
Monit lze také použít pro správu a monitorování programů, souborů, adresářů, souborových systémů, kontroly sítě TCP/IP, kontroly protokolů a pro tyto kontroly může využít 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 nastavit Monit na CentOS 8 / RHEL 8.
Nainstalovat Monit
Nainstalujte potřebné nástroje pro sestavení, protože Monit ještě není zabalen jako rpm pro CentOS 8 / RHEL 8.
dnf install -y git gcc glibc make glibc-devel kernel-headers autoconf automake libtool bison flex libzip-devel pam-devel openssl openssl-devel
Klonujte zdrojový kód Monit pro kompilaci.
klon git https://bitbucket.org/tildeslash/monit.git
Zkompilujte Monit pomocí řady následujících příkazů.
cd monit./bootstrap./configuremakemake install
Konfigurovat Monit
Funkčnost
Zkopírujte soubor monitrc ze staženého zdroje do adresáře /etc.
cp monitrc /etc/
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 nastaven na kontrolu služeb v intervalu 30 sekund. Tento interval lze upravit změnou níže uvedeného řádku.
nastavit démona 30
Můžete nastavit e-mailový server pro příjem upozornění do vaší doručené pošty.
nastavit poštovní server mx.itzgeek.local port 25E-mailové upozornění lze přizpůsobit pomocí vestavěných šablon, které najdete v samotném konfiguračním souboru. Další informace naleznete v upozorňování e-mailem s Monit v dolní části tohoto článku.
Nastavení protokolů lze změnit pomocí následujícího souboru.
nastavit protokol /var/log/monit.log
Nezapomeňte odkomentovat níže uvedený řádek. Sem umístíme soubory monitorování služeb.
zahrnout /etc/monit.d/*
Webové rozhraní
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 /etc/monitrc.
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 (zrušit, pokud používáte M/Monit) povolit 0.0.0.0/0 # povolit localhost připojení k serveru a povolit 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 portu 2812 na všech rozhraních. Administrátor bude mít přístup k webovému rozhraní z jakékoli sítě.
Nastavení systému
Nyní vytvoříme soubor systemd pro automatické spuštění Monitu při startu systému.
vi /lib/systemd/system/monit.service
Použijte níže uvedená nastavení.
# Tento soubor je systemd šablona pro službu monit. Chcete-li # zaregistrovat monit u systemd, umístěte soubor monit.service # do adresáře /lib/systemd/system/ a poté jej spusťte # pomocí systemctl (viz níže). # # Povolit spuštění monit při spouštění:# systemctl povolit monit.service # # Okamžitě spustit monit:# systemctl spustit monit.service # # Zastavit monit:# systemctl zastavit monit.service # # Stav:# systemctl status monit.service [Jednotka ] Description=Proaktivní monitorovací nástroj pro unixové systémy After=network.target Documentation=man:monit(1) https://mmonit.com/wiki/Monit/HowTo [Service] Type=simple KillMode=process ExecStart=/usr /local/bin/monit -I ExecStop=/usr/local/bin/monit quit ExecReload=/usr/local/bin/monit reload Restartovat =on-abnormal StandardOutput=null [Install] WantedBy=multi-user.targetZnovu načtěte démona systemd.
systemctl daemon-reloadSpusťte službu Monit.
systemctl start monitAuto-start Monit při spuštění.
systemctl enable monitFirewall
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 --reloadPří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 takto:
Nakonfigurujte služby pro monitorování pomocí Monit
Jakmile bude webové rozhraní spuštěno, můžeme začít nastavovat další služby, které chcete sledovat.
mkdir /etc/monit.d/Konfigurační soubory můžete umístit do adresáře /etc/monit.d/.
Nakonfigurujte službu pro syslog.
vi /etc/monit.d/syslogmonitorPoužijte níže uvedené informace.
zkontrolujte proces SysLog pomocí pidfile /var/run/rsyslogd.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/httpdmonitorPouž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é restartujtePo konfiguraci otestujte syntaxi Monit
monit -tVýstup:
Řízení syntaxe souboru OKZnovu načtěte Monit, aby se změny projevily.
monit opětovného načtení systemctlPřístup k webovému rozhraní. Měli byste vidět nové služby, které jsme právě nakonfigurovali.
Kliknutím na službu získáte další informace 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í.
Otestujte monitorování
Nyní zastavte službu HTTP pro naše testování.
systemctl stop httpdPočkejte 30 sekund, Monit automaticky spustí syslog. Najdete jej v protokolu Monit.
cat /var/log/monit.logVýstup:
[EST Jan 27 20:37:03] error :Proces 'HTTPD' neběží[EST Jan 27 20:37:03] info :'HTTPD' se pokouší restartovat[EST Jan 27 20:37:03] info :'HTTPD' start:'/usr/bin/systemctl start httpd.service'[EST Jan 27 20:37:38] info :'HTTPD' proces běží s pid 25270E-mailové upozornění s Monit
V Monitu jsou k dispozici předdefinované šablony výstrah, které upozorní správce systému, když konkrétní služba selže. Pro tuto ukázku použijeme místní přenos (e-mailový server) k upozornění uživatele root.
Upravte konfigurační soubor.
vi /etc/monitrcNíž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} Zde nastavte adresu příjemce pro příjem upozornění na všechny typy akcí
nastavit upozornění root@localhostZde nastavte adresu příjemce tak, aby neupozorňovala na restartování služby iniciované uživatelem.
nastavit upozornění root@localhost not on { instance, action }Nakonec nastavte konfiguraci poštovního serveru, abyste mohli přijímat poštu.
nastavit poštovní server localhostZde používám local relay dnf install -y sendmail &&systemctl start sendmail, abychom mohli číst e-mailová upozornění přes terminál a potvrdit mechanismus upozornění.
Znovu načtěte službu.
monit opětovného načtení systemctlZobrazit upozornění
Monit odeslal e-maily uživateli root o procesu HTTP.
cat /var/spool/mail/rootVýstup:
Komu:[email protected]:monit alert -- Neexistuje HTTPDDdate:Tue, 28 Jan 2020 01:44:05 GMTX-Mailer:Monit 5.27.0MIME-Version:1.0Content-Type:text/ prostý; charset=utf-8Content-Transfer-Encoding:8bitMessage-Id:<[email protected]>Neexistuje Služba HTTPD Datum:Po, 27. ledna 2020 20:44:05 Akce restart. .local Popis:proces neběží Váš věrný zaměstnanec, Monit @ ITzGeekFrom [email protected] Po Jan 27 20:44:47 2020Return-Path:Přijato:od centos8.itzgeek.local (localhost [127].0.0. ) od centos8.itzgeek.local (8.15.2/8.15.2) s ESMTP id 00S1ilKL026285 pro ; Po, 27. ledna 2020 20:44:47 -0500Od:"Monit" Komu:[email protected]:monit alert -- Existuje HTTPDDdatum:Út, 28. ledna 2020 01:44 :47 GMTX-Mailer:Monit 5.27.0MIME-Verze:1.0Content-Type:text/plain; charset=utf-8Content-Transfer-Encoding:8bitMessage-Id:<[email protected]>Existuje služba HTTPD Datum:Po, 27. ledna 2020 20:44:47 centos 8. akce:výstraha. Hostitel::proces běží s pid 26069 Váš věrný zaměstnanec, Monit @ ITzGeek NEBO
Pro zobrazení výstrah použijte mutt dnf install -y mutt, e-mailového klienta.
Závěr
To je vše. Úspěšně jsme nakonfigurovali Monit na CentOS 8 / RHEL 8.
Jak nastavit centralizovaný server SysLog na CentOS 8 / RHEL 8 Jak nainstalovat Apache Maven CentOS 8 / RHEL 8Cent OS