Distribuzione di Prometheus & Grafana

Ci svegliamo dal letargo! Iniziamo se pensi che sia giusto tod@s con questo documento che useremo come base nei post futuri. Avevo pensato che quest'anno avremmo enfatizzato le metriche e i log (A parte il solito), quindi penso che questo documento su come distribuire rapidamente Prometheus e Grafana possa tornare utile.

Prima di iniziare, Bene, questo è tutto, que se me hicieron largas las vacaciones de navidadme gusta a mí esto de los festivos y los puentes =) Ma, beh,, indicaros que ya he preparado la base de lo que iremos viendo este año en el blog, Spero che lo troviate interessante; será como siempre, Un po' di tutto, siempre que se pueda 2 posts semanales, pero poniendo el foco en cosas que todavía no se han desarrollado mucho en el blog, cosas que quizá son fáciles de implementar y aportan mucho a darle visibilidad al entorno. Sugerencias abiertas en mi mail. Ah y también le podéis hacer SPAM a Fede Cinalli para volver con el Podcast 🙂

Avviato! Cosa ho detto, hoy un primer documento inicial, donde vamos a poder ver lo sencillo que resulta desplegar Prometheus y Grafana. Ambas soluciones entiendo son conocidas, Prometheus es open source y nos permitirá almacenar distintas métricas para visualizarlas elegantemente con Grafana. La idea es montar un sistema completo de telemetría que nos permita conocer los estados de los sistemas que consideremos core de negocio.

En los ejemplos que iremos viendo, usaremos siempre contenedores de Docker (por todas las ventajas que nos puedan dar a la hora de instalar, actualizar, gestionar…), así que tanto Prometheus como Grafana irán en sus propios contenedores. Habitualmente los posts los baso en Ubuntu Server, donde a parte de la configuración base, tenéis que tener instalado Docker.

Distribuzione di Prometheus

Para desplegar el primer contenedor, Se per te va bene, crearemos una carpeta, dentro de ella dejaremos el docker-compose.yaml con la definición del contenedor que vamos a desplegar, y ya luego, lo desplegaremos.

cd
mkdir prometheus
cd prometheus
mkdir prometheus

Creamos y editamos el contenedor con ‘nano docker-compose.yaml

Versione: '3.8'
services:
  Prometeo:
    immagine: prom/prometheus
    container_name: prometheus
    restart: unless-stopped
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.retention.time=15d'
    volumes:
      - ./Prometeo:/etc/prometheus
      - prom_data:/prometheus
    ports:
      - 9090:9090
    Reti:
      prometheus_default:
Volumi:
  prom_data:

Reti:
  prometheus_default:
    autista: Ponte Ipam:
     configurazione:
       - Sottorete: XX.XX.XX.0/24
         Gateway: XX.XX.XX.1

Crearemos un contenedor que se llamará prometheus, basada en dicha imagen, que expondrá (Default) el puerto 9090tcp al que nos podremos conectar posteriormente. (Nel mio caso) le pasamos 2 Comandi, uno para pasarle el fichero de configuración de Prometheus (prometheus.yml) y otro para indicarle que quiero una retención de 15 Giorni (se vogliamo). Así como la red, particularmente me gusta asignar rangos, indicárselo, o omitir las 4 últimas líneas.

Y antes de arrancar el contenedor, debemos crear su fichero de configuración, per questo, simplemente ejecutamos ‘nano prometheus/prometheus.ymly lo definimos:

globale:
  scrape_interval: 5s
  scrape_timeout: 5s
  evaluation_interval: 5s
#scrape_configs:
#  - job_name: Prometeo
#    honor_timestamps: Vero
#    scrape_interval: 15s
#    scrape_timeout: 10s
#    metrics_path: /Metriche
#    scheme: Protocollo HTTP
#    static_configs:
#      - Obiettivi:
#        - localhost:9090

Nel mio caso, veréis que he comentado (#) que no me coja las métricas locales, del propio contenedor de Prometheus, no me interesan, pero para gustos, los colores 🙂 Si no tienes métricas con las que probar, lo descomentas.

Y ya sólo nos quedaría desplegar el contenedor, Corsa:

sudo docker compose up -d

Una vez nos descargue la imagen de Prometheus, levantará el contenedor y nos podremos conectar a la GUI si queremos confirmar que ha ido todo bien (recordar, al 9090tcp). Recordar que si no os lleváis bien con los comandos de Docker, siempre tendremos a Portainer; Ma wow, en este caso si habéis seguido bien los pasos, el contenedor se habrá levantado, E se non lo è, le miráis los logs ‘sudo docker logs prometheus -f’.

Desplegando Grafana

Igualmente que Prometheus, Grafana irá en otro contenedor de Docker, así de fácil y sencillo. Creamos una carpeta donde vamos a dejar el docker compose y luego lo desplegamos:

cd
mkdir grafana
cd grafana

Y creamos ahí con ‘nano docker-compose.yamlla definición del contenedor de Grafana que queremos:

Servizi:
  Grafana:
    immagine: grafana/grafana-oss
    container_name: grafana
    restart: unless-stopped
    ports:
     - '3000:3000'
    volumes:
      - ./grafana-storage:/var/lib/grafana
    networks:
      - grafana_default

volumes:
  grafana-storage: {}

Reti:
  grafana_default:
    autista: Ponte Ipam:
     configurazione:
       - Sottorete: XX.XX.XX.0/24
         Gateway: XX.XX.XX.1

Que se descargará la última imagen de Grafana Open Source, y lo publicará por el puerto 3000tcp.

Finalmente, desplegamos y arrancamos el contenedor con:

sudo docker compose up -d

Abrimos un navegador contra el puerto 3000tcp de la máquina Docker y tendremos ya Grafana corriendo. Entramos como admin / admin por defecto, y nos aseguraremos de cambiar el password.

Acabamos el documento creando el Data source en Grafana, que será el conector contra Prometheus, vamos a ‘Home’ > ‘Connections’ > ‘Data sources’ > ‘Add new data source’, y añadimos uno del tipo Prometheus. Le indicamos un nombre al data source e indicamos la URL de nuestro Prometheus.

A partir de ahora, ya podremos empezar a almacenar métricas en Prometheus, y visualizarlas desde Grafana, bien ya que hagamos nosotros mismos los Dashboards, o directamente los cojamos de la comunidad de Grafana 🙂

Esto es todo por hoy, empezamos con los pilares =) Espero que como siempre os vaya fenomenal, y que este tiempo nos haya servido para madurar un poco más! Ti mando un abbraccio, ¡cuidaros mucho!

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!