Plugin NGINX Enterprise monitoring

Plugin para la monitorización de status de Nginx o Nginx plus

Introducción

 

Ver. 140521

Con este plug-in podremos monitorizar nginx o nginx plus.

Coge los datos de status de la ip requerida y genera los módulos necesarios.

Tipo: Plug-in de agente

Matriz de compatibilidad

 

Sistemas donde se ha probado

CentOS 7

Sistemas donde debería funcionar

Cualquier sistema linux 

 

Pre requisitos

Se requiere :

Se requiere tener habilitado el módulo “ngx_http_stub_status_module” de nginx, que es de donde el plugin va a coger los datos.

Configuración

Depende de si se ha compilado manualmente NGINX o el paquete precompilado que se esté usando puede que esté instalado el módulo “ngx_http_stub_status_module” o no, para verificar si está o no se puede usar el siguiente comando:

nginx -V | grep -o with-http_stub_status_module
with-http_stub_status_module

En este ejemplo vemos que esta instalado asi que podemos utilizarlo, de no ser el caso debemos compilar NGINX añadiendo el módulo:

./configure \
  --prefix=/opt/nginx \
 --sbin-path=/opt/nginx/sbin \
 --conf-path=/opt/nginx/nginx.conf \
 --pid-path=/opt/nginx/run/nginx.pid \
 --with-http_ssl_module \
 --with-http_gzip_static_module \
 --with-http_stub_status_module

Configuración de status en NGINX

Vamos a declarar status dentro del fichero nginx.conf que está situado en /etc/nginx

Añadiremos /status a la derecha de location, tal como sale en la imagen.

Parámetros generales del plugin

./nginx_monitor_enterprise <ip> /status

Para hacer funcionar el plugin, se ejecutara seguido de la ip a monitorizar (debe incluir el puerto de nginx) y seguido de /status, como se vio en configuración se declara en "location", por defecto es status, asi que si le pones este nombre no será necesario incluirlo en el comando.

Parámetros específicos del plugin

Este plugin no contiene parámetros específicos, podremos ver un ejemplo de uso ejecutandolo sin ningún tipo de parámetro.

image-1621327632207.png

Ejecución manual

Podemos comprobar el plugin desde el terminal para ver si funciona, para comprobarlo, ejecutamos el plugin según los parámetros vistos antes, este nos devolvera datos en formato XML :

image-1621327804042.png

Para comprobar si funciona el .exe para agentes software windows lo haremos así, haciendo una llamada al path donde se encuentre con comillas:

image-1621494734215.png

Resolución de posibles problemas

Por defecto las colecciones tienen un limite de 1000000 bytes, por eso cuando subamos el plugin mediante colecciones nos dará este error :

image-1621411592996.png

Esto tiene fácil solución, deberemos aumentar el límite de las colecciones, para ello iremos a configuración>configuración>enterprise :

image-1621411552535.png

Y cambiamos esto:

image-1621411723521.png

En este caso yo he puesto 7000000 bytes, que es más que suficiente para el uso de este plugin.

 

Configuración en Pandora

Sin la configuración remota habilitada

Deberemos pasarnos el plugin a la maquina virtual, esto podemos hacerlo mediante pscp. Ejecutamos pscp y abrimos el terminal de windows, dentro para pasarnoslo usaremos este código:

pscp -P 22 <path-plugin> root@<ip-maquina>:<path-destino>

Ejemplo:

image-1621351695069.png

La recomendación es meter los plugins de agente en la ruta /etc/pandora/plugins para un uso más cómodo.

Para usarlo abriremos pandora_agent.conf

vim /etc/pandora/pandora_agent.conf

Y abajo de todo el archivo, cargaremos el plugin que hemos pasado a la maquina añadiendo :

module_plugin <path del plugin> <ip a monitorizar con el puerto nginx> <url de status>

image-1621352337126.png

Con configuración remota habilitada

Para habilitar la configuración remota tenemos que abrir el archivo pandora_agent.conf :

vim /etc/pandora/pandora_agent.conf

Dentro buscamos la línea remote_config, para habilitarla la ponemos en 1.

image-1621351227777.png

Hecho esto, para instalar el plugin con configuración remota habilitada hay dos opciones, la primera es :

