NCPA. Instalación y análisis rápido.

Atención: estos agentes/plugin son de Nagios Enterprise y están sujetos a acuerdos de licencia. Ver licencia que viene con los agentes.

Recientemente me llamó la atención en las news habituales de Nagios la aparición de un nuevo agente para Nagios, NCPA. Parece destinado a tener un agente único para los sistemas linux, unix, windows y sustituir a los clientes habituales como nrpe, nsclient++,… Además de incluir una serie de chequeos estándar habituales de serie (discos, cpu, memoria, red,…) permite la ejecución de plugins externos. Tenemos la posibilidad además de que los chequeos sean activos o pasivos (el agente sea el que los envíe a Nagios). Por si fuera poco, también nos da la posibilidad de servir de ejecutor de chequeos para terceros equipos. Podemos configurarlo para ponerlo en una red y que se encargue de realizar los chequeos de varios equipos y reenvié pasivamente los resultados a un servidor central de Nagios.

Con toda esta información… habrá que echarle un ojo 🙂

NCPA_Interface_menu

En el momento de ponerme a bajar los componentes y analizar la documentación disponible me asaltó la duda de si estos plugins son Open Source o no… La documentación siempre menciona Nagios XI que tiene componentes exclusivos que no son de uso público digamos. Los enlaces de descarga no son todo lo accesibles que debieran y al instalar el agente para Windows… si que menciona temas de Copyright…. Ademas el RPM para instalar el agente también tiene un fichero “NagiosSoftwareLicense.txt” con aclaraciones al respecto por lo que deduzco que no serán de libre uso para Nagios Core. En cualquier caso quería probarlo… si tienes Nagios XI te interesa y si usas Nagios Core pues es información importante por si quieres reconsiderar el pagar o no por Nagios XI.

Descarga y Documentación.

En Nagiosexchange encontramos el documento desde el que nos indica las rutas para descargar los agentes para Windows, Linux (rpm) y Linux (deb). El propio plugin, check_ncpa.py, lo puedes obtener en el paquete de NCPA para Nagios XI y que puedes obtener el enlace en el documento de Nagiosexchange “Monitoring Machines Using The NCPA Agent”. Está incluido en el zip. Un poco rebuscado, ¿no?. Intente encontrar enlaces más directos pero no los localicé.

Instalación de agente NCPA en Redhat / CentOS.

Se baja e instala, en nuestro caso el agente para Redhat 6:

yum localinstall ncpa-head.el6.rpm

Modificamos /usr/local/ncpa/etc/ncpa.cfg para especificar el la sección API el valor de “community _string” que será nuestro token de conexión que es una especie de clave única digamos. Si pones un token demasiado corto no funcionará por cierto. Ponemos uno cualquiera (luego lo usaremos en el resto del artículo).

[api]
community_string = abcwWET12345defSDFA32

Habilitamos el puerto 5693 (solo para nuestro nagios y puestos de gestión mejor) en nuestro firewall y reiniciamos el agente:

/etc/init.d/ncpa_listener restart

Ya podemos acceder a la ayuda de ncpa directamente en el agente. Dicha ayuda es muy interesante ya que nos introduce en el uso de la API con ejemplos concretos.
https://agente_ip:5693/static/help/configuration.html

Para verificar si el agente está funcionando correctamente nos conectamos a esta URI y nos aparecerá un chorro de datos (todos los datos que nos proporciona directamente el agente, sin usar plugins adicionales):
https://agente_ip:5693/api/?token=abcwWET12345defSDFA32

