Nagios 4.0.8

From ICO wiki

Priit Varul A31 Kuupäev 12.01.2015

Sissejuhatus

Järgnevas kirjutises paigaldame Nagiose Core Ubuntu Serverisse ja lisame ka ühe kliendi mida monitoorida.
Nagios on üks enim populaarne monitooringu vabatarkvara mida kasutatakse arvutisüsteemide jälgimiseks, võrgu monitoorimiseks, IT infrastruktuuri tarkvara monitoorimiseks mis ennetab kriitilisi probleeme infrastruktuuris. Ta jälgib tervet infrat milleks on serverid, tööjaamad switchid, ruuterid, aplikatsioonid, võrguliiklus jne. Kui süsteemis on probleemid teavitab ta probleemist kas siis näiteks e-mail teel.

Mida uut on Core 4.0.8's[1]

  • JSON API väljund on viidud paremasse vastavusse standardviiisil ja väljundi suuruste limiite on tõstetud.
  • Kontrollide planeerimine on muudetud hoidmaks ära hunnikut kontrolle ühe korraga.
  • Automaatne kontrollide planeerimine on sisse tagasi toodud. Seda saab käima panna seadetest.
  • Terve Nagios 4.0.8 muutuste nimekiri

Labori keskkond

Tööd viisin läbi Hyer-V keskkonnas.[2]

Ubuntu Server - kuhu peale on paigaldatud Nagios Core ja Nagiose pluginad
Ubuntu Desktop - Klient kuhu peale NRPE paigaldatud mille abil suheldakse serveriga.

NB! Kogu tegevus toimub SUDO õigustes!

Eeldused Nagiose paigalduseks

Allolevaid pakke on vaja et süsteemi Nagios't paigaldada.

apt-get install build-essential php5-gd libgd2-xpm libgd2-xpm-dev libapache2-mod-php5 libperl-dev libssl-dev apache2-utils

PAIGALDUS[3][4][5]

Luua Nagiosele kasutaja ning grupp

# Uue kasutaja loomine #
useradd nagios

# Parooli panek #
passwd nagios

# Uue grupi loomine #
groupadd nagcmd

# Kasutaja gruppi panemine #
usermod -a -G nagcmd nagios

# Apache kasutaja nagiose gruppi lisamine #
usermod -a -G nagcmd www-data

Nagiose ja pluginate allalaadimine

Selleks läheme kausta /tmp

# Nagios allalaadimine #
wget http://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.0.8/nagios-4.0.8.tar.gz

# Pluginate allalaadimine #
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Kompileerime ja paigaldame Nagiose

# Pakime lahti arhiivi #
tar -xzvf nagios-4.0.8.tar.gz

# Lähme kausta #
cd nagios-4.0.8

# Käivitame Nagiose seadistamise skripti, andes ette grupi mille me ennem Nagiose jaoks lõime: #
./configure --with-command-group=nagcmd

# Kompileerimine Nagiose lähtekoodi#
make all

# Paigaldame Nagiose binaarid #
make install

# Paigaldame Install init skripti #
make install-init

# Paigaldame näidis konfiguratsioonifaili #
make install-config

# Seame õigused käskude kaustale #
make install-commandmode

Muudame konfiguratsiooni

Näidiskonfiguratsioon on kaustas /usr/local/nagios/etc ja see töötab nagu peab, kuid me peame ka lisama oma emaili et teavitusi saada kui Nagios midagi süsteemist avastab. Selleks peab /usr/local/nagios/etc/objects/contacts.cfg faili muutma:

nano /usr/local/nagios/etc/objects/contacts.cfg
email  minu@mail.ee

Seadistame veebiliidese

Kasutame allolevaid käskusi et paigaldada Nagiose veebiliiides. Konfiguratsioonifail läheb apache conf.d kausta, kus paigalduse käigus luuakse nagiose veebikasutaja "nagiosadmin" millele tuleb ka parool panna, et veebiliidesele ligi saada.

make install-webconf

#Võimalik et saame järgmise errori:#
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
/usr/bin/install: cannot create regular file ‘/etc/httpd/conf.d/nagios.conf’: No such file or directory
make: *** [install-webconf] Error 1

Ubuntu distributsioon kasutab apache2 kausta httpd asemel ja seepärast ka error. Et sellest errorist mööda pääseda peame me nagios.conf faili asukohta muutma pannes ta kausta /etc/apache2/sites-enabled/


/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf


cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/

# Anname õigused #
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

# Anname kasutajale nagiosadmin parooli #
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

# Taaskäivitame Apache #
service apache2 restart

Kompileerime ja paigaldame Nagiose pluginad.

Läheme /tmp kausta tagasi kui me seal enam pole

# Pakime lahti pluginate arhiivi #
tar -xzvf nagios-plugins-2.0.3.tar.gz

# Lähme kausta sisse #
cd nagios-plugins-2.0.3

# Käivitame Plugina konfiguratsiooniskripti, andes ette kasutaja mille varem lõime. #
./configure --with-nagios-user=nagios --with-nagios-group=nagios

# Komplieerime Nagiose plugina lähtekoodi #
make

# Paigaldame plugina binaarid #
make install

Võimaldame apache moodulite ülekirjutamise

a2enmod rewrite

a2enmod cgi

Käivitame Nagiose

Enne käivitust kontrollime kas nagios.cfg's esineb vigu ja seejärel lisame ta süsteemi käivitamisel käima panevate teenuste listi.

