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).
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.