{
 "value": {
 "root": {
 "process": [], 
 "user": {
 "count": [
 2, 
 "c"
 ], 
 "list": [
 "root", 
 "root"
….........................

Además, conectándonos a la url si argumentos directamente:
https://agente_ip:5693/

Tenemos todo un pequeño servidor web funcional donde podemos ver configuraciones de servidor y plugins, ayudas y directamente, con gráficas, los valores que nos ofrece para chequear. Interesante.

NCPE_Interface_menu_Dashboard

Plugin para Nagios.

Descomprimimos ncpa.zip y en el directorio plugins tenemos el plugin check_ncpa.py. Lo copiamos a nuestro directorio de plugins de Nagios y lo hacemos ejecutable. Probamos que funcione.
En la descripción de la API que tenemos en la página web de documentación del cliente podemos ver los elementos disponibles ya en el propio cliente (sin necesidad de plugins adicionales). Estos se disponen en árbol y la forma de llamarlos es pasándole como argumento de -M (metric) dicho item con su relación jerárquica. Algunos ejemplos:

# ./check_ncpa.py -H agente_ip -t abcwWET12345defSDFA32 -M api/disk/phyical/sda1/read_time
OK: Read_time was 680.0ms|'read_time_0'=680.0ms
# ./check_ncpa.py -H agente_ip -t abcwWET12345defSDFA32 -M api/cpu/user
OK: User was 24.17ms|'user_0'=24.17ms

En el caso de los discos, tanto para Windows como para Linux (lógicos) hay que evitar las barras tradicionales “\” “/” de cada sistema y usar “|” (pipe). Además, al menos desde línea de comandos hay que escapar el pipe. Un ejemplo para “/boot”:

# ./check_ncpa.py -H agente_ip -t abcwWET12345defSDFA32 -M api/disk/logical/\|boot/free
OK: Free was 426400768.0b|'free_0'=426400768.0b

También podemos acceder directamente por URL a los mismos valores. Probamos primero desde Nagios con el plugin, ahora proporcionando valores de W/C y unidades:

./check_ncpa.py -H agente_ip -t abcwWET12345defSDFA32 -M api/memory/virtual/available -w 2:1 -c 1:0 -u G
CRITICAL: Available was 0.914Gb|'available_0'=0.914Gb;2:1;1:0

Lo mismo mediante API por URL, pasándole valores de W/C. Es necesario especificar “check=true” para que nos devuelva los datos en formato plugin.

https://agente_ip:5693/api/memory/virtual/available?token=abcwWET12345defSDFA32&warning=2:1&critical=1:0&check=true&unit=G
{
 "value": {
 "returncode": 2, 
 "stdout": "CRITICAL: Available was 0.919Gb|'available_0'=0.919Gb;2:1;1:0"
 }
}

Podemos ver los Plugins adicionales instalados en nuestro agente (Servidor de NCPA):

https://agente_ip:5693/api/agent/plugin?token=abcwWET12345defSDFA32
{
 "value": {
 "plugin": [
 "yancyforprez.sh", 
 "test.vbs"
 ]
 }
}

Y ejecutarlos de igual manera:

https://agente_ip:5693/api/agent/plugin/yancyforprez.sh/?token=abcwWET12345defSDFA32 
{
 "value": {
 "returncode": 2, 
 "stdout": "None\n"
 }
}

Configuración objetos Nagios. Ejemplos.

Como no tengo a mano un Nagios XI lo probamos en Nagios Core 4. Unos ejemplos probados de configuración en Nagios Core.

Definimos es rsource.cfg nuestro token:
$USER10$=abcwWET12345defSDFA32

Definimos nuestros objetos de ejemplo:

 

define host{
 use linux-server,host-pnp
 host_name centos_test_ncpe
 alias centos_test_ncpe
 address 192.168.1.63
 }
define service{
 use local-service,srv-pnp 
 host_name centos_test_ncpe
 service_description disk_root_free
 check_command check_ncpa_agent_logical_disk!free!20:15!15
 }
define service{
 use local-service,srv-pnp 
 host_name centos_test_ncpe
 service_description memory_free
 check_command check_ncpa_agent_virtual_memory!free!20:15!15
 }
define command{
 command_name check_ncpa_agent_logical_disk
 command_line $USER1$/check_ncpa.py -H $HOSTADDRESS$ -t $USER10$ -M api/disk/logical/\|/$ARG1$ -w $ARG2$ -c $ARG3$ -u G
 }
define command{
 command_name check_ncpa_agent_virtual_memory
 command_line $USER1$/check_ncpa.py -H $HOSTADDRESS$ -t $USER10$ -M api/memory/virtual/$ARG1$ -w $ARG2$ -c $ARG3$ -u G
 }

nagios-sample-services-ncpa

Probarlos en la la shell de nuestro Nagios desde el dir. de plugins (para que veas que funcionan si tienes problemas)

./check_ncpa.py -H 192.168.1.63 -t abcwWET12345defSDFA32 -M api/disk/logical/\|/free -w 20:15 -c 15: -u G
./check_ncpa.py -H 192.168.1.63 -t abcwWET12345defSDFA32 -M api/memory/virtual/free -w 2:1 -c 1: -u G

Conclusiones.

Buen intento de estandarizar la dispersión de distintos clientes / agentes para Nagios pero es una pena si realmente no es open source. Aunque no parece haber restricciones para su uso la licencia adjunta viene claramente con copyright y no menciona que sea Open Source.

En cualquier caso echo de menos:

  • La posibilidad de un solo chequeo activo que se “traiga” todos los chequeos en modo pasivo (al estilo de los agentes de check_mk. Con NCPA puede ejecutar los chequeos de forma pasiva o de forma activa pero no de esta forma en concreto.
  • La posibilidad de chequear todos los items iguales (discos, tarjetas de red,…) en un solo chequeo pasándole los valores de W/C para cada uno de ellos. Un solo servicio en Nagios pero alertando de items independientes. Muy habitual en numerosos plugins de terceros.

2 thoughts on “NCPA. Instalación y análisis rápido.

    1. eldespistado1 Post author

      Me parece un avance importante si pero aún está un poco verde creo.
      Además, aunque insistan en algún comentario que es Open Source, el soft no incluye la licencia Open Source de Nagios si no una con Copyright.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.