Szerver monitorozása a Munin segítségével Debian 9 (Stretch) és Debian 10 (Buster) rendszereken

botond küldte be 2020. 02. 17., h - 14:42 időpontban

Tartalom

  1. oldal: Munin szerver monitor rendszer telepítése és áttekintése
  2. oldal: Munin plugin-ok telepítése, eltávolítása, és jelszavas védelem beállítása

 

Az 1. oldal tartalma

 

Bevezető

Ha szerverünkön futtatott webes és egyéb szolgáltatásokat a nyilvánosság számára is elérhetővé tesszük, felmerülhet az igény egy mindenre kiterjedő monitorozó rendszer iránt, aminek segítségével egy helyről tudjuk követni a szerverünk különböző erőforrásainak kihasználtságával kapcsolatos információkat. Sok ilyen szoftver érhető el manapság, ebben a leírásban a Munin nevű szerver-monitor programcsomag telepítését és üzembe helyezését nézzük át Debian 9 (Stretch) és Debian 10 (Buster) rendszereken.

 

 

A Munin egy Perl nyelven írt pehelysúlyú program, ami a háttérben (cron-ban) futva gyűjti a rendszer minden szegletéből az információkat, amelyekből építi adatbázisát. A program másik része pedig az összegyűjtött adatokból grafikonokat készít, amit aztán elérhetővé tesz a webkiszolgálón keresztül. A rendszer nagyszerűsége az egyszerűségében rejlik: semmi csilli-villi, csak egyszerű html oldalakba illesztett png képek formájában tálalja a különböző statisztikákat. Továbbá moduláris felépítésének köszönhetően rengeteg plugin szerezhető be hozzá például a GitHub Munin közreműködői oldalukról. A felülete roppant egyszerű, ennél fogva könnyen felügyelet alatt tarthatjuk szerverünk minden pontját. A rendszer – a központi részétől elkülöníthető – ún. node-okból épül fel, amiket a megfigyelni kívánt szerverre kell telepíteni, és azon futtatni, ami aztán küldi az adatokat a központi résznek. Ennek köszönhetően a Munin képes egyszerre több szerver figyelésére is egy helyről, viszont ebben az útmutatóban most csak az egy gépre telepített felhasználási módot próbáljuk ki.

 

Előfeltételek

A Munin szerver-monitor programot gyakorlatilag bármilyen Debian környezetre feltelepíthetjük, azonban a Debian csomagtáraiban fellelhető programverziók működésbeli különbségei miatt itt már csak a Debian 9 és Debian 10 rendszerekben elérhető változatokkal foglalkozunk. A korábbi, Debian 8 (Jessie) csomagtárában lévő munin csomag már annyira régi, hogy annak még másképp kellett végezni az életre keltését. Ennek a leírásnak a segítségével tehát az alábbi szerver konfigurációk bármelyikére telepíthető a Munin szerver statisztika:

Minimális szerverek:

LAMP szerverek:

Tökéletes szerverek:

Természetesen minél összetettebb a szerverünk, annál több szolgáltatást tud figyelni a Munin, így használata is annál indokoltabb. A fentiek közül a két kiemelt szerveren teszteltem a Munin telepítését. Ennek megfelelően a szerverek újabb változatai már tartalmazni fogják ezt a kiegészítést is.

 

Előkészületek

Debian 9 (Stretch) esetén backports tároló beállítása

A Debian 9 (Stretch) backports tárolójában elérhető a munin csomag 2.0.49-es verziója, ami megegyezik a Debian 10 (Buster) csomagtárában lévő változattal. Ezért ha Debian 9-re telepítünk, akkor be kell állítanunk a backports tárolót, mert anélkül csak a 2.0.33-as verziót érhetjük el.

Ha viszont a Debian 9 tökéletes szerverre telepítünk, ahol már korábban be lett állítva a backports csomagtár a Let's Encrypt telepítése során, akkor át is ugorhatjuk ezt a részt, mindenesetre ellenőrizzük ezt a beállítást.

A csomagtár beállításához lépjünk be root-ként, majd nyissuk meg a /etc/apt/sources.list fájlt a nano-val:

nano /etc/apt/sources.list

És adjuk hozzá a következő sorokat:

deb http://ftp.debian.org/debian stretch-backports main contrib non-free
deb-src http://ftp.debian.org/debian stretch-backports main contrib non-free

Csomagtárak frissítése

A csomagtár lista módosítása után mindenképpen, illetve kisebb-nagyobb telepítések előtt pedig ajánlott frissíteni a csomagtár adatbázist és a csomagjainkat a megszokott módon:

apt-get update
apt-get upgrade

Ezután, ha ránézünk a csomagra láthatjuk a verziókat:

apt-cache policy munin

Kimenet Debian 9-en:

Munin csomag ellenőrzése Debian 9 (Stretch) rendszeren

