V tomto článku popíšu, jak můžete monitorovat váš server Fedora 7 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 Fedoru 7, ale konfigurace by se měla s malými změnami 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 Instalace a konfigurace munin
Chcete-li nainstalovat munin na Fedoru 7, uděláme 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...)
3 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/.htpasswd |
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!
4 Instalace a konfigurace monit
monit není dostupný z oficiálních repozitářů Fedory 7, ale z repozitářů RPMforge (pokyny viz http://dag.wieers.com/rpm/FAQ.php#B2). Nainstalujeme balíček RPMforge pro RHEL 5, který funguje také pro Fedoru 7:
rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Poté 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://www.tildeslash.com/monit/doc/examples.php), které jsou všechny zakomentovány, ale říká monitu, aby také hledal konfigurační soubory v adresáři /etc/monit.d, takže 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
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 když ř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://www.tildeslash.com/monit/doc/manual.php
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!
5 odkazů
- munin:http://munin.projects.linpro.no
- monit:http://www.tildeslash.com/monit/index.php