Prometheus con Grafana

Hoy en día están saliendo muchas herramientas de monitorización, que lo que buscan es controlar lo que pasa en cada momento en nuestra máquina y así trazar unas gráficas para que, en todo momento, y a lo largo del tiempo, sepamos que ha pasado en ella y así poder depurarla, controlar su buen funcionamiento, saber si necesitamos ampliar su hardware, etc.

Este proceso requiere de tres componentes, recolector, base de datos visualizador. Existen distintos de cada tipo, y las compatibilidades entre ellos son muy diversas, además de rendimiento, facilidad de uso e instalación entre ellos. En stackshare podemos ver una leve comparativa de los tres visualizadores más usados (estadísticas de GitHub, quién lo usa, etc.).

El recolector, se encarga de recoger todos los datos de nuestra máquina, continuamente, en tiempo real, para así mandarlo a la base de datos, que será quien lo almacene, y por último el visualizador es quien nos muestra una gráfica con los datos.

En esta «mar de opciones» nos hemos decantado para probar cómo funciona éste sistema con Prometheus Grafana, pero antes hemos dicho que necesitamos tres componentes, y lo que ocurre es que Prometheus actúa tanto como base de datos, y como recolector (Prometheus Node Exporter) y Grafana será nuestro visualizador.

La instalación de Prometheus  es muy simple si manejamos un sistema Debian Strech, simplemente, con los repositorios actualizados, realizaremos:

apt install prometheus

Esto nos instalará también el servicio de Prometheus Node Exporter.

A continuación instalamos Grafana, aquí tenemos dos opciones, la primera es instalarla desde los repositorios oficiales de Debian, pero con el inconveniente de que contamos con la versión 2.x de Grafana y así estaremos descartando muchísimos Dashboards que desarrolla la comunidad, ya que hay muchos que son para versiones a partir de la 4.x. Así que nosotros instalaremos la última, que la podemos obtener desde la página de Grafana. La instalación será de la siguiente forma:

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.6.2_amd64.deb
apt install -y adduser libfontconfig
dpkg -i grafana_4.6.2_amd64.deb
systemctl enable grafana-server
systemctl start grafana-server

Con las herramientas ya instaladas, (y la configuración básica de ambas), abrimos en nuestro navegador, la dirección ip de nuestra máquina que tiene Grafana instalado, la cual realizaremos los pasos necesarios para la conexión con Prometheus.

 

El pase de diapositivas requiere JavaScript.

En la primera imagen nos saldrá el login, cuya contraseña y usuario por defecto es «admin». Al entrar, añadiremos nuestro Data Source como podemos ver en las imágenes dos y tres, Entonces nos iremos a importar un Dashboard, nosotros hemos elegido Prometheus System y con esta configuración tan básica, ya tenemos recolectando y mostrando datos de nuestro propio sistema,

Para la monitorización de otras máquinas tenemos, entre otras opciones, la posibilidad de instalar Prometheus como recolector, pero sólo necesitaremos eso, el recolector. Su instalación es muy simple, tanto en Debian como Ubuntu, simplemente instalaremos el paquete prometheus-node-exporter y, en la máquina dónde tenemos la base de datos Prometheus, configuraremos que lea los datos de nuestro «target». Para ello, simplemente, editaremos:

vim /etc/prometheus/prometheus.yml

Dentro de «scrape_configs» y de «- job name: node» añadiremos en «- targets» la dirección de nuestro host a monitorizar:

- targets: ['localhost:9100','mickey:9100','minnie:9100','donald:9100']

Aquí he puesto los nombres directamente porque dichas direcciones están en nuestro /etc/hosts si no tendríamos que poner nuestra dirección ip, del estilo:

- targets: ['localhost:9100','10.0.0.10:9100','10.0.0.6:9100','10.0.0.9:9100']

En mi caso, esto funcionará para mickeyminnie que son dos máquinas Debian Ubuntu respectivamente, pero Donald es una CentOS, y aquí no están los paquetes de Prometheus en los repositorios, con lo que la instalación es algo más peculiar, pero sencilla.

Lo primero es crearnos un usuario de nombre «prometheus» y, con dicho usuario, descargamos del GitHub de Prometheus Node Exporter la versión 0.13 (es la que está en los repositorios de Debian y Ubuntu, usaremos esta para evitar problemas por versiones) para, en mi caso, linux-amd64.

Una vez descargado, lo extraemos, y el fichero «node_exporter» lo movemos a una carpeta, anteriormente creada, /home/prometheus/node_exporter

tar -xvzf node_exporter-0.11.0.linux-amd64.tar.gz
mv node_exporter-0.13.0.linux-amd64/node_exporter /home/prometheus/node_exporter/

Y procedemos a crear el demonio de node_exporter.

vi /etc/systemd/system/node_exporter.service

Con el siguiente contenido

[Unit]
Description=Node Exporter

[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

Y por último recargamos systemd para que lea la configuración, activamos el servicio para que arranque cada vez que iniciamos el sistema, y lo iniciamos.

systemctl daemon-reload
systemctl enable node_exporter.service
systemctl start node_exporter.service

Y ya podremos ver las métricas en nuestro gráfico de Grafana, simplemente accediendo al Dashboard que establecimos anteriormente.

captura8

Deja un comentario