Nagiosgraph prikuplja, analizira i rastavlja izlazne podatke dobijene od Nagios plaginova i smešta te podatke u RRD fajlove, kreira grafike i generiše HTML stranice sa graficima.

Nagiosgraph je važna ekstenzija, dodatak Nagiosu koji nam omogućava brzi pregled istorije performansi za svaki host ili servis koga nadgledamo i to u grafičkom prikazu.

nagiosgraph-main

Integrisan je u Nagios ali je i dalje nezavistan od njega. Pisan je u programskom jeziku Perl pa ga je moguće modifikovati po potrebama. Ne treba klasičnu bazu vec sve čuva u rrd(round-robin database) fajlovima. Novi grafici za nove hostove i servise se generišu automatski ako postoji odgovarajući prikaz izlaza u perl fajlu map. Ako nemamo prikaz u map-u onda je potrebno ažurirati fajl map i restartovati nagios.

Ukratko, nagiosgraph skripta insert.pl prikuplja izlazne podatke, rastavlja ih prema predefinisanim kriterijumima koji se nalaze u konfiguracionom fajlu map i kreira ili ažurira RRD fajlove. Obično postoji jedan RRD fajl po servisu ili hostu. Svi RRD fajlovi vezani za jedan host se nalaze u direktorijumu sa nazivom tog hosta.

Grafici performansi su integrisani u sam Nagios prikaz preko linka i još jedne male dodatne ikonice  koja se nalazi pored samog servisa. Klikom na ikonicu dobijamo prikaz grafika za taj servis za sve hostove.

Instalacija

Uputstvo je testirano na operativnom sistemu CentOS 7 na kome su već instalirani Nagios Core 4.1.1 i Nagios plugin 2.1.1 i gde se trenutno nadgleda samo localhost i neki njegovi servisi.

Za instalaciju Nagios Core i Nagios plugin videti uputstvo na https://kompjuteras.com/osnovna-instalacija-i-konfiguracija-nagios-4-na-centos-7-korak-po-korak/

Preduslovi

Potrebno je da, pored Nagios servera koji je u funkciji, imamo instalirane i još neke dodatne pakete (perl-GD, php-gd, rrdtool-perl,…) i to radimo sledećom komandom:

Korak 1: Kreiranje direktorijuma i preuzimanje sa interneta nagiosgraph paketa

Kreiramo direktorijum nagiosgraph za Nagiosgraph instalaciju

Pomoću komande wget preuzimamo poslednju verziju Nagiosgraph paketa, raspakujemo je komandom tar i prelazimo u novokreirani direktorijum nagiosgraph-1.5.2

Korak 2: Provera potrebnih preduslova za instalaciju Nagiosgraph

Provera da li su instalirani svi potrebni paketi vršimo koristeći “install.pl” skriptu sa opcijom “check-prereq

Ako ne dobijemo nikakvu grešku prelazimo na korak 3.
Ako nam se pojavi sledeći prikaz gde imamo grešku za pakete Digest::MD5…***FAIL*** i Nagios::Config…FAIL<<<< onda je potrebno dodatno da instaliramo nedostajuće pakete.

DigestFail
Da bi instalirali nedostajuće pakete potrebno je prvo da instaliramo CPAN shell. Pri samoj instalaciji odgovaramo da hoćemo automatsku instalaciju.

Prelazimo u CPAN shell. Kada prvi put startujemo CPAN dobijemo gomilu pitanja na koja odgovaramo ili sa Yes ili jednostavno udarimo Enter na tastaturi.

Instaliramo nedostajuće module i izlazimo iz CPAN shell-a posle svake instalacije pojedinačnog modula, to u našem slučaju je:

Sad opet ulazimo u CPAN.

Opet ulazimo u CPAN komandom

Opet proveravamo da li imamo sve potrebne pakete i module.

Potrebno je da dobijemo sledeću sliku:
check-prereq

Sada smo spremni za konfiguraciju nagiosgraph-a.

Korak 3: Kreiranje direktorijuma nagiosgraph i kopiranje sadržaja

Kreiranje direktorijuma nagiosgraph u okviru podrazumevanog foldera nagios na lokaciji /usr/local/nagios/.

Kopiranje celog foldera nagiosgraph/nagiosgraph-1.5.2/etc u novokreirani dorektorijum nagiosgraph na putanji /usr/local/nagios/.

Korak 4: Izmena cgi skripti i skripte insert.pl i njihovo kopiranje

