Nastavljamo sa izmenama u konfiguraciji Nagios-a. Drugi, prethodni deo ovog uputstva možete videti ovde.

Za osnovnu instalaciju Nagios Core i Nagios plugin videti uputstvo na https://kompjuteras.com/osnovna-instalacija-i-konfiguracija-nagios-4-na-centos-7-korak-po-korak/.
U ovom trećem i završnom delu tutorijala definisaćemo komande i servise koje ćemo nadgledati.

Pre nego što definišemo komande i pomoću njih i servise koje želimo da nadgledamo prvo da napravimo spisak šta bi želeli da nadgledamo:

  • Ping – automatski sa dodavanjem hosta imamo i nadgledanje i provera ping hosta
  • Provera ftp porta 21 – ftp server (zamenom u komandi 21 sa bilo kojim portom možemo da nadgledamo da li je otvoren bilo koji port koji nas zanima)
  • Provera 1 win procesa
  • Provera 1 win servisa
  • Zauzetost CPU
  • Zauzetost memorije
  • Zauzetost C particije hard diska
  • Provera EventLog-a na greske u zadnjih X sati ( u nekom narednom clanku)

Za prve dve odabrane stavke već postoje definisane komande u fajlu /usr/local/nagios/etc/objects/commands.cfg dok je za ostale potrebno da preuzmemo nagios pluginove i da ih smestimo (ili instaliramo) na putanju /usr/local/nagios/libexec/.

Prvo da preuzmemo sledeće potrebne nagios pluginove:

Za proveru win procesa koristimo sledeći nagios plugin sa linka:
https://exchange.nagios.org/directory/Plugins/Operating-Systems/Windows/Check-multiple-Windows-Processes-v2/details

Za proveru windows servisa
Koristimo sajt http://nagios.manubulon.com/ i plugin check_snmp_win.pl.

Za proveru zauzetosti CPU
Koristimo sajt http://nagios.manubulon.com/ i plugin check_snmp_load.pl

Za proveru zauzetosti memorije i zauzetost particije hard diska
Koristimo sajt http://nagios.manubulon.com/ i plugin check_snmp_storage.pl

U nekom od narednih clanaka objasnicemo i nadgledanje i proveru EventLog-a na greske u zadnjih X sati.

 • DEFINISANJE KOMANDI

Krećemo sa definisanjem komandi
cd /usr/local/nagios/etc/objects/
nano commands.cfg

Već imamo definisanu komandu za proveru hosta preko ping-a

gde je $HOSTADDRESS$ – hostname ili ip adresa hosta koji se proverava
$USER1$ – ovu promenljivu smo definisali u fajlu resource.cfg i označava putanju /usr/local/nagios/libexec/ gde se nalaze nagios izvršne komande
-w 3000 0,80% – warning ako je odziv preko 3s ili ako je 80% packet lost
-c 5000 0,100% – critical ako je odziv preko 5s ili ako imamo 100% packet lost
-p broj ICMP ECHO paketa koji se šalju

Definišemo komandu za proveru tcp porta – (proveriti da li već postoji)
U okviru dela SAMPLE SERVICE CHECK COMMANDS dodajemo sledeću definiciju:

gde je $HOSTADDRESS$ – hostname ili ip adresa hosta koji se proverava
-p $ARG1$ $ARG2$ – broj porta koji proveravamo

Definišemo komandu za proveru win procesa
U okviru dela SAMPLE SERVICE CHECK COMMANDS dodajemo sledeću definiciju:

gde je $HOSTADDRESS$ – hostname ili ip adresa hosta koji se proverava
$ARG1$ – community string windows servera
$ARG2$ – tačno ime procesa koje proveravamo

Definišemo komandu za proveru win servisa
U okviru dela SAMPLE SERVICE CHECK COMMANDS dodajemo sledeću definiciju:

gde je $HOSTADDRESS$ – hostname ili ip adresa hosta koji se proverava
$USER7$ – community string windows servera
-n – ime servisa pod znacima navoda
-N – broj koliko se puta pojavljuje servis u Services

Definišemo komandu za proveru zauzetosti CPU
U okviru dela SAMPLE SERVICE CHECK COMMANDS dodajemo sledeću definiciju:

