Nagios – Monitoramento com NRPE

Poço, Poço… Vamos adicionar um pouco mais de músculo ao nosso Nagios, Centreon ou o que tivermos, continuaremos com algo muito interessante para quem quiser monitorizar itens mais avançados! Usaremos um pequeno agente que será instalado nos computadores Windows ou Linux remotos, para quê? Bem, entre outras coisas, para executar scripts nesses computadores. Poderemos executar qualquer script de PowerShell, Batch, VBScript, Perl… e depois ler o resultado do comando e processá-lo com o Nagios!

 

Nagios Remote Plugin Executor (NRPE) será executado como serviço ou daemon nas máquinas a monitorizar e ficará à escuta para que, a partir do Nagios, com o comando ‘check_nrpe’, possamos fazer pedidos. Em outros documentos futuros veremos outro tipo de agentes, hoje é o momento de falar (para mí) do melhor!

 

Instalação do check_nrpe,

 

Comenzamos descargando y compilando ‘check_nrpe’, previamente instalamos los requisitos, os dejo aquí los pasos seguidos, al finalizar movemos el binario al path de los plugins y lo probamos!

[Código-fonte]
yum install -y gcc glibc glibc-common openssl-devel perl wget git
cd /usr/src/
clone do git https://github.com/NagiosEnterprises/nrpe
cd nrpe/
./Pôr
make all
cp src/check_nrpe /usr/lib/nagios/plugins/
cd /usr/lib/nagios/plugins/
./check_nrpe[/Código-fonte]

 

Instalación del Agente,

 

Nada mau, para ello utilizaremos NSClient++, lo descargamos de su web, y en principio utilizaremos la última versión, en este ejemplo utilizaremos el binario x64 de Windows.

 

Comenzamos la instalación de NSClient, “Próximo”,

 

Seleccionamos ‘Generic’, “Próximo”,

 

Veamos la opción “Costume”,

 

Y seleccionamos los plugins que nos interesen, yo marcaré todos, por que los usaré en otros ejemplos, en este caso com marcar NRPE Support nos valdría.

 

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

 

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

 

Nada mau, Pressionado “Instalar” para instalar este pequeno agentito…

 

… Aguarde alguns segundos…

 

E é isso, “Acabar”.

 

No quedaría más que executar desde o nosso equipo Nagios um comando para testear si há conectividade, un exemplo muy sencillo seria el seguinte:

[Código-fonte]
./check_nrpe -H IP_EQUIPO_REMOTO -c check_uptime
[/Código-fonte]

 

Si vemos que conecta y nos dice el tiempo que lleva encendida esa máquina, ya podremos empezar!! Ahora ya sólo queda alimentar con scripts las máquinas Windows o Linux y ejecutar lo que queramos de forma remota, en próximos documentos iré poniendo ejemplos interesantes, pero necesitaremos seguir este documento primero.

 

Crear el Comando en Centreon,

 

Quedaría por tanto dar de alta el Comando que usaremos cuando creemos los Servicios que nos interesen que monitoricen equipos remotos. Nós vamos “Configuração” > “Comandos” > “Adicionar” y creamos el siguiente comando:

  • Nome do comando: Indicamos un nombre al comando, para asociarlo lo mejor será ponerle igual que se llame el script que ejecuta, en este caso ‘check_nrpe’.
  • Tipo de comando: Seleccionamos ‘Check’.
  • Linha de comando: Como de costume, indicamos lo que realmente ejecutará Centreon o Nagios cuando llame a este comando, ficaria algo como: '/usr/lib/nagios/plugins/check_nrpe -H IP_EQUIPO_REMOTO -c $ARG1$ -t 30'.

 

Neste caso, se nos atentarmos, acrescento no final um timeout ao comando de 30 Segundos, uma vez que talvez alguns comandos que executemos remotamente demorem um pouco, não? Poço, cada um como quiser, Clique em “Descrever Argumentos” e definimos o argumento que colocámos para que, quando criarmos o Serviço, nos lembrámos do que é necessário preencher; que será o check/comando que definirmos no nsclient.ini. Veremos exemplos em documentos futuros.

 

Exemplo de script no nsclient.ini

 

O funcionamento seria o seguinte, na máquina remota onde instalámos o NSClient, disporemos do ficheiro de configuração 'nsclient.ini', que haverá que ir (eu) adicionando os scripts que irá executar e (Ii) añadiendo los alias que hagan referencia al script. Exemplo:

 

[Código-fonte]
[/configurações/scripts externos/scripts]
comando_bat = scripts\\archivo.bat

[/configurações/scripts externos/alias]
alias_bat = comando_bat
[/Código-fonte]

 

Último, deberemos copiar el script de PowerShell, vbScript, Java, batchque tengamos a la carpeta ‘scriptsde NSClient. Cada vez que modifiquemos el fichero de configuración ‘nsclient.inideberemos reiniciar el servicio de WindowsNSClient++para que recargue la config y ya podremos desde el Nagios remoto llamar a este script, en el ejemplo anterior con:

[Código-fonte]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_bat
[/Código-fonte]

 

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, ok? Bien por PowerShell o como fuere. Y a este script yo como argumento le pasare el nombre de la tarea de backup, Sim? 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):

[Código-fonte]
[/configurações/NRPE/servidor]
permitir argumentos=true

[/configurações/scripts externos]
permitir argumentos=true

[/configurações/scripts externos/scripts]
check_copias = cmd /c echo scripts\\check_copias_seguridad.ps1 $ARG1$ $ARG2$; sair($código de saída de última hora) | powershell.exe -command –

[/configurações/scripts externos/alias]
alias_copias = check_copias
[/Código-fonte]

 

Y luego ya podremos desde la máquina Nagios ejecutar un comando pasándole argumentos, que a posteriori los definiremos desde Centreon con GUI de una forma más cómoda:

[Código-fonte]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_copias -a "primer argumento" "segundo argumento"
[/Código-fonte]

 

O que eu disse, iremos viendo en futuros documentos exemplos prácticos del uso de NRPE, como com uns scripts podemos sacar o jugo de toda la informação que nos interessa. Muchas veces tendremos que hacernos nos nossos próprios scripts, y por qué no? Si trasladamos todas as nossas necessidades a Nagios, las controlaremos y podremos descansar muito mais tranquilos com a nossa organização totalmente monitorizada!

 

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!