Herramientas de monitoreo del servidor

Para el monitoreo de servidores y elementos computacionales existen diferentes herramientas. Una de las más extendidas como interfaz para la presentación de métricas es Grafana, la cual a través de sus Dashboards muestra los diferentes indicadores de rendimiento de la infraestructura de los servidores, esto gracias a su integración con Prometheus, el cual permite recolectar dicha información.

En este proyecto se hace uso de ambas herramientas para efectuar un monitoreo del rendimiento del servidor y los contenedores donde se están ejecutando las aplicaciones que conforman la Plataforma de IoT.

Prometheus

Prometheus es una herramienta de monitoreo de sistemas computaciones, de código abierto, originalmente generado en SoundCloud. Desde el 2012 ha sido adoptado por diversas compañías siendo activamente desarrollado y usado por la comunidad. Entre sus principales características se encuentra:

  • Ofrece un modelo de datos multidemensional con información de series de tiempo identificados por el nombre de la métrica y pares de llaves/valores.

  • Emplea el lenguaje PromQL que es un lenguaje de consulta bastante flexible.

  • Las series de tiempo pueden ser obtenidas sobre HTTP.

  • Se puede subir las series de tiempo soportadas mediante un gateway intermediario.

  • Los objetivos son descubiertos mediante el descubrimiento de servicios o configuración estática.

  • Soporta múltiples modos de gráficos.

Esta herramienta cuenta con los siguientes componentes:

  • El servidor de Prometheus que colecta y almacena las series de tiempo.

  • Las librerías clientes para integrarlo con código de aplicaciones.

  • El gateway para admitir tareas de corta duración.

  • Algunos programas "exportadores" para servicios como HAProxy, StatsS, Graphite, etc.

  • Un administrador de alertas para manejar las alertas.

  • Otras herramientas de soporte.

La arquitectura de esta herramienta, se puede apreciar en la siguiente imagen:

Arquitectura de Prometheus
Figure 1. Arquitectura de Prometheus. Obtenida de https://prometheus.io/docs/introduction/overview/

Una característica interesante de Prometheus es que puede integrarse con Grafana para fines de visualización https://prometheus.io/docs/visualization/grafana/, lo cual le adiciona las características de presentación de esta herramienta.

Grafana

Grafana es una herramienta de código abierto que permite realizar consultas, visualizar y enviar alertas de métricas y logs sin importar donde se encuentren almacenados.

Grafana puede incorporar diferentes modelos de datos y ya viene con un conjunto incluido con soporte para muchas de las bases de datos en series de tiempo más populares tales como Graphite, Prometheus, ElasticSearch, OpenTSDB e InfluxDB. Así mismo cuenta con integración para monitoreo de servicios en la nube tales como Google Stackdriver, Amazon CloudWatch, Microsoft Azure y bases de datos SQL tales como MySQL y Postgres.

En este proyecto se emplea Grafana para mostrar las métricas obtenidas de. Prometheus, siendo este uno de los formatos admitidos por Grafana con una integración relativamente sencilla https://grafana.com/docs/grafana/latest/datasources/prometheus/.