Nagis – Monitoritzant amb NRPE

Bo, bo… Vam posar-li una mica més de txitxa al nostre Nagios, Centre o el que tinguem, seguirem amb una cosa molt interessant per al que vulgui monitoritzar ítems més avançats! Usarem un petit agent que s'instal·larà als equips Windows o Linux remots, per a què? Doncs entre altres coses per executar scripts en aquests equips. Podrem executar qualsevol script de PowerShell, Batch, VBScript, Perl… i després llegir el resultat del comandament i tractar-lo amb Nagios!

 

Nagios Remote Plugin Executor (NRPE) s' executarà com a servei o dimoni en les màquines a monitoritzar i estarà escoltant perquè des de Nagios, amb el comando 'check_nrpe', li fem peticions. En altres documents futurs ja veurem un altre tipus d'agents, avui toca parlar (per a mi) del millor!

 

Instal·lació de check_nrpe,

 

Comencem descarregant i compilant 'check_nrpe', prèviament instal·lem els requisits, us deixo aquí els passos seguits, en finalitzar movem el binari al path dels plugins i ho provem!

[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/nagis/plugins/
cd /usr/lib/nagios/plugins/
./check_nrpe[/sourcecode]

 

Instal·lació de l'Agent,

 

Bé, per a això utilitzarem NSClient++, ho descarreguem de la seva web, i en principi utilitzarem l'última versió, en aquest exemple utilitzarem el binari x64 de Windows.

 

Comencem la instal·lació de NSClient, “Next”,

 

Seleccionem 'Generic', “Next”,

 

Vegem l'opció “Custom”,

 

I seleccionem els plugins que ens interessin, jo marcaré tots, perquè els faré servir en altres exemples, en aquest cas amb marcar NRPE Support ens valdria.

 

Ens indica el fitxer INI que farem servir per aplicar la configuració, “Next”,

 

Haurem d'afegir l'adreça IP de la màquina Nagios o Centreon que executarà les consultes, així com habilitar check_nt si ens interessés, que segur que sí, ja veureu =), a més seleccionem el mode de seguretat de NRPE, en aquest cas no usarà contrasenya en usar el mode Insegur, en un entorn corporatiu, almenys seleccionarem una manera segura. “Next”,

 

Bé, posem “Install” per instal·lar aquest petit agent…

 

… esperem uns segons…

 

I llest, “Finish”.

 

No quedaria més que executar des del nostre equip Nagios un comandament per testejar si hi ha connectivitat, un exemple molt senzill seria el següent:

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

 

Si veiem que connecta i ens diu el temps que porta encesa aquesta màquina, ja podrem començar!! Ara ja només queda alimentar amb scripts les màquines Windows o Linux i executar el que vulguem de forma remota, en propers documents aniré posant exemples interessants, però necessitarem seguir aquest document primer.

 

Crear el Comandament a Centreon,

 

Quedaria per tant donar d'alta el Comandament que farem servir quan creiem els Serveis que ens interessin que monitoritzin equips remots. Anem a “Configuration” > “Commands” > “Add” i creem el següent comandament:

  • Command Name: Indiquem un nom al comandament, per associar-lo el millor serà posar-li igual que s'anomeni l'script que executa, en aquest cas 'check_nrpe'.
  • Command Type: Seleccionem 'Check'.
  • Command Line: Com sempre, indiquem el que realment executarà Centreon o Nagios quan cridi a aquest comandament, quedaria alguna cosa com: '/usr/lib/nagis/plugins/check_nrpe -H IP_EQUIPO_REMOTO -c $ARG 1$ -t 30'.

 

En aquest cas, si ens fixem, li afegeixo al final un timeout al comando de 30 segons, ja que potser alguns comandaments que executem en remot trigaran alguna cosa ¿no? Bo, cadascú com vulgui, posem en “Descriu Arguments” i definim l'argumet que posem per quan creiem el Servei ens acordem del que cal omplir; que serà el check/comando que definim al nsclient.ini. Veurem exemples en futurs documents.

 

Exemple de script en nsclient.ini

 

El funcionament seria el següent, a la màquina remota on instal·lem el NSClient, disposarem del fitxer de configuració 'nsclient.ini', que caldrà anar (i) afegint els scripts que executarà i (ii) afegint els àlies que facin referència a l' script. Exemple:

 

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

[/settings/external scripts/àlies]
alias_bat = comando_bat
[/sourcecode]

 

Finalment, haurem de copiar l'script de PowerShell, vbScript, Java, batch… que tinguem a la carpeta 'scripts’ de NSClient. Cada vegada que modifiquem el fitxer de configuració 'nsclient.ini’ haurem de reiniciar el servei de Windows “NSClient + +” perquè recarregui la config i ja podrem des del Nagios remot cridar aquest script, en l' exemple anterior amb:

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

 

Ús d' arguments,

Imaginem doncs, que el que hàgim d'executar, l'script al costat Windows/Linux, requereix d' arguments, i se'ls volem passar des de la màquina Nagios. Com a exemple fàcil d'entendre, pensem en un script que monitoritza còpies de seguretat, val? Bé per PowerShell o com sigui. I a aquest script jo com a argument li passarà el nom de la tasca de backup, si? Si vull, evitar definir-lo 5 vegades a l'INI (ja que tinc 5 tasques de backup), li passarà des de Nagios/Centreon l'argument directament del Job. Us deixo aquí un exemple de la configuració necessària en el 'nsclient.ini', primer habilitarem que se li puguin passar arguments locals i externs i després ja definim el comandament que executarà seguit dels arguments que espera (en l'exemple 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 $ARG 1$ $ARG 2$; exit($lastexitcode) | powershell.exe -command –

[/settings/external scripts/àlies]
alias_copias = check_copias
[/sourcecode]

 

I després ja podrem des de la màquina Nagios executar un comando passant-li arguments, que a posteriori els definirem des de Centreon amb GUI d'una forma més còmoda:

[sourcecode]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_copias -a "primer argument" "segon argument"
[/sourcecode]

 

El que s'ha dit, anirem veient en futurs documents exemples pràctics de l'ús de NRPE, com amb uns scripts podem treure el suc de tota la informació que ens interessi. Moltes vegades haurem de fer-nos els nostres propis scripts, i per què no? Si traslladem totes les nostres necessitats a Nagios, les controlarem i podrem descansar molt més tranquils amb la nostra organització totalment monitoritzada!

 

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!