Debian 10-en pedig:

Munin csomag ellenőrzése Debian 10 (Buster) rendszeren

 

 

Munin telepítése

Csomagfüggőségek és az alapcsomag telepítése

A korábban felsorolt szerver konfigok közül a tökéletes szervereken már telepítve lehetnek ezek a csomagok, de hogy biztosan mindenhol működjön, futtassuk az alábbi parancsot:

apt-get -y install \
    apache2 \
    libapache2-mod-fcgid \
    libcgi-fast-perl \
    perl perl-base

Engedélyezzük az fcgid csomagot (ez is már engedélyezve van a tökéletes szervereken):

a2enmod fcgid

Ezután telepítsük a Munin rendszer csomagjait.

Debian 9

Debian 9 esetén külön a backports tárolóból hajtsuk végre a telepítést:

apt install -t stretch-backports \
    munin \
    munin-common \
    munin-node \
    munin-plugins-core \
    munin-plugins-extra
Ha a csomagtár listánkba felvettük a Debian backports tárolóját, alapértelmezetten az APT csomagkezelő nem ezt részesíti előnyben a csomagok telepítése/frissítése során, hanem, a hagyományos csomagtárakat. Így normál telepítések és csomagfrissítések során továbbra is a stabil változatait kapjuk a csomagoknak. Ha a backports tárolóból szeretnénk külön telepíteni valamit, akkor azt a fenti módon tehetjük meg, hogy a felsorolt csomagok újabb verzióit kaphassuk meg. Természetesen az így telepített csomagok további frissítései is már innen kerülnek alkalmazásra.

Debian 10

Debian 10-re pedig telepítsük a megszokott módon:

apt-get -y install \
    munin \
    munin-common \
    munin-node \
    munin-plugins-core \
    munin-plugins-extra

Konfiguráció beállítása

Nyissuk meg szerkesztésre a konfigurációs fájlját:

nano /etc/munin/munin.conf

És végezzünk el az alábbi beállításokat:

#dbdir /var/lib/munin
#htmldir /var/cache/munin/www
#logdir /var/log/munin
#rundir /var/run/munin

[...]

#tmpldir /etc/munin/templates

[...]

# a simple host tree
[szerverünk_FQDN_neve]
address 127.0.0.1
use_node_name yes

[...]

  • Vegyük ki a pirossal kiemelt kommenteket
  • Kicsit lejjebb Írjuk be a zölddel kiemelt rész (az eredeti fájlban: localhost.localdomain) helyére a szerverünk FQDN nevét (teljes nevét). Ha nem tudjuk pontosan, akkor ezt a hostname -f paranccsal is kiolvashatjuk. Itt ügyeljünk, hogy a szerver neve a szögletes zárójelek között legyen.

Apache beállítása

Nyissuk meg szerkesztésre a Munin Apache konfigurációs fájlját:

nano /etc/munin/apache24.conf

És itt is végezzünk el néhány módosítást:

[...]

<Directory /var/cache/munin/www>
	#Require local
	Require all granted
	Options FollowSymLinks SymLinksIfOwnerMatch
	Options None
</Directory>

<Directory /usr/lib/munin/cgi>
	#Require local
	Require all granted
	Options FollowSymLinks SymLinksIfOwnerMatch
	<IfModule mod_fcgid.c>
		SetHandler fcgid-script
	</IfModule>
	<IfModule !mod_fcgid.c>
		SetHandler cgi-script
    </IfModule>
</Directory>

[...]

Itt is kommentezzük ki mindkét blokkban a zölddel kiemelt résznek megfelelően a Require local sorokat, valamint illesszük be a zöld mintának megfelelően a plusz 2x2 sort is.

Ezután indítsuk újra az Apache-ot, és a munin node-ot:

systemctl restart apache2
systemctl restart munin-node

Munin ellenőrzése

Ellenőrizzük a Munin rendszerünket a böngészőben a szerver IP-címe vagy hosztneve végére fűzött /munin alkönyvtárba lépve:

http://debian9.linuxportal.vm/munin/

Munin - Kezdőoldal

http://debian10.linuxportal.vm/munin/

Munin - Kezdőoldal Debian 10-en

Ha a szerveren működnek weboldalak, akkor azoknak a webcímei alatt lévő /munin alkönyvtárakból is elérhető a felület, amennyiben a helyi – vagy virtuális gép esetén a gépet futtató gazda – számítógép hosts fájljában be vannak állítva. Éles szerverkörnyezet (fix IP-cím) és regisztrált domain nevek esetén természetesen enélkül is működik. 

Ha mindent jól csináltunk, akkor bejön a kezdőoldala. A bal oldali menüben nézelődhetünk a grafikonok között. De erről majd a leírás végén.

A Munin alaprendszere tehát életre kelt, ami már tartalmaz néhány plugin-t, de még telepíthetünk kedvünk szerint néhányat.

 

 

