Monit – monitorování procesů a služeb pro Linux
Služby na jakémkoli serveru musí být v provozu a musí dělat to, co mají dělat.
Automatizovaný monitoring je nezbytný pro zajištění a maximalizaci doby provozuschopnosti a dostupnosti systémových služeb na serveru.
Umožňuje správcům systému dostávat upozornění a řešit problémy co nejdříve s minimálním přerušením nebo prostojem.
V tomto příspěvku si pohrajeme s nástrojem zvaným Monit, který dokáže monitorovat služby a procesy na serveru a rozesílat varovné e-maily, když něco selže.
Samotný nástroj je poměrně lehký a umožňuje uživatelům psát „testy“ pomocí velmi jednoduchého jazyka skriptovacího stylu.
Nainstalovat Monit
Na systémech založených na Debianu a Ubuntu je Monit dostupný ve výchozích úložištích. Nainstalujte pomocí apt-get
$ sudo apt-get install monit
Po instalaci se monit spustí jako služba na pozadí a lze ji ověřit pomocí následujícího příkazu
# stav monit služby * monit běží
Konfigurovat Monit
Další věcí, kterou musíte udělat, je nakonfigurovat monit tak, aby sledoval konkrétní věci. Konfigurační soubor pro Monit je umístěn na /etc/monit/monitrc na systémech založených na Ubuntu a Debianu.
Do tohoto souboru můžete přidat všechny konfigurace - /etc/monit/monitrc, nebo vytvořit další konfigurační soubory v adresáři /etc/monit/conf.d/ a monit je všechny automaticky načte a načte
Začněte upravovat konfigurační soubor a přidejte služby, které chcete monitorovat.
Monit má také soubor protokolu umístěný na /var/log/monit.log, který by obsahoval cenné informace, pokud potřebujete něco opravit
Po konfiguraci otestujte novou konfiguraci spuštěním následujícího příkazu
# sudo monit -t
Znovu načtěte novou konfiguraci bez restartování celého monit
# sudo monit reload
Povolte webové rozhraní
Webové rozhraní umožňuje kontrolovat sestavy Monit z prohlížeče. To je užitečné při nastavování a testování monit. Později je lepší jej deaktivovat, aby byly věci v bezpečí.
Najděte v konfiguračním souboru řádek "set httpd" a odkomentujte jej. Pokud řádek neexistuje, vytvořte jej.
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'# povolit @monit # umožnit uživatelům skupiny 'monit' se připojit (rw)# povolit @users readonly # povolit uživatelům skupiny 'users' připojení pouze pro čtení
Nyní přejděte na http://localhost:2812/ a webové rozhraní Monit by se mělo otevřít.
Nastavení e-mailových upozornění
Celá myšlenka za monit je být upozorněna, kdykoli se stane něco neočekávaného. Monit může automaticky odesílat e-maily. Najděte řádek „nastavit upozornění“ a zadejte e-mail, na který chcete zprávy doručovat. Určete také poštovní server, který se má použít.
nastavit výstrahu [email protected] poštovní server localhost
Ujistěte se, že na localhostu běží smtp server (MTA) a že je schopen správně doručovat poštu. Pomocí příkazu mail ověřte, zda je systém správně nakonfigurován pro odesílání e-mailů.
Vyhýbejte se e-mailům bez upozornění - Monit ve výchozím nastavení rozesílá e-maily pro každou věc, kterou udělá, nebo všechno, co se stane. Například při spuštění monit. Chceme však pouze e-maily s upozorněním. Upravte konfiguraci následovně
nastavit upozornění [email protected] není na {instance}
Výše uvedená konfigurace nebude odesílat e-mailem zprávy o instancích, které se generují při spuštění/zastavení monit. Další informace najdete v dokumentaci monit o filtrech událostí pro upozornění.
Takto vypadá upozorňovací e-mail Monit. Vyvolá se, když se na serveru spustí test místa na disku a selže.
Splnil se limit zdrojů Služba server_disk Datum:Čt, 11. června 2015 15:41:43 Akce:výstraha Hostitel:localhost Popis:využití prostoru 61,4 % odpovídá limitu zdroje [využívání prostoru>50,0 %]Váš věrný zaměstnanec, Monit
Monitorování služeb jako Apache, Mysql, Postfix
Nyní chcete monitorovat svůj webový server, databázový server, poštovní server a další démony, abyste zajistili, že služby budou neustále perfektně fungovat. To je snadné.
Stačí do konfiguračního souboru monit přidávat pokyny pro specifikaci každé služby, kterou chcete monitorovat, a Monit to okamžitě začne dělat.
Po změně konfigurací nezapomeňte spustit 'sudo monit reload', aby se projevily. Během testování můžete služby ručně zapínat/vypínat a kontrolovat monit report z webového rozhraní.
Zde je několik příkladů -
1. Služba HTTP – port 80
Následující příklad řekne Monitu, aby zkontroloval, zda http server slouží na portu 80 nebo ne. Pokud ne, vygeneruje výstrahu
zkontrolujte hostitelský http_server s adresou localhost, pokud selže protokol http na portu 80, pak upozorněte
Takže pokud se vyskytne nějaký problém s http serverem (apache nebo nginx), bude vygenerováno upozornění
Podobně můžete nastavit monitory pro jiné porty, jako je ftp, smtp, imap atd.
2. Sledujte stav webu
Pouhé sledování portu 80 nestačí k tomu, aby bylo zajištěno, že web funguje a funguje. Musíme zajistit, aby načtení stránky poskytlo http kód odpovědi 200. Zde je požadovaná konfigurace
# zkontrolujte, zda web funguje správně, zkontrolujte hostitelské binární vlny s adresou www.binarytides.com, pokud selhal požadavek protokolu http "/" portu 80, stav =200, pak upozorněte
Pokud selže buď „port 80“ nebo „http server“ nebo „stav 200 pro / url“, bude vygenerováno upozornění. Je to účinný způsob, jak zkontrolovat, zda je váš web funkční a dostupný uživatelům.
3. Webový server Apache – Process Monitoring
Procesy jsou monitorovány pomocí specifických pid souborů. Například na Debianu má webový server Apache pid umístěný na /var/run/apache2/apache2.pid, který lze zkontrolovat a ověřit, zda Apache běží nebo ne.
# Monitorujte Apache a restartujte, pokud neběží, také alertcheck proces apache pomocí pidfile /var/run/apache2/apache2.pid start program ="/etc/init.d/apache2 start" stop program ="/etc/init .d/apache2 stop"
Výše uvedené říká monitu, aby sledoval proces ze zadaného souboru pid. Zde, pokud monit nenajde proces spuštěný, pokusí se jej spustit pomocí příkazu uvedeného v parametru "start program". Ve výchozím nastavení bude monit také generovat upozornění (e-mail) po restartu.
Pouze monitor
Pokud nechcete, aby monit restartoval apache a pouze informoval o události, použijte jiný druh konfigurace
# Upozornění, pokud apache neběží, zkontrolujte proces apache pomocí souboru pidfile /run/apache2/apache2.pid, pokud neexistuje, upozorněte
4. Zkontrolujte Mysql na portu 3306 – Port monitoring
V tomto příkladu monitorujeme databázi mysql nikoli pomocí pid, ale přímo připojením k servisnímu portu, který je 3306.
Chcete-li zkontrolovat pouze číslo portu pomocí protokolu, použijte následující konfiguraci -
# zkontrolujte pouze port 3306zkontrolujte hostitele localmysql s adresou localhost, pokud selže protokol mysql na portu 3306, pak upozorněte
Následující konfigurace zkontroluje proces mysql a pokud neběží, restartuje se. Také by to zkontrolovalo službu portu 3306.
zkontrolujte proces mysql_server pomocí pidfile /var/run/mysqld/mysqld.pid start program ="/etc/init.d/mysql start" stop program ="/etc/init.d/mysql stop" pokud selže hostitel 127.0 .0.1 port 3306 protokol mysql a poté výstraha
5. Monitorujte poštovní server Postfix a porty
Nyní umožňuje nastavit konfiguraci pro monitorování postfixového poštovního serveru. Konfigurace je totožná s předchozími, jen s jiným souborem pid a číslem portu
zkontrolujte hostitele localpostfix s adresou localhost, pokud selže protokol smtp portu 25, poté upozorněte
Chcete-li sledovat proces a restartovat při selhání, použijte toto -
zkontrolujte proces postfix pomocí pidfile /var/spool/postfix/pid/master.pid start program ="/etc/init.d/postfix start" stop program ="/etc/init.d/postfix stop" pokud selže port 25 protokol smtp a poté restartujte
A nezapomeňte, že když je postfix mimo provoz, monit nemusí být schopen odesílat žádné e-maily (pokud nejsou specifikovány jiné poštovní servery). Ale monit je odešle, jakmile bude poštovní server znovu spuštěn.
6. Upozorňovat opakovaně
Ve výchozím nastavení Monit generuje výstrahu pouze dvakrát. Jednou, když test selže, a druhý, když uspěje.
Pokud si přejete dostávat opakovaná upozornění na stejný neúspěšný test (pokud je například příliš důležitý), použijte následující konfiguraci.
nastavit upozornění [email protected] s upozorněním na 15 cyklů
Výše uvedená konfigurace je globální nastavení, které odesílá všechna upozornění po každých 15 kontrolách/cyklech.
Chcete-li opakovat výstrahy pouze pro konkrétní testy, určete direktivu výstrahy v rámci konkrétních testovacích kritérií, jako je toto
zkontrolujte souborový systém datafs s cestou /dev/sda1 alert [email protected] s upozorněním na 1 cyklus, pokud využití prostoru> 80 % 5krát během 5 cyklů, poté upozorněte
Pokud chcete být připomenuti méněkrát, ale opakovaně, použijte něco jako "připomenutí v 10 cyklech".
Zkontrolujte stav Monit
To vyžaduje, aby byl spuštěn monit http démon.
$ sudo monit statusThe Monit daemon 5.8.1 uptime:0mProcess 'apache' status Běžící stav monitorování Monitorované pid 1335 nadřazené pid 1 uid 0 efektivní uid 0 gid 0 doba provozu 1h 52m dětí 7 kilobajtů paměti 29556 paměti kilobajtů 41604 procent celkové paměti 2 % paměti procento celkem 2,9 % procento procesoru celkem 0,0 % procento procesoru celkem 0,0 % shromážděná data Pá, 05. prosince 2014 11:11:18 Stav „osvícení“ systému Běžící stav monitorování Monitorované průměrné zatížení [0,05] [0,26] [0,35] procesor 3,7 % 0,8 % sy 0,0 % wa využití paměti 3613152 kB [ 44,2 %] využití swapu 0 kB [0,0 %] shromážděná data Pá, 05. prosince 2014 11:11:18
Nebo zkontrolujte webové rozhraní na adrese http://localhost:2812/ a zkontrolujte stav všeho
Závěr
Výše uvedené příklady ukazují pouze velmi jednoduché příklady nastavení monitorovacích úloh s Monit.
Monit je schopen dělat mnohem složitější věci, jako je ping na síťové hostitele, spouštění externích skriptů a testování výstupu na určitou hodnotu.
Podívejte se na úplnou dokumentaci na -
https://mmonit.com/monit/documentation/monit.html
Příklady konfigurace z wiki stránky Monit obsahují spoustu příkladů, jak nakonfigurovat monitory pro různé služby -
http://mmonit.com/wiki/Monit/ConfigurationExamplesPokud máte nějakou zpětnou vazbu nebo dotazy, dejte nám vědět v komentářích níže.