En este manual explicamos como instalar Prometheus y Grafana en tu PC.
0 - Entorno
- Hardware: MacBook Pro (13 pulgadas, 2019, cuatro puertos Thunderbolt 3)
- Software preinstalado: Docker for Mac
En este manual supondremos que queremos monitorizar una aplicación que está exponiendo métricas de Prometheus en algún puerto vía HTTP, y que o bien está ejecutándose en localhost o en un servidor remoto.
1 - Comprueba que tu aplicación expone métricas adecuadamente
Antes de instalar Prometheus y Grafana, nos aseguraremos de que nuestra aplicación está exponiendo las métricas correctamente.
En nuestro caso, tenemos una aplicación exponiéndolas en localhost:10087. De tal manera que los ficheros de configuración y comandos usados en este tutorial harán referencia a esta IP y puerto.
En el browser podemos verificar que todo es correcto, veremos algo así:
Si no ves algo muy similar a la imagen anterior, tu aplicación tiene algún problema.
- Si aún no estás exponiendo métricas en tu aplicación, puedes usar por ejemplo esta librería.
- Aquí tienes un sencillo ejemplo de aplicación Java vacía con las métricas de Prometheus activadas.
2 - Levanta Prometheus en docker
docker pull prom/prometheus
docker image ls
Ahora escribe en algún directorio que te guste un fichero llamado 'prometheus.yml', con el siguiente contenido:
global: scrape_interval: 15s evaluation_interval: 15s rule_files:
scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['127.0.0.1:10087']
Colocaremos el fichero en la siguiente ruta:
/Users/Yo/Desktop/prometheus/prometheus.yml
Después podremos levantar el contenedor apuntando al fichero, que será mapeado al directorio /etc/prometheus del contenedor, el comando sería:
docker run -d --name prometheus -p 9090:9090 -p 10087:10087 -v /Users/Yo/Desktop/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml
En este momento deberíamos poder acceder a la web app Prometheus en local:
3 - Levanta Grafana en docker
Ahora vamos a levantar Grafana, y a conectarlo con el Prometheus previamente levantado.docker run -d --name grafana -p 3000:3000 grafana/grafana
4 - Pon ambos contenedores en la misma red
docker network create myNetwork
docker network connect myNetwork prometheus
docker network connect myNetwork grafana
5 - Añade tu Datasource y crea un Dashboard
http://localhost:9090
Y ahora ya puedes ir a la sección de Dashboards y crear uno conectando contra este Data source!
6 - Otras Mejoras
Crear un fichero Docker Compose con persistencia
- Grafana guarde en disco los dashboards y datasources creados.
- Prometheus almacene el histórico de métricas.
docker-compose up
services: prometheus: image: prom/prometheus ports: - "9090:9090" - "10087:10087" volumes: - /Users/Yo/Desktop/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml command: --config.file=/etc/prometheus/prometheus.yml grafana: image: grafana/grafana ports: - "3000:3000" volumes: - /Users/Yo/Desktop/prometheus/graf_data:/var/lib/grafana links: - "prometheus"
Comentarios
Publicar un comentario