纳吉奥斯 – 使用 NRPE 进行监控

井, 井… 让我们在 Nagios 中多放一点 txitxa, Centreon 或我们得到的任何东西, 我们将继续为那些想要监控更高级项目的人提供一些非常有趣的东西! 我们将使用将安装在远程 Windows 或 Linux 计算机上的小型代理, 为什么? 嗯,除其他外,在这些计算机上执行脚本. 我们可以运行任何 PowerShell 脚本, 批, VBScript, Perl 公司… 然后阅读命令的结果并与 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 (给我的) del mejor!

 

Instalación de 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!

[源代码]
yum install -y gcc glibc glibc-common openssl-devel perl wget git
cd /usr/src/
git 克隆 HTTPS://github.com/NagiosEnterprises/nrpe
cd nrpe/
./设置
make all
cp src/check_nrpe /usr/lib/nagios/plugins/
cd /usr/lib/nagios/plugins/
./check_nrpe[/源代码]

 

Instalación del Agente,

 

不错, 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, “下一个”,

 

Seleccionamos ‘Generic’, “下一个”,

 

Veamos la opción “习惯”,

 

Y seleccionamos los plugins que nos interesen, yo marcaré todos, 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, “下一个”,

 

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. “下一个”,

 

不错, 压 “安装” para instalar este pequeño agentito

 

… 等待几秒钟…

 

就是这样, “完成”.

 

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:

[源代码]
./check_nrpe -H IP_EQUIPO_REMOTO -c check_uptime
[/源代码]

 

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. 我们将 “配置” > “命令” > “加” y creamos el siguiente comando:

  • 命令名称: 我们为命令命名, 要关联它,最好将其与它执行的脚本的名称相同。, en este caso ‘check_nrpe’.
  • 命令类型: 选择 'Check'.
  • 命令行: 照常, indicamos lo que realmente ejecutará Centreon o Nagios cuando llame a este comando, 它看起来像: ‘/usr/lib/nagios/plugins/check_nrpe -H IP_EQUIPO_REMOTO -c $ARG1$ -t 30’.

 

在这种情况下, si nos fijamos, le añado al final un timeout al comando de 30 秒, ya que quizás algunos comandos que ejecutemos en remoto tardarán algo ¿no? 井, 每个人都想怎么样, 点击 “Describe Argumentsy definimos el argumeto que pusimos para cuando creemos el Servicio nos acordemos de lo que hay que rellenar; que será el check/comando que definamos en el nsclient.ini. Veremos ejemplos en futuros documentos.

 

Ejemplo de script en nsclient.ini

 

El funcionamiento sería el siguiente, en la máquina remota donde instalamos el NSClient, dispondremos del fichero de configuración ‘nsclient.ini’, que habrá que ir (我) añadiendo los scripts que ejecutará y (第二) añadiendo los alias que hagan referencia al script. 例:

 

[源代码]
[/设置/外部脚本/脚本]
comando_bat = scripts\\archivo.bat

[/设置/外部脚本/别名]
alias_bat = comando_bat
[/源代码]

 

最后, deberemos copiar el script de PowerShell, vbScript, 爪哇岛, 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:

[源代码]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_bat
[/源代码]

 

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, 还行? Bien por PowerShell o como fuere. Y a este script yo como argumento le pasare el nombre de la tarea de backup, 是的? 如果我想, 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):

[源代码]
[/设置/NRPE/服务器]
允许参数=true

[/设置/外部脚本]
允许参数=true

[/设置/外部脚本/脚本]
check_copias = cmd /c echo scripts\\check_copias_seguridad.ps1 $ARG1$ $ARG2$; 退出($lastexitcode) | powershell.exe -command –

[/设置/外部脚本/别名]
alias_copias = check_copias
[/源代码]

 

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:

[源代码]
./check_nrpe -H IP_EQUIPO_REMOTO -c alias_copias -a "primer argumento" "segundo argumento"
[/源代码]

 

我说了什么, iremos viendo en futuros documentos ejemplos prácticos del uso de NRPE, cómo con unos scripts podemos sacar el jugo de toda la información que nos interese. Muchas veces tendremos que hacernos nuestros propios scripts, ¿y por qué no? Si trasladamos todas nuestras necesidades a Nagios, las controlaremos y podremos descansar mucho más tranquilos con nuestra organización totalmente monitorizada!

 

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!