# Kontrollime nagios.cfg  #
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

# Lisame algkäivitusse #
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

# Käivitame Nagiose #
service nagios start

Veebiliidesele pääsemine

http://IP-Address/nagios

KLIENDI NAGIOSE KÜLGE ÜHENDAMINE[6]

NB! Järgnevad tegevused viime kõik root kasutaja õigustega ja arvutis mida me soovime monitoorima hakata

Pakid mida vajame

apt-get install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel

Loome kasutaja

useradd nagios
passwd nagios

Paigaldame Nagiose pluginad

Selleks läheme kausta /tmp

# Pluginate allalaadimine #
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

# Pakime lahti pluginate arhiivi #
tar -xzvf nagios-plugins-2.0.3.tar.gz

Kompileerime ja paigaldame Nagiose pluginad

cd nagios-plugins-1.5
./configure 
make
make install

Õiguse määramine plugina kaustale.

chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec

Paigaldame Xinetd

Enamus süsteemides on Xinetd vaikimisi olemas, aga kui ei siis:

apt-get install xinetd

Paigaldame NRPE plugina

cd /tmp

cd /tmp
wget http://garr.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Pakime lahti

tar xzf nrpe-2.15.tar.gz
cd nrpe-2.15

Kompileerimine ja paigaldame NRPE addoni

./configure
make all

Paigaldame NRPE plugin daemoni ja näite daemoni konfiguratsiooni

make install-plugin
make install-daemon
make install-daemon-config

Paigaldame NRPE daemoni xinetd all nagu teenuse

make install-xinetd

Avame /etc/xinetd.d/nrpe faili ja lisame monitooringu serveri IP

only_from = 127.0.0.1 localhost <nagios_ip_address>

Testime et NRPE Daemon lokaalselt töötab

netstat -at | grep nrpe

tcp        0      0 *:nrpe                      *:*                         LISTEN

Kontrollime check_nrpe kas väljund tuleb õige

/usr/local/nagios/libexec/check_nrpe -H localhost

SERVERIL NRPE plugina paigaldus[7]

cd /tmp
wget http://garr.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Pakime lahti

tar xzf nrpe-2.15.tar.gz
cd nrpe-2.15

Kompileerimine ja paigaldame NRPE addoni

./configure
make all
make all-daemon

Testime kas check_nrpe töötab monitooritava arvuti peal

/usr/local/nagios/libexec/check_nrpe -H <remote_linux_ip_address>

kui väljund on alljärgnev siis on kõik töötav:

NRPE v2.15

Lisame monitooritava Desktop arvuti nagiose serverisse

 cd /usr/local/nagios/etc/
touch hosts.cfg
touch services.cfg

Lisame mõlemad loodud cfg failid põhikonfiguratsiooni:

cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg

Avame hosts.cfg faili ja paneme sinna näite:

NB! Ole kindel et muudad host_name, alias ja aadressi muidu ei saa monitooritav masin külge

## Default Linux Host Template ##
define host{
name                            linux-box               ; Name of this template
use                             generic-host            ; Inherit default values
check_period                    24x7        
check_interval                  5       
retry_interval                  1       
max_check_attempts              10      
check_command                   check-host-alive
notification_period             24x7    
notification_interval           30      
notification_options            d,r     
contact_groups                  admins  
register                        0                       ; DONT REGISTER THIS - ITS A TEMPLATE
}

## Default
define host{
use                             linux-box               ; Inherit default values from a template
host_name                       Desktop		        ; The name we're giving to this server
alias                           Ubuntu Desktop                ; A longer name for the server
address                         10.0.0.1          ; IP address of Remote Linux host
}

Lisame ka mõned service'd mida jälgima hakkame, selleks avame services.cfg.

define service{
        use                     generic-service
        host_name               Desktop
        service_description     CPU Load
        check_command           check_nrpe!check_load
        }

define service{
        use                     generic-service
        host_name               Desktop
        service_description     Total Processes
        check_command           check_nrpe!check_total_procs
        }

define service{
        use                     generic-service
        host_name               Desktop
        service_description     Current Users
        check_command           check_nrpe!check_users
        }

define service{
        use                     generic-service
        host_name               Desktop
        service_description     SSH Monitoring
        check_command           check_nrpe!check_ssh
        }

define service{
        use                     generic-service
        host_name               Desktop
        service_description     FTP Monitoring
        check_command           check_nrpe!check_ftp
        }

NRPE käskude definitsioonide loomine

nano /usr/local/nagios/etc/objects/commands.cfg
###############################################################################
# NRPE CHECK COMMAND
#
# Command to use NRPE to check remote host systems
###############################################################################

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

Viimaks kontrollime nagios.cfg õigsust

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Restardime Nagiose

service nagios restart

Kokkuvõte

Nagios Core manuaalne paigaldus oli minule esmakordne ja kulus päris palju aega erinevate manualite analüüsimine ja kasutamine. Eduka paigalduse järgselt peaks kasutaja süsteemi loogikale pihta saama kus mis asub ja milleks, ning edaspidi ei tohiks paigaldusega pikalt minna. Väga võimalusterohke tarkvara. Julgen Nagiost soovitada ja lisaks alternatiivina nagiosele uurisin ka Icinga't https://www.icinga.org/icinga/. Töötab samuti Nagios Core peal, kuid kasutajakeskkond on teistsugune ja erinevate võimalustega.