PNP4Nagios Icinga-val

Korábban már feltelepítettük az icinga-t a biztonságos környezetbe. Ideje, hogy kicsit kiegészítsük.
Régóta tudjuk, hogy a Nagios és klónjai lényegében mindent tudnak figyelni, amit számokkal ábrázolni tudunk.
Ha már úgyis gyűjtüjük a számokat, tároljuk el őket és igy szerint ábrázoljuk azokat. Nos erre ad megoldást a PNP4Nagios.


PNP4Nagios
A PNP úgy működik, hogy a monitorozó rendszer (Nagios, Icinga, etc) performancia adatait felhasználva broker modulként futvaRRD adatforrásokba  gyűjti az adatokat, továbbá azokat igény szerint megjeleníti.
A korábba bemutatott Nconf  szerencsére kezeli az action URLeket, így a korábban elkészített rendszerbe gond nézkül beilleszthető az új elem.
A telepítést így végeztem:
Csomagok rendbetétele, szükséges csomagok telepítése, majd a felesleges fájlok takarítása:

# apt-get update
# apt-get install librrds-perl rrdtool
# apt-get clean

Még nem elérhető a PNP4Nagios a tárolókban, így fordítani kell:

# cd /usr/src
# wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.19.tar.gz
# tar xzf pnp4nagios-0.6.19.tar.gz
# cd /usr/src/pnp4nagios-0.6.19
# ./configure --with-nagios-user=icinga --with-nagios-group=icinga --with-layout=debian

A configure kimenete:
*** Configuration summary for pnp4nagios-0.6.19 09-01-2012 ***
   General Options:
  -------------------------         -------------------
  Nagios user/group:                icinga icinga
  Install directory:                /
  HTML Dir:                         /usr/share/pnp4nagios/html
  Config Dir:                       /etc/pnp4nagios
  Location of rrdtool binary:       /usr/bin/rrdtool Version 1.3.1
  RRDs Perl Modules:                FOUND (Version 1.3001)
  RRD Files stored in:              /var/lib/pnp4nagios/perfdata
  process_perfdata.pl Logfile:      /var/log/pnp4nagios/perfdata.log
  Perfdata files (NPCD) stored in:  /var/spool/pnp4nagios
   Web Interface Options:
  -------------------------         -------------------
  HTML URL:                         http://localhost/pnp4nagios
  Apache Config File:               /etc/apache2/conf.d/pnp4nagios.conf

  Review the options above for accuracy.  If they look okay,
  type 'make all' to compile.
Aztmondja, hogy jók vagyunk, mehetünk tovább:
# make all
# chmod a+r ./contrib/ssi/status-header.ssi
*** Compile finished ***
   make install
     - This installs the main program and HTML files
   make fullinstall
     - This installs the main program, runlevel scripts, config and HTML files
Enjoy.
Make all is megvolt, így mehet minden a helyére:
# make install install-webconf install-config install-init
Konfigurálás:

# cd /etc/pnp4nagios/
# mv rra.cfg-sample rra.cfg


A npcd.cfg-ben # csere, hogy ne a syslogba menjenek a logok:
log_type = file
#log_type = syslog
0-ról -1-re
log_level = -1

0.0.-ról 3.0-ra
load_threshold = 3.0


monitoring:/etc/pnp4nagios# nano config.php-ban

$conf['nagios_base'] = "/nagios/cgi-bin";-ról:
$conf['nagios_base'] = "/icinga/cgi-bin";

Hiszen így lesz helyes az URL.
Készítünk egy mentést a jelenlegi kofigról:

root@monitoring:/etc/pnp4nagios# cp /etc/icinga/icinga.cfg /etc/icinga/ori_icinga.cfg

Majd a kapott sablont tegyük a végére:
root@monitoring:/etc/pnp4nagios# cat nagios.cfg-sample >> /etc/icinga/icinga.cfg
Jöhet az újraindítás. Ha nem rontottunk el nagyon semmit, akkor elindul, de még nem megy minden:
# /etc/init.d/icinga restart
Running configuration check...OK
Stopping icinga: Stopping icinga done.
Starting icinga: Starting icinga done.
A logban látjuk, ha valamivel probléma van:
# tail -f /var/log/icinga/icinga.log
[1358075150] Warning: Host performance command 'process-host-perfdata # NOT advisable prior to Nagios 3.0' was not found - host performance data will not be processed!
[1358075150] Warning: Host performance file processing command 'process-host-perfdata-file' was not found - host performance data file will not be processed!
[1358075150] Warning: Service performance file processing command 'process-service-perfdata-file' was not found - service performance data file will not be processed!

Ide teszi a hostok perfdatáját az Icinga. Ezt fogja majd felhasználni a modul, hogy az RRD-be írja:

# cat /var/log/pnp4nagios/host-perfdata
DATATYPE::HOSTPERFDATA TIMET::1358075104 HOSTNAME::GW HOSTPERFDATA::rta=1.144000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0 HOSTCHECKCOMMAND::check-host-alive HOSTSTATE::UP HOSTSTATETYPE::HARD
Kell egy könyvtár és a hozzá tartozó jogosultság:
# mkdir -p /usr/local/pnp4nagios/var/spool
# chown icinga -R /usr/local/pnp4nagios/

