Skip to main content
[ PIER ]

Grafana con PostgreSQL

Grafana con base de datos real — para producción multi-usuario.

Service #monitoring#dashboards#analytics#postgresql

Grafana emparejado con un backend PostgreSQL dedicado en un stack Pier. El despliegue PostgreSQL-backed es lo que Grafana recomienda para producción — multi-usuario, HA-friendly, y evita los issues de write-lock SQLite que afectan a Grafana bajo carga con múltiples editores concurrentes.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Grafana with PostgreSQL en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es Grafana con PostgreSQL?

Esta plantilla envía Grafana — la plataforma de dashboards de observabilidad de facto — cableada a un backend PostgreSQL dedicado para su estado interno (usuarios, dashboards, organizaciones, alertas, anotaciones). Grafana documenta PostgreSQL (o MySQL) como el backend recomendado para cualquier despliegue multi-usuario o de producción; SQLite está bien solo para uso homelab single-admin.

Los dos servicios suben juntos en un solo stack Compose con las env vars ya configuradas para que Grafana encuentre Postgres en la red Docker interna. Sin config manual GF_DATABASE_*. Inicias sesión y usas Grafana exactamente como en la plantilla standalone — el backend de DB es invisible.

Cómo lo despliega Pier

Pier usa la imagen oficial grafana/grafana y postgres:17-alpine para el backend. Grafana en puerto 3000 internamente detrás de Traefik. PostgreSQL permanece en la red Docker interna (no expuesto). Cada servicio tiene su propio volumen de datos — /var/lib/grafana para plugins Grafana y provisioning, /var/lib/postgresql/data para datos Postgres.

Usuario admin por defecto es admin con password generado por Pier (mostrado en la página del servicio). Cámbialo en el primer login.

Para HTTPS, adjunta un dominio custom al servicio Grafana en Pier — Traefik maneja terminación TLS y proxia al puerto 3000.

Cuándo NO usar esta plantilla

Si eres un solo usuario con homelab y no esperas edición concurrente, la plantilla standalone grafana es más simple. Si ya tienes un PostgreSQL gestionado (Pier o RDS o donde sea), usa la plantilla Grafana standalone y apúntala al Postgres existente vía env vars. Para Grafana-como-servicio sin overhead ops, el tier gratis de Grafana Cloud vale la pena considerar. Esta plantilla es la respuesta correcta para “quiero Grafana de producción en mi propio VPS y no quiero cablear dos servicios manualmente.”

Características clave

Persistencia production-ready

La DB de usuario de Grafana — dashboards, organizaciones, usuarios, sesiones, anotaciones — vive en PostgreSQL en vez de SQLite. Maneja writes concurrentes limpiamente.

Env pre-cableado

Pier configura GF_DATABASE_TYPE=postgres, host/user/password env vars, y settings de conexión — Grafana arranca directo en Postgres sin provisión manual.

Misma UI Grafana

Dashboards, paneles, alerting, plugins — idéntico al Grafana SQLite. Solo difiere el store backing.

Todos los plugins Grafana

Datasources (Prometheus, InfluxDB, ES, ClickHouse, MySQL, Postgres, Loki, Tempo, Mimir), plugins panel, plugins app — todo compatible.

Backup / restore vía Postgres

pg_dump respalda el estado Grafana entero. Restore es pg_restore en un stack fresco. Mucho más fácil que malabarear Grafana SQLite + archivos provision.

Multi-org / escala equipo

Edición concurrente por muchos usuarios en muchos dashboards funciona sin contention de write-lock.

Casos de uso

Equipo analítica multi-usuario

Un puñado o docenas de analistas editando dashboards concurrentemente. PostgreSQL evita los errores SQLite write-lock que surgen bajo carga de equipo.

Escenarios HA / disaster-recovery

Backups PG + standby replicas te dan recovery point-in-time y opciones warm-standby que SQLite no puede.

Volumen grande de dashboards / anotaciones

Muchos miles de dashboards y streams de anotación de alta escritura (alertas CI, marcadores deploy) — Postgres escala mucho más allá de donde SQLite se degrada.

Hub centralizado de observabilidad

Una sola instancia Grafana sirviendo 100s de usuarios a través de muchos equipos — exactamente el despliegue para el cual Grafana recomienda Postgres.

Ejemplos de código

Datasource Postgres (el mismo Postgres del template ahora sirve como backend Y datasource) text
Configuration → Data sources → PostgreSQL
  Host - postgres:5432
  Database - grafana
  User - grafana
  Password - (de Pier env)
  TLS - disabled (red Docker interna)
Agregar datasource externo Prometheus text
Configuration → Data sources → Prometheus
  URL - https://prometheus.example.com
  Auth - Bearer Token o Basic
Exportar dashboard como JSON bash
curl -H "Authorization: Bearer $API_KEY" \
  https://grafana.example.com/api/dashboards/uid/abc123 > dashboard.json
Provisionar dashboards vía archivos (sin clicks UI) yaml
# /etc/grafana/provisioning/dashboards/default.yaml
apiVersion: 1
providers:
  - name: default
    folder: ""
    type: file
    options:
      path: /var/lib/grafana/dashboards

Comparativa

vs Grafana con SQLite (default standalone) SQLite Grafana es más simple y está bien para uso single-admin o homelab pequeño. Postgres-backed Grafana es requerido cuando múltiples usuarios editan concurrentemente, o para cualquier setup HA.
vs Grafana Cloud Grafana Cloud es hosted, incluye tier gratis, autoescala. Self-host en Pier es gratis para el plano de datos y te da control.
vs Metabase / Superset Metabase y Superset apuntan a analistas BI más que dashboards ops. Grafana es default para ops/observabilidad; los otros para analítica embebida.

Preguntas frecuentes

¿Qué hay de malo con SQLite Grafana?
Nada para uso single-admin. Bajo edición multi-usuario concurrente, el backend SQLite de Grafana puede tirar errores "database locked" y la corrupción de dashboards es más difícil de recuperar.
¿Puedo migrar de SQLite Grafana a Postgres Grafana?
Sí — Grafana tiene scripts de migración, o puedes exportar dashboards como JSON, desplegar esta plantilla y re-importar.
¿Este PostgreSQL también sirve como datasource que puedo consultar?
Sí — agrégalo como datasource PostgreSQL apuntando al servicio interno postgres:5432. Útil si quieres consultar metadata de Grafana vía SQL.
¿Qué tan grande puede escalar?
Editores concurrentes de dashboards cómodamente en los cientos con una instancia Postgres pequeña.
¿Compatibilidad de plugins?
Todos los plugins Grafana funcionan con Postgres-backed Grafana — el backend de DB es invisible para plugins.
¿Estrategia de backup?
pg_dump la DB grafana — eso es todo (dashboards, usuarios, alertas, anotaciones). Restore es pg_restore en instancia fresca.
¿Puedo compartir el Postgres con otros servicios?
Desaconsejado en producción. La DB de Grafana se beneficia de estar aislada; comparte Postgres solo si el espacio de disco es la restricción binding.

Servicios relacionados

Desplegar en tu VPS

Grafana emparejado con un backend PostgreSQL dedicado en un stack Pier. El despliegue PostgreSQL-backed es lo que Grafana recomienda para producción — multi-usuario, HA-friendly, y evita los issues de write-lock SQLite que afectan a Grafana bajo carga con múltiples editores concurrentes.

Desplegar este servicio →