gde je $HOSTADDRESS$ – hostname ili ip adresa hosta koji se proverava
$USER7$ – community string windows servera
-w $ARG1$ – $ARG1$- warning broj koji izražava procente
-c $ARG2$ – $ARG2$ – critical broj koji izražava procente

Definišemo komandu za proveru zauzetosti memorije i zauzetost particije hard diska
U okviru dela SAMPLE SERVICE CHECK COMMANDS dodajemo sledeću definiciju:

gde je $HOSTADDRESS$ – hostname ili ip adresa hosta koji se proverava
$USER7$ – community string windows servera
-m $ARG1$ – arg1 je ime šta nadgledamo, počinje sa specijalnim znakom ^ i iza ide ili labela particije za koju se proverava zauzetost ili ime za koju memoriju proveravamo zauzetost (VirtualMemory, RealMemory, RAM) što definišemo u okviru definicije samog servisa
-w $ARG2$ – $ARG2$- warning broj koji izražava procente
-c $ARG3$ – $ARG3$ – critical broj koji izražava procente

Prikaz dela fajla commands.cfg koji smo menjali:

commands

PROVERA RADA KOMANDI IZ KOMANDNE LINIJE
Pre nego što definišemo servise trebalo bi da proverimo rad komandi iz komandne linije

Odemo na putanju gde se nalaze komande
cd /usr/local/nagios/libexec/

WinServer1 – ime našeg servera koje smo definisali u fajlu hosts.cfg
treba da dobijemo nešto slično kao

PING OK – Packet loss = 0%, RTA = 0.47 ms|rta=0.471000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0

Provera TCP portova
Ako su na serveru WinServer1 podignuti mzsql, apache i ftp možemo da nadgledamo odgovarajuće portove
provera ftp porta
./check_tcp -H WinServer1 -p 21
TCP OK – 0.002 second response time on WinServer1 port 21|time=0.002343s;;;0.000000;10.000000
provera mysql porta
./check_tcp -H WinServer1 -p 3306
TCP OK – 0.001 second response time on WinServer1 port 3306|time=0.001026s;;;0.000000;10.000000
provera web porta 8080
./check_tcp -H WinServer1 -p 8080
TCP OK – 0.001 second response time on WinServer1 port 8080|time=0.001034s;;;0.000000;10.000000

Provera Win procesa
Ako na serveru WinServer1 imamo jako bitan proces koji mora da bude aktivan non-stop onda njega možemo da nadgledamo.
Pretpostavka je da je omogućen SNMP servis na serveru, da je definisan community string i dodata ip adresa nagiosa. Ukratko, otići u ControlPanel-Services, naći SNMP Service, desni klik Properties, u tabu Traps dodati community string i u okviru Trap destinations dodati ip adresu Nagios servera. U tabu Agent čekirati sve opcije u okviru Service. U tabu Security čekirati Send authentication trap i dodati community string, i čekirati Accept SNMP packets from these hosts i tu dodati ip adresu Nagios servera.

Provere procesa mysqld.exe
./ check_win_processes WinServer1 communitystring mysqld.exe
OK: 1 running process(es)

Provera procesa tomcat7.exe (potrebno je navesti tacno ime procesa kakvo je u okviru taba Processes Task Managera)
./check_win_processes WinServer1 communitystring tomcat7.exe
OK: 1 running process(es)
ili
./check_win_processes WinServer1 communitystring mysqld.exe tomcat7.exe
OK: 2 running process(es)

Provera Win servisa
Ako na serveru WinServer1 imamo jako bitne servise koji moraju da budu startovani i da budu aktivni non-stop onda njih možemo da nadgledamo.
Pre provere servisa potrebno je preko cpan- instalirati modul Net::SNMP.

Provera servisa
Pre same provere servisa potrebno je dodatno izmeniti perl skript,
U liniji 259 i 317 gde stoji
$resultat = (Net::SNMP->VERSION < 4) ?
umesto znaka < treba staviti operater lt tako da linija izgleda $resultat = (Net::SNMP->VERSION lt 4) ?
cd /usr/local/nagios/libexec/
nano check_snmp_win.pl
To menjamo da ne bi dobili upozorenja pri izvršavanju komande
Argument „v6.0.1“ isn’t numeric in numeric lt (<) at ./check_snmp_win.pl line 259.
Argument „v6.0.1“ isn’t numeric in numeric lt (<) at ./check_snmp_win.pl line 317