Ezekre panaszkodott a log, hát hozzuk létre az alábbi tartalommal:
root@monitoring:/etc/pnp4nagios# cat /etc/icinga/commands.cfg
# pnp
define command{
        command_name    process-service-perfdata-file
        command_line    /bin/mv /var/log/pnp4nagios/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
define command{
        command_name    process-host-perfdata-file
        command_line    /bin/mv /var/log/pnp4nagios/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
Mivel újabb konfigurációs fájlt készítettünk, ezt tudatni kell az Icinga-val is:
icinga.conf-ba:
cfg_file=/etc/icinga/commands.cfg

Ha minden jó akkor időről időre új fájlok képződnek:
root@monitoring:/etc/pnp4nagios# find /usr/local/pnp4nagios/var/spool/
/usr/local/pnp4nagios/var/spool/
/usr/local/pnp4nagios/var/spool/service-perfdata.1358075791
/usr/local/pnp4nagios/var/spool/service-perfdata.1358075746
/usr/local/pnp4nagios/var/spool/host-perfdata.1358075731
/usr/local/pnp4nagios/var/spool/host-perfdata.1358075776
/usr/local/pnp4nagios/var/spool/service-perfdata.1358075761
/usr/local/pnp4nagios/var/spool/service-perfdata.1358075776
/usr/local/pnp4nagios/var/spool/host-perfdata.1358075761
/usr/local/pnp4nagios/var/spool/host-perfdata.1358075791
/usr/local/pnp4nagios/var/spool/host-perfdata.1358075746
/usr/local/pnp4nagios/var/spool/service-perfdata.1358075731
Arra azért figyelni kell, hogy ne töltsük meg ezzel a háttértárat...
Most már megy az adatgyűjtés. Gondoskodjunk arról, hogy az eredményét is láthassuk:
Újabb konfigfájl:

root@monitoring:~# cat /etc/icinga/pnptemplate.cfg
define host {
        name       pnp-hst
        register   0
        action_url /pnp4nagios/graph?host=$HOSTNAME$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_
}
define service {
        name       pnp-svc
        register   0
        action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
}
És tudassuk ezt is az Icinga-val:
/etc/icinga/icinga.cfg-ba
cfg_file=/etc/icinga/pnptemplate.cfg
Néhány beállítás, hogy az adatokat lássuk és a jogosultságok is rendben legyenek:
# chmod a+r /usr/src/pnp4nagios-0.6.19/contrib/ssi/status-header.ssi
# cp /usr/src/pnp4nagios-0.6.19/contrib/ssi/status-header.ssi /usr/local/icinga/share/ssi/
# ln -s /usr/share/pnp4nagios/html/ /usr/local/icinga/share/pnp4nagios
# chown icinga:www-data -R /usr/share/pnp4nagios/    
# chmod 755 -R /usr/share/pnp4nagios/
A webszervert is módosítani kell egy kicsit:
/etc/apache2/conf.d/icinga.conf-ban  az alábbi direcoty bejegyzésben a CGI scriptek futását és szimbolikus linkeket engedélyezzük:
A régi beállítás ez volt. Ezt kommenteljük ki
      #   Options None
Helyette legyen ez:
        Options Indexes FollowSymLinks MultiViews
Kell egy apache modul:
# a2enmod rewrite
# /etc/init.d/apache2 restart
Ha a http://domainname.hu/icinga/pnp4nagios/index.php ha bejön, akkor a PNP4Nagios Environment Tests ellenőrizhető. A cél, hogy mindenben feleljünk meg neki:
Your environment passed all requirements. Remove or rename the /usr/share/pnp4nagios/html/install.php file now.
Töröljük a fájlt:
# rm -f  /usr/share/pnp4nagios/html/install.php
A chroot-olt rendszeren kívül, a "külső" webszerveren is vann tennivaló:
A /etc/apache2/conf.d/monitoring fájlba kell az alábbi sor:
ProxyPass /pnp4nagios http://127.0.0.1:81/pnp4nagios
Ezzel az Apache konfiguráció is készenven. A következő lépés az Icinga konfigurációjának módosítása, hogy az acrion URL-ek is megjelenjenek.
Az Nconf-ba belépve, baloldalon alul az Administration szakaszban az Attributes mellett a show-ra kattintsunk.
Jobb oldalon először a legördülő listában a hosts majd a service-t válasszuk.
Host esetén az action url beállításait módosítsuk úgy, hogy a
list of possible values (separated by "::") értéke az alábbi legyen:
/pnp4nagios/graph?host=$HOSTNAME$
A pre-defined value értéke pedig:
/pnp4nagios/graph?host=$HOSTNAME$

Service esetén:
list of possible values (separated by "::") értéke:
/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
A pre-defined value értéke:
/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
Ezeket el kell menteni, majd a host illetve service beállításainál az action URL melletti legördülő értékét módosítani.
Az újragenerált konfiguráció elindulása után az Icinga-ban a host illetve service mellett megjelenik egy kis ikon, amire kattintva a grafikusan ábrázolt adatok elérhetők:
Kb így néz ki:

PNP4Nagios Icinga
Remélem hasznos volt a leírás.
A leírás az alábbi segítségével készült:
https://wiki.icinga.org/display/howtos/PNP4Nagios+in+Classic-UI


Kulcsszavak: Nagios, Icinga, PNP4Nagios, monitoring, NConf, RRD

Új hozzászólás: