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, che le vacanze di Natale mi sono sembrate lunghe… mi piace questo dei giorni festivi e dei ponti =) Ma, beh,, vi informo che ho già preparato la base di ciò che vedremo quest'anno sul blog, Spero che lo troviate interessante; sarà come sempre, Un po' di tutto, ogni volta che sarà possibile 2 post settimanali, ma concentrandoci su cose che non sono ancora molto sviluppate sul blog, cose che forse sono facili da implementare e offrono molto in termini di visibilità dell'ambiente. Suggerimenti aperti nella mia mail. Ah, e potete anche fare SPAM a Fede Cinalli per tornare con il Podcast 🙂

Avviato! Cosa ho detto, oggi un primo documento iniziale, dove potremo vedere quanto è semplice distribuire Prometheus e Grafana. Entrambe le soluzioni, immagino, sono conosciute, Prometheus è open source e ci permetterà di memorizzare diverse metriche per visualizzarle elegantemente con Grafana. L'idea è di montare un sistema completo di telemetria che ci permetta di conoscere lo stato dei sistemi che consideriamo core del business.

Negli esempi che vedremo, useremo sempre contenitori Docker (per tutti i vantaggi che possono offrirci al momento di installare, aggiornare, gestire…), quindi sia Prometheus che Grafana saranno nei propri contenitori. Di solito i post li baso su Ubuntu Server, dove, a parte la configurazione di base, dovete avere Docker installato.

Distribuzione di Prometheus

Per distribuire il primo contenitore, Se per te va bene, creeremo una cartella, all'interno della quale metteremo il docker-compose.yaml con la definizione del contenitore che andremo a distribuire, e poi, 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'
 volumi:
      - ./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' volumi:
      - ./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, distribuiamo e avviamo il contenitore con:

sudo docker compose up -d

Apriamo un browser sul porto 3000tcp della macchina Docker e avremo già Grafana in esecuzione. Accediamo come admin / admin di default, e ci assicureremo di cambiare la password.

Concludiamo il documento creando la sorgente dati in Grafana, che sarà il connettore verso Prometheus, andiamo su ‘Home’ > ‘Connections’ > ‘Data sources’ > ‘Add new data source’, e aggiungiamo uno del tipo Prometheus. Indichiamo un nome alla sorgente dati e inseriamo l'URL del nostro Prometheus.

Da ora in poi, ora potremo iniziare a memorizzare metriche in Prometheus, e visualizzarle da Grafana, bene, sia che creiamo noi stessi i Dashboard, o li prendiamo direttamente dalla comunità di Grafana 🙂

Questo è tutto per oggi, iniziamo con i pilastri =) 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!!!