Nagios – Monitorizando con NRPE

Onena, bueno… Vamos a meterle un poco más de txitxa a nuestro Nagios, Centreon o lo que tengamos, seguiremos con algo muy interesante para el que quiera monitorizar ítems más avanzados! Usaremos un pequeño agente que se instalará en los equipos Windows o Linux remotos, para qué? Pues entre otras cosas para ejecutar scripts en dichos equipos. Podremos ejecutar cualquier script de PowerShell, Batch, VBScript, Perl… y luego leer el resultado del comando y tratarlo con Nagios!

 

Nagios Remote Plugin Executor (NRPE) se ejecutará como servicio o demonio en las máquinas a monitorizar y estará escuchando para que desde Nagios, con el comando 'check_nrpe', le hagamos peticiones. En otros documentos futuros ya veremos otro tipo de agentes, hoy toca hablar (para mí) del mejor!

 

check_nrpe instalazioa,

 

Lehena, ‘check_nrpe’ deskargatzen eta konpilatzen hasten gara, Aurretik behar diren paketak instalatzen ditugu, Hemen uzten dizkizuet jarraitutako pausoak, Amaitzerakoan, binarioa pluginen path-ean mugitzen dugu eta probatzen dugu!

[sourcecode]
yum install -y gcc glibc glibc-common openssl-devel perl wget git
cd /usr/src/
git clone https://github.com/NagiosEnterprises/nrpe
cd nrpe/
./configure
make all
cp src/check_nrpe /usr/lib/nagios/plugins/
cd /usr/lib/nagios/plugins/
./check_nrpe[/sourcecode]

 

Agentearen instalazioa,

 

Ondo, Horretarako, NSClient++ erabiliko dugu, lo Bere webgunetik deskargatzen dugu, Eta lehenengo, azken bertsioa erabiliko dugu, Adibide honetan, Windows-eko x64 binarioa erabiliko dugu.

 

NSClient instalazioa hasten dugu, “Next”,

 

‘Generic’ hautatzen dugu, “Next”,

 

Aukera ikusi dezagun “Pertsonalizatua”,

 

Eta interesatzen zaizkigun pluginak hautatzen ditugu, Ni denak markatuko ditut, por que los usaré en otros ejemplos, en este caso con marcar NRPE Support nos valdría.

 

Nos indica el fichero INI que usaremos para aplicar la configuración, “Next”,

 

Deberemos agregar la dirección IP de la máquina Nagios o Centreon que ejecutará las consultas, así como habilitar check_nt si nos interesase, que seguro que sí, ya veréis =), además seleccionamos el modo de seguridad de NRPE, en este caso no usare contraseña al usar el modo Inseguro, en un entorno corporativo, al menos seleccionaremos un modo seguro. “Next”,

 

Ondo, Sakatu “Install” para instalar este pequeño agentito…

 

… esperamos unos segundos…

 

eta prest, “Finish”.

 

No quedaría más que ejecutar desde nuestro equipo Nagios un comando para testear si hay conectividad, un ejemplo muy sencillo sería el siguiente:

[sourcecode]
./check_nrpe -H IP_EQUIPO_REMOTO -c check_uptime
[/sourcecode]

 

Ikusten badugu konektatzen dela eta makina hori piztuta egon den denbora esaten digula,, orain hasi ahal izango gara!! Orain geratzen dena da Windows edo Linux makinak skriptekin elikatzea eta nahi duguna modu urrutian exekutatzea, hurrengo dokumentuetan adibide interesgarriak jarriko ditut, baina lehen dokumentu hau jarraitu beharko dugu.

 

Sortu Centreon-en Komandoa,

 

