GNU/Linux >> Znalost Linux >  >> Cent OS

Monitorování serveru pomocí munin a monit na CentOS 5.2

V tomto článku popíšu, jak můžete monitorovat svůj server CentOS 5.2 pomocí munin a monit. munin vytváří šikovnou malou grafiku o téměř každém aspektu vašeho serveru (průměrné zatížení, využití paměti, využití CPU, propustnost MySQL, provoz eth0 atd.) bez velké konfigurace, zatímco monit kontroluje dostupnost služeb jako Apache, MySQL, Postfix a bere příslušná akce, jako je restart, pokud zjistí, že se služba nechová podle očekávání. Kombinace těchto dvou vám poskytuje plné monitorování:grafika, která vám umožní rozpoznat aktuální nebo nadcházející problémy (jako „Brzy potřebujeme větší server, naše průměrná zátěž se rychle zvyšuje.“) a hlídací pes, který zajišťuje dostupnost monitorovaných služeb. .

Přestože munin umožňuje monitorovat více než jeden server, zde se budeme zabývat pouze monitorováním systému tam, kde je nainstalován.

Tento tutoriál byl napsán pro CentOS 5.2, ale konfigurace by se s malými změnami měla týkat i jiných distribucí.

Nejprve chci říci, že to není jediný způsob, jak nastavit takový systém. Existuje mnoho způsobů, jak tohoto cíle dosáhnout, ale já volím tento způsob. Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

Hostname našeho systému je server1.example.com a máme na něm web www.example.com s kořenem dokumentu /var/www/www.example.com/web.

2 Povolit úložiště RPMforge

Na CentOS 5.2 nejsou munin a monit dostupné ve výchozích úložištích CentOS. Naštěstí je můžeme nainstalovat z úložiště RPMforge. Chcete-li povolit úložiště RPMforge, spustíme

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6- 1.el5.rf.i386.rpm
rm -f rpmforge-release-0.3.6-1.el5.rf.i386.rpm

na hostitelích i386 a

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.3.6- 1.el5.rf.x86_64.rpm
rm -f rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

