Munin – monitoring serveru

Munin je jednou z nejznámějších monitorovacích alpikací, která se používá především na serverových stanicích. Je napsaný v jazyku Perl a je dostupný pro většinu platforem. Munin s hromažďuje různá systémová data jako například vyťížení procesoru, síťový trafik, obsazenost diskových oddílů, využití paměti, atd. a ty vynáší přehledně do grafů, které periodicky aktualizuje.

Munin je jednou z nejznámějších monitorovacích alpikací, která se používá především na serverových stanicích. Je napsaný v jazyku Perl a je dostupný pro většinu platforem. Munin s hromažďuje různá systémová data jako například vyťížení procesoru, síťový trafik, obsazenost diskových oddílů, využití paměti, atd. a ty vynáší přehledně do grafů, které periodicky aktualizuje.

Zdrovojá data může Munin získávat z lokální stanice nebo také ze vzdálených serverů. Navíc existuje pro Munin obrovské množství pluginů pro monitorování množstí parametrů různých aplikací, například pluginy pro web server, ftp server, poštovní server, atd. Některé pluginy jsou však použitelné jenom na některých platformách (Linux, FreeBSD, NetBSD, Solaris, AIX, HP-UX, atd.).

V dnešním zápisku se zaměřím na instalaci a základnou konfiguraci aplikace Munin na systému CentOS 5.

Grafový server – Munin master

Aplikace Munin se skládá ze dvou částí, které také odpovídají balíčkům. První komponentou je aplikace munin master, která představuje serverovou část, tzv. “grafový server”. Ta se stará poskytování výstupních dat, tj. grafů, které se ukládají ve formě obrázků do zvoleného adresáře.

Druhou komponentou je aplikace munin node, která představuje uzel pro přístup grafového serveru. Jejím ůkolem je zpřístupnení stanice grafovému serveru.

V našem případě budeme monitovat dva servery. První (například alpha.domena.com) bude sloužit jako munin master (tam se budou ukládat výtupní data) a druhý (například beta.domena.com), ze kterého budeme data jen odebírat. Na alpha.domena.com musíme tedy naistalovat munin master (zdroj výstupních dat) a munin node (přístupový uzel pro gravový server) a na beta.domena.com nám stačí už jenom munin node (tam nebudeme výstupní data ukládat). Chceme-li ukládat výstupná data na jednom serveru, analogoicky to platí i pro další stanice.

Vzhledem k tomu, že se Munin nenachází ve standardních repozitářích distribude CentOS 5, přidáme si repozitář RPMforge, ze kterého Munin naistalujeme. Nejdřív si ze stránek RPMforge stáhneme balíček pro přidání repozitáře. Vybereme variantu pro RHEL5/CentOS5 a balíček naistalujeme (včetně importu klíčů)

[root@alpha:~]$ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
[root@alpha:~]$ rpm -Uhv rpmforge-release-0.5.1-1.el5.rf.i386.rpm

Na server alpha.domena.com naistalujeme munin master a munin node

[root@alpha:~]$ yum install munin munin-node

Konfigurace jak pro munin master tak pro munin node se nachází v adresáři /etc/munin (soubor munin.conf pro munin master a munin-node.conf pro munin-node). Upravíme konfiguraci pro munin master

[root@alpha:~]$ vim /etc/munin/munin.conf
...
#zdroj dat (aplikace používá RRDTool) - představuje umístnění rrd databází
dbdir   /var/lib/munin

#umístnění grafů (obrázků), html a dalších dokumentů pro zobrazování monitoringu
htmldir /var/www/munin

#umístnění logů aplikace
logdir  /var/log/munin

#umístnění stavových souborů (pid)
rundir  /var/run/munin

#umístnění šablon pro zobrazování výstupu
tmpldir /etc/munin/templates

#strom hostů, tj. serverů, kterých monitor se má ukládat/zobrazovat na grafovém serveru
[alpha.domena.com]	#přidá hostname alpha.domena.com do skupiny domena.com
    address 127.0.0.1	#IP adresa/hostname domény alpha.domena.com
    use_node_name yes	#munin master se nachází na alpha.domena.com, proto adresa localhostu
...

a změníme vlastníka adresáře /var/www/munin na munin:munin

[root@alpha:~]$ chown -R munin:munin /var/www/munin

Pro prohlížení monitoringu serveru při uvedené konfiguraci musíme mít v systému naistalovaný web server (např. Apache HTTP server) s nastavením hodnoty direktivy DocumentRoot na /var/www (ve většině instalací Apache HTTP serveru je to předvolená hodnota, i proto jsme zvolili hodnotu htmldir jak je uvedeno výše). Následuje nastavení konfigurace lokálního uzlu na alpha.domena.com tak, aby mohl grafový server mohl na tento uzel přistupovat

[root@alpha:~]$ vim /etc/munin/munin-node.conf
...
#port, na kterém bude munin-node poslouchat
port 4949

#IP adresay, na kterých bude munin-node poslouchat
host *