Realizar el proceso de enviar el plugin a la máquina virtual como esta definido en la forma de instalar en plugin sin configuración remota habilitada descrita anteriormente, solo que en vez de meter la línea :

module_plugin <path del plugin> <ip a monitorizar con el puerto nginx> <url de status>

en pandora_agent.conf desde la máquina, lo haremos desde la consola , en el menu de agentes, pinchamos en configuración remota:

3.JPG

Y metemos la línea, después damos a actualizar:

image-1621353459627.png

 

La segunda opción es mediante colecciones.

Vamos a configuration > collections:

Pinchamos en crear :

Ponemos nombre y nombre corto y pinchamos en crear otra vez:

Cuando este creado vamos a archivos :

 

Pinchamos en "Upload":

 

Subimos el plugin y le damos a "ir":

 

Pinchamos en "volver a crear archivo" :

 

Vamos al menú de plugins de agente :

 

Metemos la ruta del plugin con la dirección ip a monitorizar, seguido de /status:

 

Se verá abajo que se ha cargado el plugin (en esta imagen puedes comprobar la forma en la que hay que introducir la IP, recuerda que hay un espacio entre la IP y /status.

Después, reiniciamos el agente con :

/etc/init.d/pandora_agent_daemon restart

Y si todo ha salido bien, deberían salir los módulos en el agente.

 

Instalar plugin en versión zip para dispositivos windows 

Lo primero será instalar el agente software windows, lo podremos descargar de https://sourceforge.net/projects/pandora/files/

buscaremos para la versión de pandora que estemos usando, y pinchamos en windows :

image-1621496021922.png

Aquí descargaremos en agente windows, en este caso yo me bajare la versión de 64 bits :

image-1621496086205.png

Empezaremos la instalación del archivo, ponemos la ruta en la que queremos que se instale ("C:\Program Files" por defecto) y cuando se complete el proceso, ponemos la ip del server en el que se va a instalar el agente.

image-1621496220124.png

En la siguiente ventana marcamos la pestaña de configuración remota para que salga directamente habilitada.

image-1621496280223.png

Cuando este instalado, ya en la consola vamos a crear una colección, vamos a configuración > colecciones :

image-1621496489939.png

Subimos el archivo.zip y marcamos la pestañita que dice "descomprimir":

image-1621496536014.png

Hecho esto, damos a "volver a crear archivo" para que se guarde.

Luego vamos a recursos>gestionar agentes>módulos (del agente software windows) y vamos a colecciones :

image-1621496779857.png

Damos en la colección creada previamente al icono de "añadir" :

image-1621497264074.png

 

Una vez hecho esto, vamos a servicios y reiniciamos el agente :

image-1621497342629.png

Veremos que se nos ha creado la colección en "collections", en la carpeta donde se instalo el agente:

image-1621497416700.png

Después vamos a "plugins de agente" y hacemos la llamada al plugin de la la coleccion que hemos creado poniendo "Program Files\pandora_agent\collections\nginx-plus\nginx_monitor_enterprise\nginx_monitor_enterprise.exe" <ip ngins con el puerto> :

image-1621497530277.png

Veremos que ha aparecido abajo :

image-1621497570701.png

Vamos a agentes, pinchamos en configuración remota del agente windows :

image-1621498038296.png

Y abajo veremos como se nos ha creado esta línea :

image-1621498068672.png

 

Hecho esto, volvemos a reiniciar el agente software desde servicios, y ya se nos habran creado los módulos.

 

 

 

Módulos generados por el plugin

La ejecución estándar de este plugin devolverá los siguientes módulos por defecto (con todos los bloques opcionales habilitados):

Monitorización:

  • Active connections
El número actual de conexiones activas de los clientes
  • Accepted connections
El número actual de conexiones aceptadas de los clientes
  • Handled connections
El número total de conexiones gestionadas de clientes desde que se inició el proceso
  • Handled request
El  número total de solicitudes de clientes desde que se inició el proceso
  • Keep-alive connections
Número de conexiones keep-alive
  • Nginx plugin execution
Si el plugin se esta ejecutando, 1 si es así, 0 en caso contrario
  • Nginx plugin info
Excepción si no se generan los módulos anteriores.

Asi se vería en la pantalla de módulos :

Y este es un ejemplo de como recoge los datos en la vista del agente :

 

image-1621342415036.png

2.JPG