Provera MySQL56 servisa ./check_snmp_win.pl -H WinServer1 –C communitystring -n MySQL56 -N 1 1 services active (matching „MySQL56“) : OK
Provera Apache servisa ./check_snmp_win.pl -H WinServer1 -C communitystring -n „Apache Tomcat 7“ -N 1 1 services active (matching „Apache Tomcat 7“) : OK

Provera zauzetosti CPU
Na serveru WinServer1 proveravamo opterećenost procesora – CPU load
Pre same provere opterećenosti CPU potrebno je dodatno izmeniti perl skript, U liniji 681 gde stoji my $resultat = (Net::SNMP->VERSION < 4) ?
umesto znaka < treba staviti operater lt tako da linija izgleda my $resultat = (Net::SNMP->VERSION lt 4) ?
cd /usr/local/nagios/libexec/
nano check_snmp_load.pl
To menjamo da ne bi dobili upozorenja pri izvršavanju komande
Argument „v6.0.1“ isn’t numeric in numeric lt (<) at ./check_snmp_load.pl line 681.

./check_snmp_load.pl -H WinServer1 -C communitystring -w 70 -c 95
1 CPU, load 6.0% < 70% : OK

Provera zauzetosti memorije
Na serveru WinServer1 proveravamo opterećenost memorije.
Pre same provere opterećenosti memorije potrebno je dodatno izmeniti perl skript, U liniji 420 i 494 gde stoji if (Net::SNMP->VERSION < 4) {
umesto znaka < treba staviti operater lt tako da linija izgleda if (Net::SNMP->VERSION lt 4) {
cd /usr/local/nagios/libexec/
nano check_snmp_storage.pl
To menjamo da ne bi dobili upozorenja pri izvršavanju komande
Argument „v6.0.1“ isn’t numeric in numeric lt (<) at ./check_snmp_storage.pl line 420.
Argument „v6.0.1“ isn’t numeric in numeric lt (<) at ./check_snmp_storage.pl line 494.

./check_snmp_storage.pl -H WinServer1 -C communitystring -m „Virtual Memory“ -w 70 -c 95
Virtual Memory: 50%used(3066MB/6141MB) (<70%) : OK

Provera zauzetosti particija hard diska
Na serveru WinServer1 proveravamo zauzetost particija hard diska
Provera C particije
./check_snmp_storage.pl -H WinServer1 -C communitystring -m ^C: -w 80 -c 95
C:\ Label: Serial Number fa685589: 68%used(174495MB/255896MB) (<80%) : OK
Provera D particije
./check_snmp_storage.pl -H WinServer1 -C communitystring -m ^D: -w 80 -c 95
D:\ Label:Podaci Serial Number 98c534f0: 58%used(149285MB/255997MB) (<80%) : OK

Kada smo uspešno proverili komande koje ćemo koristiti u definisanju servisa vreme je da definišemo i servise.

 

• DEFINISANJE SERVISA
Kreiramo fajl i dopunimo ga dole definisanim parametrima
cd /usr/local/nagios/etc/objects/
nano /usr/local/nagios/etc/objects/services.cfg

 

services

Na kraju sacuvamo fajl service.cfg i prvo proveravamo konfiguraciju nagiosa pa onda restart nagios-a.
Provera ispravnosti konfiguracije nagiosa

Restart nagiosa
/etc/init.d/nagios restart

Za naš server WinServer1 treba da dobijemo sledeću sliku za service status

finalnagios

Namestili smo monitoring najvažnijih portova, procesa i servisa kao i monitoring CPU, memorije i hard diska.

U nekom od sledećih tekstova bavićemo se kako monitoringom mrežnih uređaja tako i nadgledanjem da li ima grešaka u Event Logu windows servera (System ili Application Log).

<<< POVRATAK NA 2. DEO