na hostitelích x86_64 (nejnovější verze se prosím podívejte na https://rpmrepo.org/RPMforge/Using).

3 Instalace a konfigurace munin

Chcete-li nainstalovat munin na CentOS 5.2, provedeme toto:

yum install munin munin-node

Poté vytvoříme odkazy pro spuštění systému pro munin a spustíme jej:

chkconfig --levels 235 munin-node na
/etc/init.d/munin-node start

Dále musíme upravit konfigurační soubor munin /etc/munin/munin.conf. Chceme, aby munin dal svůj výstup do adresáře /var/www/www.example.com/web/monitoring, proto změníme hodnotu htmldir a chceme, aby místo localhost používal název server1.example.com. localdomain ve výstupu HTML, proto nahradíme localhost.localdomain server1.example.com. Bez komentářů vypadá změněný soubor takto:

vi /etc/munin/munin.conf
[...]dbdir /var/lib/muninhtmldir /var/www/www.example.com/web/monitoringlogdir /var/log/ muninrundir /var/run/munin# Kde hledat HTML šablonustmpldir /etc/munin/templates[...]# jednoduchý hostitelský strom[server1.example.com] adresa 127.0.0.1 use_node_name ano[...] 

Dále vytvoříme adresář /var/www/www.example.com/web/monitoring a změníme jeho vlastnictví na uživatele a skupinu munin, jinak munin nemůže umístit svůj výstup do tohoto adresáře. Poté restartujeme munin:

mkdir -p /var/www/www.example.com/web/monitoring
chown munin:munin /var/www/www.example.com/web/monitoring
/etc/init .d/munin-node restart

Nyní počkejte několik minut, aby munin mohl vytvořit svůj první výstup, a poté přejděte ve svém prohlížeči na http://www.example.com/monitoring/ a uvidíte první statistiky. Po několika dnech by to mohlo vypadat takto:

(Toto je jen malý výňatek z mnoha grafik, které munin produkuje...)

4 Ochrana heslem Výstupní adresář munin (volitelné)

Nyní je dobré chránit heslem adresář /var/www/www.example.com/web/monitoring, pokud nechcete, aby každý mohl vidět každou malou statistiku o vašem serveru.

Za tímto účelem vytvoříme soubor .htaccess ve /var/www/www.example.com/web/monitoring:

vi /var/www/www.example.com/web/monitoring/.htaccess
AuthType BasicAuthName "Pouze členové"AuthUserFile /var/www/www.example.com/.htpasswdvyžadovat platného uživatele

Poté musíme vytvořit soubor s hesly /var/www/www.example.com/.htpasswd. Chceme se přihlásit s uživatelským jménem admin, takže uděláme toto:

htpasswd -c /var/www/www.example.com/.htpasswd správce

Zadejte heslo pro správce a máte hotovo!

5 Instalace a konfigurace monit

Dále nainstalujeme monit:

yum install monit

Poté vytvoříme odkazy pro spuštění systému pro monit:

chkconfig --levels 235 monit on

výchozí konfigurační soubor monitu je /etc/monit.conf, kde můžete najít příklady konfigurace (další příklady konfigurace najdete na http://mmonit.com/wiki/Monit/ConfigurationExamples), které jsou všechny zakomentovány, ale říká monitu abychom také hledali konfigurační soubory v adresáři /etc/monit.d, proto místo úpravy /etc/monit.conf vytvoříme nový konfigurační soubor /etc/monit.d/monitrc. V mém případě chci monitorovat proftpd, sshd, mysql, Apache a postfix, chci povolit webové rozhraní monit na portu 2812, chci webové rozhraní https, chci se přihlásit in do webové rozhraní s uživatelským jménem admin a testem hesla a chci, aby monit zasílal e-mailová upozornění na [email protected], takže můj soubor vypadá takto:

vi /etc/monit.d/monitrc
set daemon 60set logfile syslog facility log_daemonset mailserver localhostset mail-format { from:[email protected] }set alert [email protected]set httpd port 2812 and SSL POVOLIT PEMFILE /var/certs/monit.pem povolit proces admin:testcheck proftpd s pidfile /var/run/proftpd.pid spustit program ="/etc/init.d/proftpd start" zastavit program ="/etc/init. d/proftpd stop" pokud selže protokol ftp portu 21, potom restart, pokud se 5 restartuje během 5 cyklů, pak časový limit zkontroluj proces sshd pomocí souboru pidfile /var/run/sshd.pid spustí program "/etc/init.d/sshd start" zastaví program "/ etc/init.d/sshd stop" pokud selže protokol ssh portu 22, potom restartujte, pokud se během 5 cyklů restartuje 5, pak timeout zkontrolujte proces mysql pomocí pidfile /var/run/mysqld/mysqld.pid skupinovou databázi spusťte program ="/etc/init. d/mysqld start" stop program ="/etc/init.d/mysqld stop" pokud selže hostitel 127.0.0.1 port 3306, restartuje se, pokud se 5 restartuje během 5 cyklů, pak kontrola časového limitu p rocess apache se skupinou pidfile /var/run/httpd.pid www start program ="/etc/init.d/httpd start" stop program ="/etc/init.d/httpd stop" pokud selže hostitel www.example.com protokol http portu 80 a požadavek „/monit/token“, poté restartujte, pokud je cpu větší než 60 % po 2 cykly, poté upozorněte, pokud je cpu> 80 % po 5 cyklů, restartujte, pokud totalmem> 500 MB po 5 cyklů, restartujte, pokud děti> 250 poté restartujte, pokud je loadavg(5min) větší než 10 po dobu 8 cyklů, poté zastavte, pokud se během 5 cyklů restartují 3, poté timeout zkontrolujte proces postfixu pomocí pidfile /var/spool/postfix/pid/master.pid skupinový program spuštění pošty ="/etc/init. d/postfix start" stop program ="/etc/init.d/postfix stop" pokud selže protokol smtp portu 25, restartuje se, pokud se během 5 cyklů restartuje 5, pak vyprší časový limit

(Ujistěte se prosím, že kontrolujete pouze procesy, které skutečně existují na vašem serveru – jinak se monit nespustí. To znamená, že pokud řeknete monitu, aby zkontroloval Postfix, ale Postfix není v systému nainstalován, monit se nespustí.)

Konfigurační soubor je docela samovysvětlující; pokud si nejste jisti některou možností, podívejte se na dokumentaci monit:http://mmonit.com/monit/documentation/monit.html

V části Apache konfigurace monit najdete toto:

 pokud selhal protokol http hostitele www.example.com portu 80 a požadavek „/monit/token“, restartujte

což znamená, že monit se pokusí připojit k www.example.com na portu 80 a pokusí se získat přístup k souboru /monit/token, který je /var/www/www.example.com/web/monit/token, protože kořen dokumentu našeho webu je /var/www/www.example.com/web. Pokud monit neuspěje, znamená to, že Apache neběží a monit jej restartuje. Nyní musíme vytvořit soubor /var/www/www.example.com/web/monit/token a napsat do něj nějaký náhodný řetězec:

mkdir /var/www/www.example.com/web/monit
echo "hello"> /var/www/www.example.com/web/monit/token

Dále vytvoříme pem cert (/var/certs/monit.pem), který potřebujeme pro webové rozhraní monit šifrované SSL:

mkdir /var/certs
cd /var/certs

K vytvoření našeho certifikátu potřebujeme konfigurační soubor OpenSSL. Může to vypadat takto:

vi /var/certs/monit.cnf
# create RSA certs - ServerRANDFILE =./openssl.rnd[ req ]default_bits =1024encrypt_key =yesdistinguished_name =req_dnx509_extensions =cert_type[ req_country ] (2 písmenný kód)countryName_default =MOstateOrProvinceName =Název státu nebo provincie (celý název)stateOrProvinceName_default =MonitorialocalityName =Název lokality (např. město)locality_default =MonittownorganizationName =Název organizace (např. společnost) Název_organizační jednotky (výchozí název_organizace =Monit Inc.organization např. section)organizationalUnitName_default =Oddělení monitorovacích technologiícommonName =Běžný název (FQDN vašeho serveru)commonName_default =server.monit.moemailAddress =E-mailová adresaemailAddress_default =[e-mail chráněný][ cert_type ]nsCertType =server

Nyní vytvoříme certifikát takto:

openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
openssl gendh 512>> /var/certs/monit.pem
openssl x509 -předmět -dates -otisk prstu -noout -in /var/certs/monit.pem
chmod 700 /var/certs/monit.pem

Konečně můžeme začít monit:

/etc/init.d/monit start

Nyní nasměrujte svůj prohlížeč na https://www.example.com:2812/ (ujistěte se, že port 2812 není blokován vaším firewallem), přihlaste se pomocí admin a otestujte a měli byste vidět webové rozhraní monit. Mělo by to vypadat takto:

(Hlavní obrazovka)

(Stránka stavu Apache)

V závislosti na vaší konfiguraci v /etc/monit.d/monitrc monit restartuje vaše služby, pokud selžou, a odešle e-maily s upozorněním, pokud se změní ID procesů služeb atd.

Bavte se!

  • munin:http://munin.projects.linpro.no
  • monit:http://mmonit.com/monit
  • CentOS:http://www.centos.org
  • RPMforge:https://rpmrepo.org/RPMforge

Cent OS
  1. Nastavení serveru a klienta NFS na CentOS 7.2

  2. Monitorujte a spravujte své služby pomocí Monit na CentOS 6 / RHEL 6

  3. Nastavte poštovní server pomocí PostfixAdmin a MariaDB na CentOS 7

  1. Monitorování serveru pomocí Icinga 2 a Icingaweb 2 na CentOS 7

  2. Jak sledovat využití zdrojů vašeho serveru pomocí Munin na CentOS 6

  3. Nainstalujte Zenario s Apache, PHP a MariaDB na CentOS 7

  1. Jak nainstalovat OpenVPN Server a klienta s Easy-RSA 3 na CentOS 7

  2. Jak nainstalovat OpenVPN Server a klienta s Easy-RSA 3 na CentOS 8

  3. Nainstalujte Mattermost s PostgreSQL a Nginx na CentOS 7