Jak monitorovat stav linuxového serveru? | Buchtič blog o IT a PC

... je jedním z nejnavštěvovanějších tuzemských blogů zabývajících se IT a češtinami do programů a her. Pokud máte problém nejen
s počítačem pravděpodobně u mě naleznete řešení, případně si o něj napište. Zajímám se rovněž o herní průmysl a internet věcí - každý produkt pořádně prověřím. Přiblížíme si tvorbu webových prezentací a budeme cestovat po světě skrz Google Earth. »

 

Jak monitorovat stav linuxového serveru?

3 Lis 2019

Provozujete vlastní webový server, případně jste dostali na starost správu linuxového serveru a hledáte způsob, jak monitorovat jeho stav? Dnes si ukážeme, že není nutné rovnou vytahovat kanon na vrabce neboli Zabbix a ani si psát vlastní skript.

Monit je bezplatný nástroj určený pro dohled Unixových systémů, který dokáže automaticky provést potřebné kroky pro vyřešení chybového stavu – typicky opětovné spuštění služby. Zároveň disponuje vestavěným webovým serverem, proto se na aktuální stav svého serveru můžete podívat i na dovolené. Pokud si předem vše nastavíte, pro vyřešení krizové situace se následně nebudete muset k serveru připojovat prostřednictvím SSH, a vše zvládnete klidně ze svého telefonu. Pojďme si Monit nainstalovat na CentOS a podívat se na jeho základní konfiguraci.

Instalaci proveďte příkazem: yum install monit

Automatické spuštění po startu systému zajistíte příkazem: systemctl enable monit

Konfigurace

V základu je webové rozhraní dostupné prostřednictvím protokolu HTTP na portu 2812 a výchozí přihlašovací údaje jsou admin/monit. To se nám samozřejmě nelíbí, neboť heslo nechceme přenášet nešifrovaně. Pro provedení změn si otevřete soubor /etc/monitrc.

  • Najděte řádek set httpd port a změňte si port na vámi požadovaný. Nezapomeňte, že v případě CentOSu musí být port vyšší než 1024.
  • Na řádku allow admin:monit změňte přihlašovací údaje pro administrátorský účet.

Pokud nechcete mít webové rozhraní dostupné z celého internetu, odkomentujte řádek use address localhost, a doplňte jej o IP adresu, z níž se budete k serveru připojovat.

Vytvoření read-only uživatele

Pro prosté zjištění stavu se není nutné hlásit administrátorským účtem. K zobrazení doby běhu služeb a dalších informací o serveru si můžete vytvořit pouze audit účet, který nemá oprávnění pro provádění akcí (například restart služby). Nejprve si definujeme skupinu uživatelů s oprávněním pouze pro čtení: allow @users read-only

Následně vytvoříme uživatele dohled a přidáme jej do skupiny:
allow dohled:lekarna read-only

Instalace SSL certifikátu

V konfiguračním souboru odkomentujte podsekci with ssl a definujte cestu k souboru s certifikátem, který musí obsahovat celý řetězec včetně privátního klíče.
pemfile: /etc/letsencrypt/archive/mujserver.cz/fullchain-monit.pem

Jak sledovat služby a zajistit jejich restart?

Když nyní máme zajištěn bezpečný přístup do webového rozhraní, můžeme se vrhnout na definování služeb, které chceme monitorovat. V principu jde o to, že si zjistíte umístění pidfile daného procesu, a příkazy pro jeho spuštění. Ukážeme si to na příkladu databázového serveru MySQL.
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = "/bin/systemctl start mysqld"
stop program = "/bin/systemctl start mysqld"

A ještě jeden příklad s definováním automatického restartu při nedostupnosti služby na definovaném portu.
check process apache with pidfile /var/run/httpd.pid
start program = "/etc/init.d/httpd start" with timeout 60 seconds
stop program = "/etc/init.d/httpd stop"
if failed port 80 for 2 cycles then restart
if failed port 443 for 2 cycles then restart

Zasílání notifikací

Pokud chcete mít přehled o tom, co na serveru děje, aktivujte si zasílání oznámení na e-mail. Stačí jen do konfiguračního souboru přidat následující řádky:
set mailserver localhost
set alert administrator@mojedomena.cz

Pokud lokálně nemáte žádný poštovní server, externí SMTP definujte následovně:
set mailserver smtp.mojedomena.cz port 587
username "uzivatel" password "tajneheslo"
using tls

Volitelně si můžete definovat formát zasílané zprávy. Příklad:
set mail-format {
from: monit@mujserver.cz
reply-to: noreply@mujserver.cz
subject: Monit: $EVENT
message: Monit v $DATE provedl $ACTION nad službou $SERVICE.
Detailní informace: $DESCRIPTION.
Strážce tvého serveru
}

Tím bychom za sebou měli ukázku základní konfigurace, díky které si automatizujete odstraňování problémů k jejichž vyřešení stačí provést restart služby. Definovat dále můžete například automatický restart služeb po několika dnech, monitorovat vytížení sítě či ověřovat platnost certifikátů. Možnosti použití jsou detailně popsány v dokumentaci a další praktické tipy a příklady naleznete ve wiki.

Stejný postup můžete použít na monitorování stavu virtuální appliance ESET Security Management Center. Stačí si balíček monit doinstalovat z repozitáře a nakonfigurovat dle svých potřeb (typicky sledovat službu mysqld, tomcat, eraserver a eraagent). Samozřejmě si nezapomeňte povolit port ve firewallu.

Martin Buchta | Kategorie: Internet, IT
| Počet zobrazení: 260
Tagy: ,

← Líbil se vám článek? Podělte se o něj s přáteli!

 
 


Doporučuji

Osobní blog Dominika Fryče

Podnikový ekonomický software Money se přizpůsobí potřebám vaší společnosti!

Pro efektivní řešení mezd je ideální komplexní mzdový systém Vema.

Tip na spolehlivý podnikový crm systém Altus Vario.

eWay-CRM je spolehlivý software pro řízení projektů. Vyzkoušejte zdarma!

Chytrý mobilní telefon Apple iPhone nabízí vysoký výkon bez kompromisů.

Chcete si vést pohodlně účetnictví online? Se službou iDoklad je to snadné!

 
Více v Internet, IT
Jak v Internet Explorer skrýt tlačítko, které otevírá Microsoft Edge

Microsoft se neustále snaží tlačit uživatele k používání prohlížeče Microsoft Edge. S příchodem aktualizace označené jako Creators Update propašoval do...

Zavřít