Sve fajlove u folderu /root-nagiosgraph/nagiosgraph-1.5.2/cgi/ otvoriti sa nano i izmeniti „use lib“ liniju tako da pokazuje na direktorijum iz prethodne tacke (na /usr/local/nagios/nagiosgraph)

cgi
Imamo osam fajlova da izmenimo – export.cgi, show.cgi, showconfig.cgi, showgraph.cgi, showgroup.cgi, showhost.cgi, showservice.cgi, testcolor.cgi.
Primer za export.cgi.

exportcgi

Ovo možete uraditi ručno kroz vi editor ili jednostavnom komandom za zamenu teksta

Fajl insert.pl u folderu /root/nagiosgraph/nagiosgraph-1.5.2/lib/ otvoriti i izmeniti „use lib“ liniju tako da pokazuje na direktorijum iz prethodne tacke (na /usr/local/nagios/nagiosgraph/)

ngshared
Sada ovako prepravljene fajlove kopiramo na odgovarajuće putanje (insert.pl u direktorijum /usr/local/nagios/libexec a sve cgi fajlove u direktorijum /usr/local/nagios/sbin)

Korak 5: Kopiranje CSS, Javascript fajlova, izmena konfiguracionih i log fajlova, kreiranje pripadajućih direktorijuma

Kopirati CSS i Javascript fajlove iz direktorijuma /root/nagiosgraph/nagiosgraph-1.5.2/share/ u direktorijum web servera /usr/local/nagios/share

Izmena fajla nagiosgraph.cfg

Potrebno je izmeniti fajl nagiosgraph.conf u direktorijumu /usr/local/nagios/nagiosgraph/etc/

Menjamo sledeće linije (možete i da zakomentarišete postojeće pa ove samo dodate posle poslednjeg komentara):

Kreiranje direktorijuma rrd i izmena dozvola

Kreiramo direktorijum rrd na putanji /usr/local/nagios/nagiosgraph i dajemo korisniku nagios prava čitanja, upisivanja i izvršavanja.

Kreiranje fajla nagiosgraph.log i izmena dozvola

Nameštamo pravo pristupa fajlu nagiosgraph.log tako da korisnik nagios može da mu pristupi i da upisuje, čita i izvršava (prvo sa komandom touch napravimo prazan log fajl)

Kreiranje fajla nagiosgraph-cgi.log i izmena dozvola

Nameštamo pravo pristupa fajlu nagiosgraph-cgi.log tako da korisnik nagios može da mu pristupi i da upisuje, čita i izvršava(prvo sa komandom touch napravimo prazan log fajl)

Izmene permisija nad direktorijumom var

Podešavamo prava pristupa korisnika nagios nad direktorijumom /usr/local/nagios/var tako da može da kreira i briše perfdata fajlove

Korak 6: Izmena Nagios konfiguracionog fajla

U Nagios konfiguracionom fajlu menjamo sledeće linije:

Korak 12: Izmene permisija nad nagiosgraph fajlovima i direktorijumima

Podešavamo prava pristupa korisnika nagios nad direktorijumom /usr/local/nagios/nagiosgraph

Promena vlasnika fajla insert.pl

Korak 14: Nagios fajl commands.cfg

U nagios commands.cfg fajlu potrebno je da dodamo definiciju komande.

Komentarišemo postojeću definiciju za process-service-perfdata pa dodajemo našu na kraj fajla:

…tako da sam to izgleda ovako:

command

Korak 15: Provera Nagios konfiguracije, restart i verifikacija rada

Proveru konfiguracije Nagiosa radimo komandom:

Restartujemo nagios komandom:

Verifikacija da nagiosgraph radi je provera sledeceg linka (unesite vašu adresu servera, u ovom slučaju će se raditi o adresi 192.168.11.105 – što možete videti u screenshotu):

http://<<server>>/nagios/cgi-bin/showconfig.cgi

U web browser-u treba da dobijemo sledeće:

Verifikacija

Korak 18: Izmene Nagios .cfg fajlova

U nagios templates.cfg fajlu potrebno je da dodamo definiciju servisa.

Dodajemo sledeće linije na kraj fajla:

Izmene Nagios fajla localhost.cfg

Kreiramo link ka grafiku za određeni servis tako što dodajemo template Service-graph tom servisu u fajlu localhost.cfg.
Kada budemo kreirali nagios fajl services.cfg i povezali ga u konfiguracionom fajlu nagios.cfg onda cemo template Service-graph dodavati servisima razlicitih hostova u fajlu services.cfg.

