Introducción

Este proyecto configura un entorno de monitoreo usando Prometheus y Grafana, además de un servidor Nextcloud. Todo corre en contenedores Docker.

Pasos

# Crear carpeta del proyecto
mkdir monitoring-stack && cd monitoring-stack
# Crear carpeta del proyecto
mkdir monitoring-stack && cd monitoring-stack
cd monitoring-stack 
mkdir prometheus

Creacion de los yml

 nano docker-compose.yml

version: '3.8'

services:
  nextcloud:
    image: nextcloud
    container_name: nextcloud
    ports:
      - "8080:80"
    volumes:
      - nextcloud_data:/var/www/html
    depends_on:
      - db

  db:
    image: mariadb
    container_name: mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD= rootpass
      - MYSQL_PASSWORD= userpass
      - MYSQL_DATABASE= nextcloud
      - MYSQL_USER= nc_user
    volumes:
      - db_data:/var/lib/mysql

  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana

  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    ports:
      - "9100:9100"

  cadvisor:
    image: gcr.io/cadvisor/cadvisor
    container_name: cadvisor
    ports:
      - "8081:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro

volumes:
  nextcloud_data:
  db_data:
  grafana_data:
# cd prometheus
nano prometheus.yml

##Levantar los servicios

docker compose up -d

Verificar interfaces web

  • Nextcloud: http://localhost:8080

  • Grafana: http://localhost:3000
    Usuario: admin
    Contraseña: admin

  • Prometheus: http://localhost:9090


Configurar Prometheus

En Prometheus, ve a http://localhost:9090/targets para confirmar que Node Exporter y cAdvisor aparecen como targets activos.


Configurar Grafana

Creacion del data source

  1. Accede a http://localhost:3000
  2. Ve a Add new data source
  3. Selecciona Prometheus
  4. En URL, escribe: http://prometheus:9090

Imagen de Referencia (alt text)

#Creacion del dashboard

  1. Ve a la seccion Dashboard
  2. Dale en importar y en el id pondremos 1860
  3. En el datasource pondremos el que acabamos de agregar.

Imagen de Referencia (alt text)

  1. resultado:

Imagen de Referencia (alt text)

Si somos observadores, este dashboard solo es para si mismo y no para nextcloud. Por lo tanto haremos lo mismo pero con el id: 14282

  1. resultado de todos los contenedores:

Imagen de Referencia (alt text)

Recursos adicionales