Hoy, en este post, vamos a ver cómo instalar PROMETHEUS para recopilar todos aquellos datos y métricas de nuestros dispositivos de nuestra red para ayudarnos a llevar un control detallado de TODO lo que ocurre en ella.
Y es que Prometheus es una herramienta Open Source increíble que nos hará todo ese trabajo de RECOPILACIÓN de datos que necesitaremos para posteriormente visualizarlos.
¿Y por qué digo esto?
Pues bien, primero debemos tener en cuenta que podemos usar Prometheus de forma «independiente», es decir Prometheus podrá recopilar los datos de nuestros equipos y a la vez mostrar las métricas directamente por pantalla.
No obstante, observaremos que la forma de visualizar dichos datos no es nada «amigable» con lo que, tendremos la opción de usar un software llamado GRAFANA para representarlos de forma mas atractiva, agradable y útil.
Entonces… ¿Qué necesitamos?
Pues básicamente, para tener nuestro sistema de monitorización en marcha necesitaremos tener instalados 3 elementos o programas. Nosotros montaremos todo sobre LINUX, y estos elementos son:
- Docker
- Prometheus
- Graphana
1. Instalación de DOCKER
Como ya hemos visto en el post de dedicado a DOCKER, tenemos varias opciones de realizar instalaciones sobre LINUX. Y nosotros hemos optado por instalar Prometheus y Grafana mediante DOCKER.
Así que para el paso número 1 podéis ir directamente al post de DOCKER primero, ya que es el paso previo a la instalación de Prometheus y Grafana en DOCKER.
Ahora sí, vamos con el número 2.
2. Instalación de Prometheus
Hay varias formas de arrancar Prometheus con DOCKER, la mas «general» seria la siguiente:
-p 9090:9090 \
-v
prom/prometheus
- Donde -p es el puerto de escucha.
- Donde -v es el path donde se encuentra nuestro fichero de configuración personalizado.
De esta manera arrancaríamos Prometheus en DOCKER pudiendo usar nuestra propia configuración, que personalizaremos a través del fichero «prometheus.yml».
NO OBSTANTE, si no queremos complicarnos y simplemente quisiéramos ejecutarlo con los parámetros por defecto podríamos arrancar Prometheus haciendo:
De este modo, eso si, se cargaran ÚNICAMENTE los parámetros por defecto desde un fichero por defecto llamado «DOCKERFILE».
De hecho, para ver qué configuración contiene dicho fichero, podemos verlo aquí.
Pero es que, si además de querer usar nuestra propia configuración queremos que esta sea «persistente» lo haremos usando una tercera forma.
Y esta es la forma que usaremos en ESTE TUTORIAL.
Pues bien, lo primero que haremos para ello será crear un volumen persistente para poder guardar de forma permanente los datos (es decir que los datos no se eliminen cuando paremos el contenedor, por ejemplo cuando apaguemos el PC) de manera que, mediante el siguiente comando crearemos dicho volumen que posteriormente usaremos para arrancar Prometheus con él dentro de su propio contenedor:
Comprobaremos, además, que se ha creado correctamente mediante el comando:
A continuación, lo que haremos será crear un fichero llamado «prometheus.yml» donde colocaremos toda nuestra configuración personalizada. Este fichero debe tener una estructura determinada, así que, yo en mi caso, me voy a guardar dicho fichero en el directorio «/home/aariza/Escritorio/Prometheus», con lo que haré el siguiente comando para crear un fichero con el nombre «prometheus.yml» en el directorio indicado:
Una vez dentro del archivo presionaremos la letra «a» para entrar en modo editor y copiaremos el siguiente texto:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# – «first.rules»
# – «second.rules»
scrape_configs:
– job_name: prometheus
static_configs:
– targets: [‘localhost:9090’]
Básicamente lo que haremos es colocar una configuración base donde nuestro prometheus ejecutará las tareas que le indiquemos en este mismo fichero cada 15 segundos (indicados en las variables scrape_interval y evaluation_interval). Justo debajo se detallará qué queremos analizar, en nuestro caso hemos colocado que se analice el propio servidor donde hemos instalado Prometheus (localhost) con una tarea (job_name) llamada «prometheus».
Luego presionaremos la tecla «ESC» y teclearemos «:x!» para salir del editor.
Ahora si, vamos a crear nuestro contenedor de la siguiente manera, usando nuestro volumen persistente y nuestro fichero personalizado de configuración:
-d –name prometheus
-p 9090:9090 \
-v /home/aariza/Escritorio/Prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v prometheus-data:/prometheus \
prom/prometheus
El comando, eso sí, lo tenéis que colocar todo seguido de la siguiente forma:
Durante el proceso, veréis que se instala la imagen de DOCKER de Prometheus en su última versión y se levanta automáticamente el contenedor.
Una vez instalado, comprobamos que nuestro DOCKER está en marcha mediante:
Y finalmente, si ahora queremos acceder a Prometheus iremos directamente a nuestro navegador y colocaremos:
3. Instalación de Grafana
Ahora vamos con la parte de visualización de los datos, y es que Prometheus por sí solo es MUY bueno adquiriendo datos y métricas pero es poco eficiente mostrando los datos de forma «elegante» con lo que usaremos lo que es para mi el mejor «visualizador» compatible con Prometheus: GRAFANA.
Y es que, Grafana viene en dos modalidades, la versión «Enterprise» y la «Open Source», nosotros obviamente usaremos la «Open Source».
Pues bien… para la puesta en marcha «simple» de grafana en su versión «Open Source» haríamos:
Y si quisiéramos instalar la versión «Enterprise» haríamos:
Pues bien, AHORA, y tal y como nos había pasado con Prometheus, Grafana por sí sola NO guarda los datos de forma persistente, de manera que si paramos su contenedor perderemos los datos, por lo que es recomendable crear un «volumen de datos» y arrancar Grafana con dicho volumen, para ello haremos de forma similar a lo que ya hicimos para Prometheus:
Y además, comprobamos que se ha creado correctamente:
Y ahora si, arrancamos Grafana en DOCKER en su versión «Open Source» pero con el volumen persistente para no perder nuestros datos:
–volume grafana-storage:/var/lib/grafana \
grafana/grafana-oss
Recordad que el comando debéis ponerlo en la consola todo seguido:
Veréis como se inicia el proceso de descarga de la imagen de DOCKER hasta que finalmente se creará nuestro contenedor:
Para ver el contenedor que acabamos de crear haremos:
Y si, además, quisiéramos detener el contenedor de grafana haremos:
Y ahora ya podríamos acceder a Grafana a través de nuestro navegador:
Inicialmente usaremos «admin/admin» para poder acceder y presionamos Log in:
Justo en ese momento nos pedirá que cambiemos nuestro password a uno más seguro y presionamos el botón «Submit»:
Y ahora ya si… ¡Estamos dentro!
Conexión de Prometheus con Grafana
Finalmente… Y una vez tenemos TODO lo que necesitamos instalado, nos quedaría conectar Grafana con Prometheus para que se puedan comunicar entre ellos.
Por un lado lo primero que haré es conectar ambos DOCKERS, es decir, me voy a asegurar que Prometheus y Grafana trabajen en la misma red:
docker network connect myNetwork prometheus
docker network connect myNetwork grafana
Comprobamos, además, que se ha creado correctamente:
Y que efectivamente, la red que hemos creado, contiene ambos contenedores (Prometheus y Grafana):
Y por otro lado nos vamos a Grafana (http://localhost:3000) y añadimos Prometheus dentro de «Datasources» pegando el enlace de Prometheus usando la dirección: http://prometheus:9090/
Para ello, dentro de Grafana iremos al menú lateral, a la opción «Connections > Data Source» y haremos click en el botón «Add Data Source»:
Seleccionamos «Prometheus». Si no lo vemos en la lista lo podemos buscar en la barra de búsqueda:
Ahora aquí, básicamente pegaremos la URL de Prometheus que comentábamos anteriormente:
Y bajamos (nosotros no configuraremos nada más por el momento) hasta el botón de «Save & test»:
Pues bien, si todo ha ido bien, veremos el siguiente mensaje de confirmación:
Y tal y como nos indica, ya estaríamos preparados para crear nuestros «Dashboards», que usaremos para configurar nuestras métricas y visualizarlas en forma de gráficos en Grafana.
Y es que, por fin ya tenemos PROMETHEUS y GRAFANA funcionando en DOCKER dentro de nuestro UBUNTU y conectados entre sí para que, por un lado Prometheus recopile todas aquellas métricas que configuremos y por otro Grafana nos muestre de forma agradable todos esos datos, nos los organice y podamos exportar o visualizar dicha información aplicando nuestros propios filtros bajos nuestros propios intereses.
Así que… Nos vemos en un siguiente post donde configuraremos Prometheus y Grafana para seleccionar qué métricas quiero representar.
Además, os dejo los enlaces de las webs oficiales de DOCKER, Prometheus y Grafana donde vais a poder ver y explorar todo el proceso de instalación que he seguido:
Instalación de DOCKER en Ubuntu
Instalación de Prometheus en DOCKER
Instalación de Grafana en DOCKER