Webes felület áttekintése

Ezt a részt eredetileg külön a harmadik oldalra szántam, de mivel a második oldal hosszabbra nyúlt a tervezettnél, ezért itt optimálisabb helye lesz a webes grafikonok áttekintésének. Az itt következő rész képei tehát már a bővítmények feltelepítése és beállítása után kerültek felvételre, így itt már sokkal több menü és grafikon található. Minden grafikonra természetesen nem térünk ki, csak a fontosabbakat mutatom be. Továbbá vannak olyan részek is, amik a virtuális gépen nem működnek (pl. hőmérsékleti szenzorok), ezeket a szerveremen lévővel pótolom mintaként.

Maga a felület, mint említettem az elején is, nagyon egyszerű, fapados, cserében egy könnyen áttekinthető, szinte mindenre kiterjedő szerver-analízist kapunk. Lássuk is a Munint működés közben!

Tehát újra belépve a kezdőoldalra már több menükategória fogad bennünket:

Munin kezdőoldal a bővítmények telepítése után

Az apache menübe lépve találunk néhány grafikont:

Munin - Apache menü

Itt láthatjuk az Apache különböző állapotaival kapcsolatos egynapos grafikonokat. Például hogy hány lekérés érkezik a szerverre másodpercenként átlagosan, illetve hogy hány Apache munkafolyamat fut jelenleg, stb...

Ha rákattintunk valamelyik grafikon-képre, akkor pedig bejön egy részletesebb oldal, amin az adott grafikon napi, heti, havi és éves grafikonját láthatjuk:

Munin - Apache menü - részletes megjelenítés

A többi menüben is ugyanígy jelennek meg a grafikonok. Mint említettem, a felület roppant egyszerű, de informatív grafikonjainak köszönhetően gyors átfogó képet kaphatunk szerverünk állapotáról..

A grafikonokon mutatkozó kimaradások a virtuális gép üzemen kívüli időszakában jelentkeztek, mivel több napja készítem ezt a leírást, és nem megy folyamatosan a virtuális gép.

Ebben a menüben a gépben lévő merevlemezekről kaphatunk részletes információt:

Munin - Disk menü

Itt sok grafikon van, kicsit lejjebb görgetve még érdemes megemlíteni az adatátviteli és kihasználtsági grafikonokat is:

Munin - Disk menü 2.

Ez a virtuális gép természetesen üresjáratban megy, de egy több weboldalt is futtató forgalmasabb szerver esetén már használható adatokhoz juthatunk a háttértáraink teljesítéséről.

A két mysql menüben kaphatunk mindenre vonatkozó grafikon sokaságot az adatbázis-kiszolgálónnkal lapcsolatban:

Munin - Mysql menü

Kicsit lejjebb görgetve ezen a grafikonon éppen láthatjuk, hogy milyen arányban futnak SQL műveletek a szerveren. Ezek alapján például felmérhetjük, hogy a futtatott weboldalak hogyan veszik igénybe az adatbázisokat (írás/olvasás), ami alapján optimálisan választhatjuk meg például a háttértárakat, és azoknak telepítési sémáját (pl raid beállítások), egy következő szerver összeállításnál.

 

 

A hálózati részben is sok mindenről tájékozódhatunk:

Munin - Network menü

Például a tűzfalunkon áthaladó adatok mennyiségéről, vagy a HTTP oldalletöltések sebességéről. Kicsit lejjebb még a Fail2Ban által letiltott IP-címek mennyiségét is megtudhatjuk. Érdekességképpen itt beteszem a szerveremen lévő Fail2Ban havi bontású képét:

Munin - Network - Fail2Ban

Itt a lényeg például, hogy amióta kitiltottam egy csomó robotot, azóta időszakosan ingázik a tiltott IP-címek mennyisége, tehát időszakosan próbálkoznak újra jönni. (Cserében viszont nincs felesleges CPU terhelés...)

Itt pedig a különböző hardverek hőmérsékleteit és az ezzel kapcsolatos dolgokat követhetjük nyomon:

Munin - Sensors - ventilátorok sebességei

Munin - Sensors - HDD hőmérsékletek

Mivel a virtuális gépben ezek nem működnek, ezért ezeket is a szerveremből kölcsönöztem illusztrációként.

És végül még benézünk a rendszer menübe is, ahol még szintén sok grafikon van, ezek közül néhány:

Munin - System - CPU használat

Munin - System - Átlagos load érték

Munin - System - Memória használat

Ezeken kívül természetesen még rengeteg grafikonja van a rendszernek, mindet felesleges lenne itt felsorolni.

 

 

A következő oldalon folytatjuk a Munin plugin-ok telepítésével, kezelésével és használatával.

 

 

Lapozó

Ez a leírás több oldalból áll: