Monitorización básica de tus servidores desde JMeter.

title

Conocer cómo se encuentra la salud de los servidores es sumamente importante, sobre todo para garantizar que los tiempos de respuesta sean adecuados a los usuarios finales. Un proceso de pruebas de performance no es completado si no incluye una etapa de monitorización de los recursos en los servidores. Existen herramientas que permiten realizar una monitorización de los servidores. Muchas de ellas con una experiencia de usuario excelente, con una enorme comunidad de usuarios que la respaldan, varias de ellas Opensource, pero en la mayoría de los casos tienen una curva de aprendizaje enorme, complicando su entendimiento. JMeter por su parte es una herramienta de generación de carga, pero contiene un plugin que provee una excelente y rápida manera de coleccionar métricas desde un servidor. Este plugin se llama “PerfMon Metrics Collector”, y se encuentra disponible en https://jmeter-plugins.org/wiki/PerfMon/

Usando este plugin es posible monitorear el CPU, Memoria, Disco y redes, su configuración es bien sencilla, con unos cuantos pasos puedes estar controlando el comportamiento de tus servidores. Es una monitorización básica, pero de mucha utilidad cuando deseamos obtener resultados rápidos sobre la salud de nuestros servidores. En este post vamos a ofrecer un tutorial “Paso a Paso”.

Presentaremos nuestra infraestructura.

Contamos un servidor local, este cuenta con una aplicación web, a esta aplicación web se puede acceder desde el “localhost”, por lo que nuestra Página Principal será accedida solo con establecer la URL : https://localhost. Tener en cuenta que este tutorial estará basado desde el sistema operativo Windows.

Paso 1: Descargar el Agente:

JMeter no puede recuperar las métricas del servidor por sí solo, para esto es necesario usar el “agente de servidor” los cuales capturan los datos de rendimiento y los envían a JMeter. Los agentes utilizan la biblioteca de código abierto SIGAR. Estos recopilan las métricas y las envían a través del protocolo TCP o UDP a JMeter.

Descargar el Agente en el siguiente link: https://github.com/undera/perfmon-agent/releases/download/2.2.3/ServerAgent-2.2.3.zip

Paso 2: Copiar el agente en el servidor que estarás monitorizando.

image1

Paso 3: Ejecutar el archivo

Ejecutar el archivo “StarAgent.bat” que se encuentra dentro de la carpeta principal “ServerAgent-2.2.3”. Este proceso abrirá los puertos UDP y TCP 4444 y te mostrará esta consola automáticamente especificando que el agente está iniciado. Si estás usando un servidor con Linux, deberás ejecutar el archivo “StarAgent.sh”.

image2

Paso 4: Preparar el Plan de Pruebas en JMeter.

Para el ejemplo en cuestión estaremos accediendo a la URL: http://localhost Que se encuentra alojada en nuestro servidor. Estaremos realizando un Get a la Página Inicial. Como se muestra en la siguiente imagen solo tendremos un request “petición”.

image3

Paso 5: Añadimos el Listener “View Result Tree” y “jp@gc - PerfMon Metrics Collector”

A través de Clic derecho sobre de plan de prueba - > Add - > Listeners - > Para poder tener este último listener visible en el JMeter, primeramente debe ser agregado el plugin “Set Standard” desde el Gestor de Plugins.

image4

image5

Paso 6: Agregar el Host, Puerto y la Métrica a verificar a través de “Add Row”.

Para el ejemplo del tutorial seleccionaremos nuestro servidor localhost como “HOST/IP”, el puerto 4444, y las métricas que estaremos controlando. localhost -- 4444 -- CPU localhost -- 4444 -- Memory Solo estaremos verificando el CPU y la Memoria durante nuestras pruebas. Este elemento debe quedar de la siguiente manera:

image6

Paso 7: Ejecutar nuestro script.

En nuestro caso como solo tenemos un “request http” a la página principal(localhost), en el ThreadGroup especificaremos iteraciones infinitas por un intervalo de 60sec, con el objetivo de demorar nuestro script y clarificar mejor los resultados en el “PerfMon Metrics Collector”. Luego clic en “Start” o Iniciar script.

image7

Nos detenemos en “PerfMon Metrics Collector” y comenzaremos a ver en unos pocos segundos como se comporta el CPU y la Memoria de nuestro servidor.

image8

image9

Podemos observar el comportamiento de nuestro servidor a los largo de 60sec en que se está ejecutando nuestro script. En azul se muestra el comportamiento de nuestro CPU y en rojo la Memoria. Si tu monitorización tiene un pico cercano a 100, debemos preocuparnos y ocuparnos de lo sucedido. Como en nuestro caso cuando el CPU tiene un pico casi en 100% cercano al último segundo. :(

-Delvis