Nagios 3.5
Piia Ploovits A32, Sandra Sirel A31, Kristian Kivimägi A32, Grete Maisla A31
Kuupäev: 19.11.2013
Sissejuhatus
See artikkel on koostatud Linuxi administreerimise õppeaine raames labor 2 kaitsmise jaoks, mille üldiseks eesmärgiks oli keskse logihalduse lahenduse loomine. Nagios on serverite ja teiste võrguseadmete jälgimise tarkvara, mis saadab administraatoritele tõrgetest automaatteateid. Nagiosega saab jälgida teenuste olekut ja koormust (näiteks sisselogitud kasutajate arv, ketta kasutus, andmebaaside seisukord jne). Nagios kasutab pluginate süsteemi, mis võimaldab vajadusel funktsioone juurde programmeerida. Nagios Remote Plugin Executor (edaspidi NRPE) on Nagiose plugin. NRPE võimaldab jälgida teiste masinate ressursse, mis muidu on kättesaadavad vaid sellesse konkreetsesse masinasse sisse logides (näiteks CPU, mälu ja ketta kasutus). [1]
Labori püstitus
Paigaldadame Ubuntu serverisse Nagios Core monitooringu serveri ja jälgime teist Ubuntu serverit kasutades NRPE-d.
Põhimõisted ja lühendid
Nagios Core- Nagios Core on monitooringu süsteem, mis võimaldab kontrollida süsteemi erinevaid parameetreid ja seisukorda(ketta maht, CPU kasutus jne). Samuti teavitab ta automaatselt administraatorit kui mingi süsteemi parameeter on kriitline või seisukord ei vasta süsteemi normaaltingimustele.
[2]
Nagios Plugins - Erinevad pluginad mille abil saab monitooritavat seadet monitoorida.
Osa pluginaid on kaasas Nagiosega.
Lisaks võib neid alla laadida ka järgmistest asukohtadest:
Nagios Plugins Project: http://nagiosplug.sourceforge.net/
Nagios Downloads Page: http://www.nagios.org/download/
NagiosExchange.org: http://www.nagiosexchange.org/
Pluginate kasutuse kohta saab infot käsuga: ./plugina_nimi --help, mis tuleb käivitada käsurealt.
Plugin tagastab Nagios daemonile ühe neljast signaalist:
0 – teenus on OK
1 – teenus on HOIATUS tasemel
2 – teenus on KRIITILINE
3 – teenuse seisund TEADMATA
Pluginaid pole täiesti eraldiseisvad programmid, nad on pigem nagu alammeetodid.
Pluginaid saab käsurealt käivitada.
Nagios NRPE - Selle teenuse abil saab jälgida teisi seadmeid.
[3]
Laboritöö teostamise eeldused
- Teadmisi Linux operatsiooni süsteemist
- Oskus töötada käsurealt
- Linux või Unix OS, millel on C kompilaatori tugi.
- Veebiserver (soovituslik Apache)
- Thomas Boutell’s gd library versioon 1.6.3 või uuem, mis on vajalik „statusmap” ja „trends CGI” liideste tööks.
- Installeeritud postfix - Postfix-i on vaja selle jaoks, et nagios saadaks administraatorile häire korral emaili.
Labori Keskkond
1) Server - kuhu on installeeritud Nagios ja Nagiose pluginad
2) Ubuntu Server - virtuaal server mida soovime monitoorida
PS! Kuna tegemist on testkeskkonnaga siis hetkel me ei kasutanud Nagiost koos SSL-toega. Reaalses elus aga on rangelt soovitatav kasutada SSL-tuge, et tagada turvalisus!
Nagiose tööpõhimõte
Nagiose serveri ülesandeks on kontrollida võrgus töötavate arvutite ja teenuste seisukorda. Arvutite ja teenuste seisukorda iseloomustavaid parameetreid võib jaotada lähtudes erinevatelt alustelt, näiteks selle järgi, kas parameetrit kontrollitakse üle võrgu või lokaalsest arvutist
- Kontrollitakse üle võrgu - veebileht, nimeserver.
- Kontrollitakse lokaalselt - arvutis töötavate protsesside arv, arvuti koormus, failisüsteemi täituvus, raid lülituse korrasolek.
Lokaalse kontrolli korraldamiseks tuleb kontrollitavasse arvutisse paigaldada lisaks täiendavalt Nagiose tarkvara, üle võrgu kontrollimisel reeglina kontrollitavasse arvutisse ei tule midagi Nagiose-spetsiivilist lisada. Teine võimalus on jaotus teha selle järgi, kes küsib või kes ütleb.
- aktiivne kontroll - Nagiose server esitab teenustele kontrollpäringuid (nt veebileht, nimeserver)
- passiivne kontroll - Nagiose server kuulab teenuste raporteerimisi (nt backupi õnnestumine)
Jällegi, passiivse kontrolli korraldamiseks tuleb kontrollitavasse arvutisse paigaldada lisaks täiendavalt Nagiose tarkvara, aktiivsel kontrollimisel reeglina kontrollitavasse arvutisse ei tule midagi Nagiose-spetsiivilist lisada. [4]
Installeerimine
Kaks varianti: Ise kompileerimine ja apt-get install nagios3.
1) Logige sisse seadmesse kuhu soovite Nagiost installida ja minge üle root kasutajaks käsuga:
sudo -i
2) Seejärel peate installerima järgnevad pakid: apache2, build-essential, libapache2-mod-php5, libgd2-xpm-dev
Kõige enne tuleks teha update.
apt-get update
apt-get -y install apache2
apt-get -y install build-essential
apt-get -y install libapache2-mod-php5
apt-get -y install libgd2-xpm-dev
3) Järgmiseks peame looma nagiose teenuse jaoks tema enda oma kasutaja ja määrama talle parooli
useradd -m -s /bin/bash nagios
passwd nagios
Parooliks määrasime: student
-m (Create a new home directory for the new user.) -s ([-s shell])
4) Et ka veebiliidese kaudu käsklusi jagada, peame looma ka teenusele oma kasutajagrupi
groupadd nag
usermod -a -G nag nagios
usermod -a -G nag www-data
-G (secondary-group[,group,...] Appends the user to the given groups in the /etc/group file. -G)
5) Laeme alla nagiose ning pakime lahti
mkdir NagiosInstall
cd NagiosInstall
wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.5.1/nagios-3.5.1.tar.gz/download
tar -xzf download
6) Käivitame paigaldusskripti
cd nagios
./configure --with-command-group=nag
make all
make install
make install-init
make install-config
make install-commandmode
7) Seadistame veebiserveri nii, et saaksime ka ligi Nagiose veebiliidesele, selle jaoks teeme ka eraldi kasutaja. Samas kaustas kus eelmine punkt.
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
Parooliks ebaturvaline: student
service apache2 reload
8) Seadistame contacts.cfg
nano /usr/local/nagios/etc/objects/contacts.cfg
define contact{ contact_name nagiosadmin ; Short name of$ use generic-contact ; Inherit defau$ alias Nagios Admin ; Full name of $ email student@localhost ; <<***** CHANG$ }
Sinna sisestame e-maili kuhu soovime saada Nagiose poolt saadetavaid teateid.
Nagios on nüüdseks serveril installeeritud. Nüüd installime Nagios Pluginad
1) Esmalt tõmbame pluginad
cd NagiosInstall
wget https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
tar -xzf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure --with-nagios-user=nagios --with-nagios-group=nag
make
make install
2) Kontrollime confi faili, et seal ei leiduks erroreid
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
3) Käivitame Nagiose
service nagios start
4) Paneme ta automaatselt käivitama, kui süsteem stardib
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
5) Nüüd saame ligi nagiose veebiliidesele
Seejärel peame installeerima jälgitavasse serverisse Nagiose pluginad ja NRPE
Siseneme jälgitavasse seadmesse. Meie kasutame Ubuntu Serverit. Kõik käsud tuleb teha juurkasutajana:
sudo -i
1) Loome nagiose jaoks kasutaja
useradd nagios
passwd nagios
Parool: student
2) Paigaldame kompileerimise jaoks vajamineva tarkvara
apt-get update
apt-get -y install build-essential
apt-get -y install libapache2-mod-php5
apt-get -y install libgd2-xpm-dev
apt-get -y install libssl-dev
3) Paigaldame Nagiose pluginad
mkdir NagiosInstall
cd NagiosInstall
wget https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
tar -xzf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure
make
make install
4) Paneme paika õigused
chown nagios:nagios /usr/local/nagios
chown -R nagios:nagios /usr/local/nagios/libexec
5) Paigaldame xinetd. Xinetd listens for incoming requests over a network and launches the appropriate service for that request.
apt-get install xinetd
6) Paigaldame NRPE(ilma ssl toeta)
cd NagiosInstall
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar xzf nrpe-2.13.tar.gz
cd nrpe-2.13/
./configure -disable-ssl
make
7) Paigaldame NRPE plugina (testimiseks), daemoni ja konfiguratsioonifailide näidised ja muudame ta xinetd teenuseks
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
8) Lisame monitooringuserveri ip aadressi lubatud ip-de nimekirja
nano /etc/xinetd.d/nrpe
lisame reale:
only_from = 192.168.56.201 <minu_monitooringuserveri_ip_address>
9) Lisame NRPE teenuse services faili
nano /etc/services
Sisestame rea:
nrpe 5666/tcp # NRPE
10) Restardime xinetd teenuse
service xinetd stop
service xinetd start
11) Kontrollime, kas daemon töötab xinetd all
netstat -at | grep nrpe
Väljund peaks olema:
tcp 0 0 *:nrpe *:* LISTEN
12) Et NRPE pääseks masinale ligi peame iptablesse erandi kirjutama
iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 5666 -j ACCEPT
Salvestame selle:
iptables-save
Seejärel tuleb installeerida NRPE ka monitooringu serverisse
ssh student@192.168.56.201
1) Tõmbame NRPE ja paigaldame
cd NagiosInstall
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar xzf nrpe-2.13.tar.gz
cd nrpe-2.13/
./configure -disable-ssl
make all
make install-plugin
2) Testime, kas saame jälgitava serveriga ühendust
/usr/local/nagios/libexec/check_nrpe -H 192.168.56.202 ←--IP asenda oma monitooritava seadme IP-ga
Vastus peaks olema järgnev:
NRPE v2.13
3) NRPE plugina aktiveerimiseks muudame commands.cfg faili
nano /usr/local/nagios/etc/objects/commands.cfg
Lisame read:
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
4) Kui NRPE plugin on aktiveeritud, tuleb monitooringu serveris defineerida jälgitav host. Defineerime hosti ja teenused, mida jälgima hakkame.
Loome hosti jaoks uue konfiguratsioonifaili:
touch /usr/local/nagios/etc/objects/Ubuntu_server.cfg
Paneme paika õigused:
chown nagios:nag /usr/local/nagios/etc/objects/Ubuntu_server.cfg
Nüüd võtame faili lahti:
nano /usr/local/nagios/etc/objects/Ubuntu_server.cfg
Lisame hosti defineerivad read:
define host{ use linux-server ; Kasutame vaikimisi paigaldatud template-i host_name ubuntu-server ; The name we're giving to this server alias ubuntu server; A longer name for the server address 192.168.56.202 ; IP address of the server }
5) Kui me tahame lisada hosti juba olemasolevasse gruppi, näiteks linux-server, siis me peame avama konf faili, kus antud grupp defineeritud on (linux-server on meil localhost.cfg failis) ja lisame members reale oma hosti:
members localhost,ubuntu-server
6) Lisame teenuseid defineerivad read(tuleb lisada Ubuntu-server.cfg faili):
define service{ use generic-service host_name ubuntu-server service_description CPU Load check_command check_nrpe!check_load } define service{ use generic-service host_name ubuntu-server service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name ubuntu-server service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service host_name ubuntu-server service_description Zombie Processes check_command check_nrpe!check_zombie_procs }
7) Nüüd peame lisama nagios.cfg faili rea, et nagios loeks käivitades selle konfiguratsiooni faili sisse
nano /usr/local/nagios/etc/nagios.cfg
Lisame rea:
cfg_file=/usr/local/nagios/etc/objects/Ubuntu_server.cfg
8) Kontrollime, kas konfiguratsioonifail sisaldab vigu. Kui vigu ei ilmnenud, siis loeme konfifailid uuesti sisse
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios reload
Need on vaid mõned näited, mida saame seda kasutades jälgida. Järgnevalt lühidalt kuidas saab kasutada ka teisi meetoteid.
NRPE pluginate häälestamine
Uue teenuse jälgimiseks tuleb NRPE abil tuleb teha kahte asja:
1) Lisa jälgitava masina nrpe.cfg faili uus command definition.
2) Lisa monitooringu serveri Nagiose konfiguratsioonifaili uus service definition.
Näiteks swapi kasutuse jälgimiseks tuleb teha järgmised sammud:
1) Monitooritava masina seadistamine.
Seadista swap plugin.
Lisame command-i nrpe.cfg faili.
nano /usr/local/nagios/etc/nrpe.cfg
Lisa faili rida:
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
Kui NRPE töötab inetd/xinetd all, siis on jälgitav masin valmis.
2) Monitooringu serveri seadistamine
Seadistame swapi jälgimiseks uue teenuse.
1) Sisesta object configuration faili järgmised read:
nano /usr/local/nagios/etc/objects/Ubuntu_server.cfg
define service{
use generic-service
host_name ubuntu-server
service_description Swap Usage
check_command check_nrpe!check_swap
}
Kontrollime, ega konfiguratsioonis vigu pole.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
laeme konfiguratsioonifailid
service nagios reload
PS! Esmalt logides veebiliidessesse tundub, et meie kasutajal pole õigusi, et näha hoste ja teenuseid. Seda sellepärast, et eelnevalt tegime me kasutaja nagiose liidese jaoks admin.Default username konfiguratsiooni failis on aga kasutaja nagiosadmin, seega ei lubata meie kasutajat ligi. Seda saab parandada hõlpsalt, kui minna /usr/local/nagios/etc ning sealt võtta lahti fail cgi.cfg Seal tuleb muuta ära username nagiosadmin, admini vastu. Konfiguratsiooni failide asukohad
Põhi konfiguratsiooni failid
/usr/local/nagios/etc/nagios.cfg
Süsteemsete seadete konfiguratsiooni fail:
/usr/local/nagios/etc/cgi.cfg
Teenuste ja hostide konfiguratsiooni failid asuvad kataloogis:
/usr/local/nagios/etc/objects/
Defineeritud käskude konfiguratsiooni failid:
/usr/local/nagios/etc/objects/commands.cfg
Defineeritud kontaktid, kellega ühendust võetakse:
/usr/local/nagios/etc/objects/contacts.cfg
Vaikimisi installimisel defineeritud host:
/usr/local/nagios/etc/objects/localhost.cfg
Erinevate host-ide ja service-ite mallid asuvad:
/usr/local/nagios/etc/objects/templates.cfg
Defineeritud ajaperioodid:
/usr/local/nagios/etc/objects/timeperiods.cfg
Kasutatud materjalid
http://www.adamson.cc/ettekanne/Nagios%20slaidid.pdf
https://wiki.itcollege.ee/index.php/Nagios
https://wiki.itcollege.ee/index.php/Nagios_3.2