Beraz, komandoa altan eman beharko genuke, interesatzen zaizkigun Zerbitzuak sortzean, makinak urrutitik monitorizatzeko. Joango gara “Konfigurazioa” > “Commands” > “Gehitu” eta hurrengo komandoa sortzen dugu:

  • Command Name: Komandoari izen bat ematen diogu, Elkarlotzeko onena izango da exekutatzen duen skriptarekin izen bera jartzea, kasuan honetan 'check_nrpe'.
  • Komando mota: 'Check' hautatzen dugu.
  • Command Line: Betiko moduan, Centreon edo Nagios benetan exekutatuko duen hori adierazten dugu komando hau deitzen duenean, horrela geratuko litzateke: '/usr/lib/nagios/plugins/check_nrpe -H IP_EQUIPO_REMOTO -c $ARG1$ -t 30'.

 

Kasualitate honetan, begiratuz gero, komandoari bukaeran timeout bat gehitzen diot 30 segundo bakoitzean, agian urrutitik exekutatuko ditugun komando batzuk pixka bat atzeratuko direla, ezta? Onena, bakoitzak nahi duen bezala, sustatu “Argumentuak Deskribatu” eta argumentua definitzen dugu, zerbitzua sortzerakoan bete behar dena gogoratzeko; hor izango da nsclient.ini-n definituko dugun check/komandoa. Etorkizuneko dokumentuetan adibideak ikusiko ditugu.

 

Adibide bat nsclient.ini-ko script batean

 

Funtzionamendua honela izango litzateke, NSClient instalatu dugun urruneko makinaren non, konfigurazio fitxategia 'nsclient.ini' izango dugu, joan behar da (i) exekutatuko dituen skripteak gehitzen (ii) añadiendo los alias que hagan referencia al script. Adibidea:

 

[sourcecode]
[/settings/external scripts/scripts]
comando_bat = scripts\\archivo.bat

[/settings/external scripts/alias]
alias_bat = comando_bat
[/sourcecode]

 

Azkenik, deberemos copiar el script de PowerShell, vbScript, Java, batch… que tengamos a la carpeta 'scripts’ de NSClient. Cada vez que modifiquemos el fichero de configuración 'nsclient.ini’ deberemos reiniciar el servicio de Windows “NSClient++” para que recargue la config y ya podremos desde el Nagios remoto llamar a este script, en el ejemplo anterior con:

[sourcecode]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_bat
[/sourcecode]

 

Uso de argumentos,

Imaginemos pues, que lo que vayamos a ejecutar, el script en el lado Windows/Linux, requiere de argumentos, y se los queremos pasar desde la máquina Nagios. Como ejemplo fácil de entender, pensamos en un script que monitoriza copias de seguridad, vale? Bien por PowerShell o como fuere. Y a este script yo como argumento le pasare el nombre de la tarea de backup, si? Si quiero, evitar definirlo 5 veces en el INI (ya que tengo 5 tareas de backup), le pasare desde Nagios/Centreon el argumento directamente del Job. Os dejo aquí un ejemplo de la configuración necesaria en el 'nsclient.ini', primero habilitaremos que se le puedan pasar argumentos locales y externos y luego ya definimos el comando que ejecutará seguido de los argumentos que espera (en el ejemplo un script de PowerShell):

[sourcecode]
[/settings/NRPE/server]
allow arguments=true

[/settings/external scripts]
allow arguments=true

[/settings/external scripts/scripts]
check_copias = cmd /c echo scripts\\check_copias_seguridad.ps1 $ARG1$ $ARG2$; exit($lastexitcode) | powershell.exe -command –

[/settings/external scripts/alias]
alias_copias = check_copias
[/sourcecode]

 

Eta gero, Nagios makinatik komando bat exekutatu ahal izango dugu argumentuak pasatuz, ondoren Centreonetik GUI bidez modu erosoago batean definituko ditugunak:

[sourcecode]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_copias -a "primer argumento" "segundo argumento"
[/sourcecode]

 

Esan dut, Etorkizuneko dokumentuetan NRPEren erabileraren adibide praktikoak ikusiko ditugu, Nola scripting batzuk erabiliz interesa duen informazio guztia ateratu ahal dugun. Askotan gure script propioak egin beharko ditugu, Eta zergatik ez? Gure beharrak guztiak Nagiosera eramaten baditugu, Haiek kontrolatuko ditugu eta gure antolaketa guztiz monitorizatuta dagoela lasaiago egongo gara!

 

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!