
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 navidad… me 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.yml’ y 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.yaml’ la 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!