Trenutno, u fajlu localhost.cfg dodajemo template Service-graph servisima PING, Root Partition, Current Load.

U okviru definicije servisa iza ključne reči use dodajemo i template Service-graph.

define service {
use local-service,Service-graph

}

Konkretno u našem slučaju za definiciju servisa PING to treba da izgleda kao na slici:
localhost

Zamena Nagios ikonice sa nagiosgraph ikonicom

Izmena fajla nagiosgraph.ssi

U fajlu nagiosgraph.ssi postaviti tacan URL za fajl nagiosgraph.js

menjamo liniju
src=“/nagiosgraph/nagiosgraph.js“
nova linija je
src=“/nagios/nagiosgraph.js“

Kopiramo novokreirani fajl nagiosgraph.ssi umesto fajla common-header.ssi

Dodajemo linkove ka graficima na nagios services html stranicama.
Menjamo fajl side.php na putanji /usr/local/nagios/share

posle 49 linije (ako je nekome lakši rad u notepad++ onda prekopira preko programčića WinSCP-a fajl na win i otvori ga u N++ i tamo ga ažurira, pa ga ponovo upload-uje kad završi)
side1
dodati sledeće linije

Provera konfiguracije i restart Nagiosa

Korak 24: Prava pristupa fajlovima

Na kraju je ostalo da podesimo prava pristupa određenim fajlovima.
Potrebno je uraditi sledeće:

Korak 25: Provera rada nagiosgraph skripte i provera postojanja rrd fajlova

Možemo da proverimo sam rad skripte insert.pl tako što ćemo je pokrenuti direktno iz komandne linije.
Ako ne dobijemo nikakvu grešku skripta radi ok.

Možemo da proverimo i da li već postoje rrd fajlovim klasičnim listanjem poddirektorijuma hosta za koji želimo da pogledamo fajlove (potrebno je da protekne određeno vreme oko 15-ak minuta kako bi se pojavili rrd fajlovi).

DODATAK: MAP fajl

Nagiosgraph RRD fajlovi se generišu tako što skripta insert.pl “čita” konfiguracioni fajl map u direktorijumu /usr/local/nagios/nagiosgraph. U tom konfiguracionom fajlu koji je pisan u perl jeziku se nalazi sintaksa za čitanje outputa ili perfdata iz fajla nagiosgraph.log.
Podrazumevani map konfiguracioni fajl koji dolazi sa ovom verzijom nagiosgraph-a (verzija 1.5.2) nije baš najadekvatniji i najkorisniji. Na primer, grafik za servis PING je totalno beskoristan i izgleda kao na sledećoj slici.
map1
Vidimo na grafiku da su prikazani podaci samo za pl(packet loss) koji su 99% uvek isti, a bitan grafik rta(round trip average) nemamo.

Zato je preporuka da se ovaj podrazumevani map konfiguracioni fajl zameni sa fajlom u kome možemo mi sami da dodajemo sintaksu za crtanje grafova.
U direktorijumu nagiosgraph-1.5.2 imamo i direktorijum examples gde nam je dato više primera map konfiguracionog fajla.
Moja preporuka je da se iskopira fajl map_1_4_3 iz ovog direktorijuma na putanju /usr/local/nagios/nagiosgraph, da se preimenuje fajl map u map-original, a ovaj novi da se preimenuje u map tako da on postane glavni konfiguracioni map fajl. Potrebno je izbrisati rrd fajlove iz poddirektorijuma localhost, restartovati nagios (korak 23), i sačekati odredjeno vreme (15-ak minuta) da se kreiraju novi rrd fajlovi.
U ovom fajlu sintaksa za servis PING je:

Grafik je:

map2

Kad kliknemo na ikonicu:ikonica dobijamo samo grafik za taj servis.

map3

Možemo direktno na grafiku da izaberemo detaljniji prikaz za odredjeni vremenski interval.

map4

U gornjem desnom uglu imamo opciju i da izaberemo i host i service

map5

map6

Kao dodatak za map konfiguracioni fajl uneo sam i već gotove i proverene sintakse za određene servise.

Veliki broj sintaksi za razne servise možemo da nadjemo na linku http://nagios.fm4dd.com/nagiosgraph/

Kada budemo dodavali hostove i servise nagiosgraph će automatski da crta grafove ako postoji odgovarajuća sintaksa u map fajlu. Toliko za sada.