#uživatel, pod kterým bude munin-node běžet
user munin

#skupina, pod kterou bude munin-node běžet
group munin

#IP adresy grafových serverů, tj. stanic, které můžou přistupovat na uzel
#adresy se musí zadávat ve tvaru regulárních výrazů
allow ^127\.0\.0\.1$	#jedná se o uzel, který se nachází na stejném serveru jako Munin master
...

Restartujeme web server

[root@alpha:~]$ service httpd restart

a můžeme prohlížet monitor našeho serveru na URL http://alpha.domena.com/munin/ (nezapomenout na lomítko na konci URL).
Vytížení CPU
Síťový traffic
Využití paměti
Konkrétní tvar URL adresy závisí od hodnoty htmldir a od nastavení web serveru. Zatím máme k dispozici monitoring jenom pro server alpha.domena.com.

Přidání uzlu

Dále je třeba přidat na grafový server monitor pro náš druhý server, tj. beta.domena.com. Na tento server naistalujeme munin node, tj. přístupový uzel pro grafový server alpha.domena.com

[root@beta:~]$ yum install munin-node

Aby mohl grafový server shromažďovat data ze serveru beta.domena.com, musíme nakonfigurovat uzel nakonfiurovat tak, aby měl grafový server povolen přístup na náš uzel. Upravíme tedy konfiguraci pro munin-node, která se nachází v souboru /etc/munin/munin-node.conf (samozřejmě upravujeme konfiguraci na serveru beta.domena.com). Upravíme podobně jako v případě serveru alpha.domena.com

[root@beta:~]$ vim /etc/munin/munin-node.conf
...
#IP adresy grafových serverů, tj. stanic, které můžou přistupovat na uzel
#adresy se musí zadávat ve tvaru regulárních výrazů
allow <adresa_grafového_serveru>	#v našem případě IP adresa alpha.domena.com
...

Nakonec ještě upravíme službu munin-node a zrestartujeme

[root@beta:~]$ chkconfig munin-node on
[root@beta:~]$ service munin-node restart

Také nezapomenout povolit port ve firewall-u, na kterém munin-node poslouchá.

Pro prohlížení na grafovém serveru i monitor pro náš druhý server, tj. beta.domena.com, musíme tuto stanici také přidat na straně grafového serveru. To uděláme přidáním položky do stromu (v našem případě do stejného jako v prvním případě vzhledem ke stejné doméně domena.com) v konfiguraci grafového serveru

[root@alpha:~]$ vim /etc/munin/munin.conf
...
[alpha.domena.com]
    address 127.0.0.1
    use_node_name yes

[beta.domena.com]		#přidá hostname beta.domena.com do skupiny domena.com
    address <IP/hostname>	#IP adresa/hostname pro beta.domena.com
    use_node_name yes	
...

Teď už můžeme na URL http://alpha.domena.com/munin/ prohlížet monitor pro obě naše stanice (musíme chvilku počkat až se načtou nová data z beta.doma.com, případně aktualizovat stránku).

Pluginy

Jak již bylo zmíněno, pro Munin existuje velké množství pluginů pro monitorování různých (především serverových) aplikací. Již při základní instalaci Muninu se do systému instaluje několik desítek pluginů. Tyto pluginy se nacházejí v adresáři /usr/share/munin/plugins. Aby jsme aktivovali některý plugin, stačí nám v nejjednoduším případě vytvořit symlink na požadovaný plugin v adresáři /etc/munin/plugins. Například pro monitorování MySQL serveru zadáme příkaz

[root@alpha:~]$ ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins/

Konfigurace pro jednolivé pluginy se nachází v souborech v adresáři /etc/munin/pluginconf.d/. Konfigurace pro jednotlivé pluginy nebo skupiny pluginů se v konfiguračních souborech definují do hranaých závorek, pod kterými se nacházejí volitelné direktivy a jejich hodnoty, viz příklad

...
[<plugin_name>*]		#název pluginu nebo skupiny pluginů
user <username>			#uživatel, pod kterým bude plugin běžet
group <groupname>		#skupina, pod kterou bude plugin běžet
command <přikaz>		#příkaz, který se vykoná namísto pluginu
env.<proměnná> <hodnota>	#nastaví hodnotu proměnné v prostředí
				# daného pluginu na danou hodnotu
...

Pomocí pluginů si můžeme nastavit profil motitorování serveru na vybrané aplikace. V případě, že chcete monitorovat parametr, pro který nemáte v systému plugin, tak je možné si tento plugin napsat nebo skusit najít na MuninExchange, kde jsou volně dostupné desítky dalších pluginů pro různé aplikace a různé platformy a kam také můžete přispívat vlastními pluginy.

Munin se s oblibou používá na mnoha serverech a je často prvním zdrojem při zjišťování potíží, kterých důsledkem bývá nadměrné vytížení systémoých zdrojů nebo konkrétních aplikací. Dále nám se také může hodit při optimalizaci výkonu serveru.

Like this:

Další témata