Grafana
Dashboards y visualización de métricas
Overview
Grafana es la interfaz de visualización para métricas y logs.
URL: infra.illanes00.cl
Acceso
- Login: OAuth via Authentik
- Rol por defecto: Viewer
- Admin: Solicitar a illanes00
Datasources
| Nombre | Tipo | Uso |
|---|---|---|
| Prometheus | prometheus | Métricas de servicios |
| Loki | loki | Logs (si configurado) |
Dashboards
Dashboards Existentes
| Dashboard | Descripción |
|---|---|
| Services Overview | Estado general de todos los servicios |
| Node Exporter | Métricas del sistema (CPU, RAM, disco) |
| Caddy | Métricas del reverse proxy |
Crear Dashboard
- Click en + → Dashboard
- Add visualization
- Seleccionar datasource (Prometheus)
- Escribir query PromQL
- Configurar visualización
- Save dashboard
Ejemplo: Panel de Requests
Query:
sum by (endpoint) (rate(http_requests_total{job="mi-proyecto"}[5m]))
Visualization: Time series o Bar chart
Ejemplo: Panel de Latencia
Query:
histogram_quantile(0.99, sum by (le) (rate(http_request_duration_seconds_bucket{job="mi-proyecto"}[5m])))
Legend: p99 latency
Variables de Dashboard
Permiten hacer dashboards dinámicos.
Crear variable
- Dashboard settings → Variables → Add variable
- Tipo: Query
- Query:
label_values(up, job) - Name:
job
Usar en queries
up{job="$job"}
Alertas en Grafana
Crear Alerta
- Edit panel → Alert tab
- Create alert rule
- Configurar:
- Condition: When avg() of query is above 1
- Evaluate every: 1m
- For: 5m
- Configure notifications
- Save
Notification Channels
| Canal | Configurado |
|---|---|
| Telegram | Sí |
| No | |
| Slack | No |
Provisioning
Grafana puede configurarse via archivos YAML.
Estructura
/srv/grafana/
├── provisioning/
│ ├── datasources/
│ │ └── datasources.yml
│ ├── dashboards/
│ │ └── dashboards.yml
│ └── alerting/
│ └── alerts.yml
└── dashboards/
└── *.json
datasources.yml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
isDefault: true
- name: Loki
type: loki
access: proxy
url: http://localhost:3100dashboards.yml
apiVersion: 1
providers:
- name: 'default'
folder: 'Provisioned'
type: file
options:
path: /srv/grafana/dashboardsExportar/Importar Dashboard
Exportar
- Dashboard → Share → Export
- Save as JSON
Importar
- + → Import
- Upload JSON o pegar contenido
- Configure datasources
- Import
Comandos Útiles
# Estado de Grafana
systemctl status grafana-server
# Logs
journalctl -u grafana-server -f
# Recargar provisioning
curl -X POST http://localhost:3000/api/admin/provisioning/dashboards/reload \
-H "Authorization: Bearer $GRAFANA_API_KEY"
# API: listar dashboards
curl http://localhost:3000/api/search \
-H "Authorization: Bearer $GRAFANA_API_KEY"Troubleshooting
Dashboard no carga datos
- Verificar que Prometheus está corriendo
- Verificar datasource en Grafana
- Probar query en Explore
“No data” en panel
# Verificar query en Prometheus directamente
curl 'http://localhost:9090/api/v1/query?query=up{job="mi-proyecto"}'Login no funciona
Verificar configuración de OAuth en Authentik y en Grafana.