Problemas con las fuentes de datos¶
Esta página explica cómo diagnosticar y resolver los problemas más habituales relacionados con las fuentes de datos de Grafana.
Una fuente de datos permite que Grafana consulte información almacenada en otro sistema. En el laboratorio, la fuente de datos principal suele ser Prometheus:
Cuando un panel no muestra datos, el problema puede encontrarse en diferentes niveles:
Panel de Grafana
|
v
Consulta del panel
|
v
Fuente de datos seleccionada
|
v
URL de la fuente
|
v
Conectividad de red
|
v
Servicio externo
|
v
Métricas o registros disponibles
Por este motivo, un panel vacío no significa necesariamente que Grafana esté fallando. Puede existir un problema en la consulta, en la conexión con Prometheus, en los targets o en las métricas almacenadas.
Advertencia: realiza las prácticas en un entorno de laboratorio. No elimines fuentes de datos ni modifiques configuraciones de producción sin crear antes una copia de seguridad y documentar el estado inicial.
Objetivos¶
Al finalizar esta sesión, el alumno podrá:
- Explicar qué es una fuente de datos en Grafana.
- Identificar una fuente de datos Prometheus.
- Crear una fuente de datos en Grafana.
- Comprobar la URL de una fuente de datos.
- Utilizar Save & test.
- Diagnosticar errores de conexión.
- Diferenciar problemas de Grafana y Prometheus.
- Comprobar la conectividad desde el servidor de Grafana.
- Diagnosticar errores relacionados con
localhost. - Comprobar si Prometheus está activo.
- Comprobar si Prometheus tiene targets disponibles.
- Validar consultas PromQL.
- Identificar consultas que devuelven cero resultados.
- Diagnosticar problemas de permisos y autenticación.
- Revisar fuentes de datos provisionadas.
- Documentar una incidencia de conexión.
Introducción¶
Grafana no recopila ni almacena por sí mismo las métricas de Prometheus. Grafana consulta una fuente de datos cuando un panel necesita representar información.
Una fuente de datos contiene información como:
- Tipo de sistema consultado.
- URL del servicio.
- Método de acceso.
- Configuración de autenticación.
- Opciones de conexión.
- Intervalos de consulta.
- Ajustes específicos del plugin.
En el caso de Prometheus, una configuración habitual puede utilizar:
Sin embargo, esta dirección solo es correcta si Prometheus se ejecuta en el mismo equipo que Grafana.
Si Grafana y Prometheus están en equipos diferentes, debe utilizarse la dirección del servidor Prometheus:
Este es uno de los errores más frecuentes:
Grafana está en 192.168.1.10
Prometheus está en 192.168.1.20
Fuente configurada: http://localhost:9090
Desde Grafana, localhost apunta a 192.168.1.10, no a 192.168.1.20.
Conceptos fundamentales¶
Fuente de datos¶
Una fuente de datos es un sistema externo que proporciona información a Grafana.
Ejemplos:
- Prometheus.
- Loki.
- InfluxDB.
- PostgreSQL.
- MySQL.
- Elasticsearch.
- OpenSearch.
- Tempo.
- Jaeger.
Plugin de fuente de datos¶
Grafana utiliza plugins para comunicarse con diferentes tecnologías.
El plugin define:
- Cómo se conecta Grafana.
- Qué tipo de consultas permite.
- Cómo interpreta las respuestas.
- Qué opciones aparecen en el editor.
- Cómo se autentica.
- Qué variables y funciones están disponibles.
Consulta¶
Una consulta solicita información a la fuente de datos.
Ejemplo para Prometheus:
Otro ejemplo:
Panel¶
Un panel utiliza una consulta y representa el resultado mediante una visualización.
Ejemplos de visualización:
- Time series.
- Stat.
- Gauge.
- Table.
- Bar gauge.
- Heatmap.
Dashboard¶
Un dashboard agrupa varios paneles relacionados.
Todos los paneles pueden utilizar:
- La misma fuente de datos.
- Fuentes de datos diferentes.
- Variables.
- Intervalos de tiempo.
- Consultas independientes.
Flujo de una consulta¶
Cuando Grafana muestra un panel, normalmente ocurre lo siguiente:
- El usuario abre un dashboard.
- Grafana identifica la fuente de datos del panel.
- Grafana construye la consulta.
- Grafana sustituye las variables.
- Grafana envía la consulta al servicio externo.
- Prometheus procesa la consulta PromQL.
- Prometheus devuelve los resultados.
- Grafana transforma los datos.
- El panel representa la respuesta.
Si alguno de estos pasos falla, el panel puede mostrar:
Fuentes de datos de Prometheus¶
Configuración habitual¶
Una fuente Prometheus puede utilizar:
URL local¶
Utiliza esta URL cuando Prometheus se ejecuta en el mismo servidor que Grafana:
También:
URL remota¶
Utiliza la dirección real del servidor Prometheus:
Con nombre DNS:
URL con HTTPS¶
Si Prometheus está detrás de HTTPS:
Comprueba:
- Certificado.
- Nombre DNS.
- Puerto.
- Proxy inverso.
- Reglas de firewall.
- Validación TLS.
Crear una fuente de datos Prometheus¶
Abrir la configuración¶
En Grafana:
- Accede a Connections.
- Selecciona Data sources.
- Pulsa Add new data source.
- Selecciona Prometheus.
Configurar la fuente¶
Ejemplo:
Según la versión de Grafana, algunos nombres pueden aparecer en una ubicación ligeramente diferente.
Probar la conexión¶
Pulsa:
Un resultado correcto indica que Grafana puede comunicarse con Prometheus.
Comprobar el resultado¶
Después de guardar:
- Abre un panel.
- Selecciona la fuente Prometheus.
- Abre el explorador de consultas.
- Ejecuta:
Si aparecen resultados, la conexión básica funciona.
Comprobar una fuente existente¶
Ver las fuentes desde la interfaz¶
En Grafana:
- Accede a Connections.
- Selecciona Data sources.
- Abre la fuente Prometheus.
- Revisa el nombre.
- Revisa el tipo.
- Revisa la URL.
- Pulsa Save & test.
Buscar el nombre utilizado por un panel¶
Abre el panel y revisa:
Comprueba que el panel utiliza la fuente correcta.
Comprobar si el panel utiliza una variable de fuente¶
Algunos dashboards utilizan una variable como:
o:
Consulta:
- Dashboard settings.
- Variables.
- Revisa el nombre de la variable.
- Comprueba sus valores.
- Revisa la fuente seleccionada en el panel.
Probar Prometheus desde el servidor de Grafana¶
Este paso es esencial. No basta con probar Prometheus desde el navegador del alumno.
Comprobar el servicio de Prometheus¶
En el servidor Prometheus:
Comprobar el puerto¶
Probar el endpoint local¶
En el servidor Prometheus:
Probar la salud de Prometheus¶
Probar desde el servidor de Grafana¶
En el servidor de Grafana:
Comprobar la API:
Interpretar las pruebas¶
| Resultado | Interpretación |
|---|---|
| Prometheus responde localmente | El servicio funciona en su servidor |
| Grafana no puede conectarse | Problema de red, firewall o URL |
| La API devuelve datos | La conexión y la consulta básica funcionan |
Connection refused |
Servicio detenido o puerto incorrecto |
Timeout |
Firewall, ruta o problema de red |
Could not resolve host |
Problema DNS |
Problemas habituales de URL¶
Error con localhost¶
Escenario:
Desde Grafana, la URL apunta a:
La configuración correcta sería:
Error de puerto¶
URL incorrecta:
Si 3000 es el puerto de Grafana y Prometheus utiliza 9090, la URL correcta es:
Error de protocolo¶
Si el servicio utiliza HTTP:
Si utiliza HTTPS:
No intercambies ambos protocolos sin revisar el proxy y los certificados.
Barra final¶
Según la versión y el tipo de proxy, estas URLs pueden comportarse de forma diferente:
Utiliza el formato recomendado por la configuración del servicio y evita añadir rutas que Prometheus no utilice.
Problemas de conectividad¶
Comprobar la dirección IP¶
En el servidor Prometheus:
Comprobar la ruta¶
En el servidor Grafana:
Probar el nombre DNS¶
Probar la conectividad IP¶
El ping puede estar bloqueado, por lo que una prueba fallida no demuestra por sí sola que HTTP no funcione.
Probar el puerto¶
Probar HTTP¶
Probar la API¶
curl -v \
--max-time 5 \
http://DIRECCION_IP_PROMETHEUS:9090/api/v1/query \
--data-urlencode 'query=up'
Problemas de firewall¶
Consultar UFW en Prometheus¶
Permitir Prometheus desde Grafana¶
Si Grafana está en 192.168.1.10:
Consultar las reglas numeradas¶
Probar desde Grafana¶
No abrir el puerto globalmente sin necesidad¶
Evita como solución inicial:
Es preferible permitir únicamente el servidor Grafana o la red de administración.
Problemas de escucha de Prometheus¶
Comprobar la dirección de escucha¶
En el servidor Prometheus:
Escucha solo localmente¶
Si aparece:
Prometheus solo acepta conexiones locales.
Consulta los parámetros de inicio:
Busca:
Escuchar en una dirección accesible¶
Un ejemplo puede ser:
La configuración concreta depende del método de instalación y de la política de seguridad.
Después de modificar la unidad:
Comprueba:
Escuchar en todas las interfaces no sustituye la configuración del firewall. Limita siempre los orígenes permitidos.
Problemas de autenticación¶
Prometheus sin autenticación¶
En un laboratorio, Prometheus puede estar disponible directamente:
Prometheus detrás de autenticación¶
Si existe un proxy o una capa de autenticación, Grafana puede necesitar:
- Usuario.
- Contraseña.
- Certificado.
- Token.
- Cabecera HTTP.
- Configuración TLS.
Comprobar la autenticación con curl¶
Ejemplo conceptual:
curl -u usuario:CONTRASEÑA \
http://prometheus.ejemplo.local/api/v1/query \
--data-urlencode 'query=up'
No guardes credenciales reales en:
- Historial de shell.
- Capturas.
- Repositorios.
- Ficheros Markdown.
- Informes públicos.
Error 401 Unauthorized¶
Suele indicar:
- Falta autenticación.
- Credenciales incorrectas.
- Token caducado.
- Usuario no autorizado.
Error 403 Forbidden¶
Suele indicar:
- Las credenciales son válidas.
- El usuario no tiene permisos para esa ruta.
- Una política del proxy bloquea la solicitud.
Problemas de TLS y certificados¶
Comprobar HTTPS¶
La opción -k omite la validación del certificado y debe utilizarse únicamente para diagnóstico controlado.
Consultar el certificado¶
Consultar las fechas del certificado¶
echo | openssl s_client \
-connect prometheus.ejemplo.local:443 \
-servername prometheus.ejemplo.local \
2>/dev/null \
| openssl x509 -noout -dates
Problemas habituales¶
- Certificado caducado.
- Nombre DNS distinto del certificado.
- Certificado autofirmado.
- Cadena incompleta.
- Hora incorrecta del sistema.
- CA no instalada en el servidor de Grafana.
- Proxy configurado con un protocolo incorrecto.
Probar la API de Prometheus¶
Consulta instantánea¶
Consulta con formato legible¶
Consultar una métrica concreta¶
Consultar targets¶
Consultar etiquetas¶
Consultar nombres de métricas¶
Interpretar una respuesta correcta¶
Una respuesta API correcta suele incluir:
Una consulta válida puede devolver un resultado vacío:
Esto significa que la API funciona, pero la consulta no encontró series coincidentes.
Diferenciar error de consulta y ausencia de datos¶
Error de consulta:
Consulta válida sin resultados:
Problemas de consultas en Grafana¶
La fuente funciona, pero el panel está vacío¶
Comprueba en este orden:
- La fuente seleccionada.
- La consulta.
- El intervalo temporal.
- Las variables.
- Los filtros de etiquetas.
- La existencia de datos.
- El estado de los targets.
- La transformación del panel.
Probar una consulta mínima¶
En el explorador de Grafana, ejecuta:
Después:
Después:
Comprobar el intervalo temporal¶
Una consulta puede devolver datos en:
pero no en:
Comprueba:
- Rango temporal.
- Zona horaria.
- Hora del sistema.
- Retención de Prometheus.
- Momento en que comenzó el scraping.
Comprobar las variables¶
Si la consulta utiliza:
comprueba que la variable $instance tenga valores.
En Grafana:
- Abre Dashboard settings.
- Selecciona Variables.
- Abre
instance. - Comprueba la consulta.
- Comprueba los valores disponibles.
Problema con variables múltiples¶
Para una variable de selección múltiple:
Para una variable de selección única puede utilizarse:
Problema con la opción All¶
Cuando se activa Include All option, utiliza normalmente:
No utilices:
si la variable puede contener varios valores.
Consultar la consulta generada¶
En el panel:
- Abre Edit.
- Revisa el editor de consultas.
- Abre Query inspector.
- Consulta la petición enviada.
- Consulta la respuesta recibida.
Query Inspector¶
Query Inspector permite analizar:
- Consulta generada.
- Variables sustituidas.
- Petición HTTP.
- Respuesta de la fuente.
- Tiempo de respuesta.
- Errores devueltos.
Procedimiento¶
- Abre el panel.
- Selecciona Inspect.
- Abre Query o Query inspector.
- Revisa la consulta final.
- Copia la consulta sin credenciales.
- Comprueba el resultado.
- Compara con la misma consulta en Prometheus.
Qué buscar¶
- URL incorrecta.
- Fuente de datos incorrecta.
- Variable vacía.
- Filtro equivocado.
- Intervalo demasiado corto.
- Error HTTP.
- Respuesta vacía.
- Tiempo de espera.
Problemas de rendimiento¶
La fuente responde lentamente¶
Prueba la consulta directamente en Prometheus:
Consultas excesivamente amplias¶
Una consulta como esta puede devolver muchas series:
Prueba con filtros:
O agrega:
Consultas con demasiados datos históricos¶
Reduce el rango temporal o agrega las series:
Consultas con demasiadas etiquetas¶
Conserva únicamente las etiquetas necesarias:
Intervalo de consulta¶
Grafana puede utilizar variables integradas como:
Ejemplo:
Problemas de tiempo y datos recientes¶
Comprobar la hora del servidor Grafana¶
Comprobar la hora del servidor Prometheus¶
Comprobar la sincronización NTP¶
Síntomas de una hora incorrecta¶
- Paneles sin datos recientes.
- Datos desplazados en el tiempo.
- Certificados rechazados.
- Dashboards que parecen vacíos.
- Alertas que se activan tarde.
Fuentes de datos provisionadas¶
Una fuente de datos puede configurarse mediante la interfaz o mediante un fichero de provisioning.
Buscar ficheros de provisioning¶
Buscar configuraciones de fuentes¶
Ejemplo de provisioning¶
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
isDefault: true
editable: true
Problemas de provisioning¶
- El fichero está en una ruta incorrecta.
- El YAML tiene una sangría incorrecta.
- El tipo de fuente no es correcto.
- La URL no es accesible.
- La fuente tiene un nombre diferente.
- El archivo no tiene permisos adecuados.
- Grafana no se ha reiniciado después del cambio.
- La fuente se crea y se sobrescribe automáticamente.
Validar después de modificar¶
Acceso Server y acceso desde el navegador¶
Grafana puede realizar las consultas desde diferentes ubicaciones según la configuración de la fuente.
Acceso desde el servidor¶
En este modo, Grafana realiza la petición desde el servidor donde está instalado.
Ejemplo:
La URL debe ser accesible desde el servidor de Grafana.
Acceso desde el navegador¶
En este modo, el navegador del usuario realiza directamente la petición.
La URL debe ser accesible desde el equipo del alumno.
Error de ubicación¶
Puede ocurrir que:
pero:
o al contrario.
Comprueba desde el punto exacto donde se ejecuta la petición.
Problemas con CORS y proxy¶
Si la consulta se realiza desde el navegador, pueden aparecer problemas relacionados con:
- CORS.
- Certificados.
- DNS del cliente.
- Proxy corporativo.
- Rutas de red.
- Bloqueadores del navegador.
Revisa:
- Pestaña Network.
- Código HTTP.
- Cabeceras.
- URL solicitada.
- Mensajes de la consola.
- Método de acceso de la fuente.
Configuración de una fuente mediante API¶
Las operaciones administrativas de Grafana requieren autenticación. No incluyas tokens reales en documentación.
Consultar fuentes de datos¶
Ejemplo conceptual:
Crear una fuente¶
Ejemplo conceptual:
curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Prometheus",
"type": "prometheus",
"access": "proxy",
"url": "http://localhost:9090",
"isDefault": true
}' \
http://localhost:3000/api/datasources
Antes de utilizar una API:
- Comprueba la versión de Grafana.
- Revisa la documentación de la API.
- Utiliza un token con permisos mínimos.
- No compartas el token.
- Elimina secretos de los ejemplos.
- Revoca tokens que ya no sean necesarios.
Diagnóstico automatizado¶
Crear un script de diagnóstico¶
mkdir -p ~/laboratorio/fuentes-datos
cd ~/laboratorio/fuentes-datos
nano diagnostico-fuente-prometheus.sh
Contenido:
#!/usr/bin/env bash
set -u
PROMETHEUS_URL="${1:-http://localhost:9090}"
echo "===== DIAGNÓSTICO DE FUENTE PROMETHEUS ====="
echo "Fecha: $(date)"
echo "Equipo: $(hostname)"
echo "URL probada: ${PROMETHEUS_URL}"
echo
echo "===== SERVICIO LOCAL DE GRAFANA ====="
systemctl is-active grafana-server 2>/dev/null || true
echo
echo "===== SERVICIO LOCAL DE PROMETHEUS ====="
systemctl is-active prometheus 2>/dev/null || true
echo
echo "===== CONECTIVIDAD HTTP ====="
curl -sS \
-o /dev/null \
-w "Código HTTP: %{http_code}\nTiempo: %{time_total}s\n" \
--max-time 5 \
"${PROMETHEUS_URL}" \
|| true
echo
echo "===== SALUD DE PROMETHEUS ====="
curl -sS \
--max-time 5 \
"${PROMETHEUS_URL}/-/healthy" \
|| true
echo
echo
echo "===== CONSULTA UP ====="
curl -sS \
--max-time 10 \
"${PROMETHEUS_URL}/api/v1/query" \
--data-urlencode 'query=up' \
|| true
echo
echo
echo "===== TARGETS ====="
curl -sS \
--max-time 10 \
"${PROMETHEUS_URL}/api/v1/targets" \
|| true
echo
Conceder permisos¶
Ejecutar con Prometheus local¶
Ejecutar contra un servidor remoto¶
Guardar el resultado¶
./diagnostico-fuente-prometheus.sh \
http://192.168.1.20:9090 \
| tee diagnostico-fuente-prometheus.txt
Sesión práctica 1: crear y probar una fuente Prometheus¶
Objetivo¶
Crear una fuente de datos y validar su conexión.
Preparación¶
Comprueba que Prometheus está activo:
Comprueba el endpoint:
Crear la fuente¶
En Grafana:
- Accede a Connections.
- Selecciona Data sources.
- Pulsa Add new data source.
- Selecciona Prometheus.
- Introduce:
- Pulsa Save & test.
Validar con una consulta¶
Abre el explorador y ejecuta:
Después:
Registrar el resultado¶
Nombre de la fuente:
Tipo:
URL:
Resultado de Save & test:
Consulta ejecutada:
Número de series:
Resultado:
Sesión práctica 2: diagnosticar una URL incorrecta¶
Objetivo¶
Comprender el problema de utilizar localhost desde el servidor equivocado.
Escenario¶
Grafana está en:
Prometheus está en:
La fuente de datos utiliza:
Probar en el servidor Prometheus¶
Probar en el servidor Grafana¶
Interpretar¶
Las dos pruebas consultan equipos diferentes:
Probar la dirección correcta¶
Desde Grafana:
Corregir la fuente¶
Configura en Grafana:
Validar¶
Pulsa:
Después ejecuta:
Preguntas de análisis¶
- ¿Desde qué equipo se ejecuta la consulta?
- ¿Qué significa
localhostpara Grafana? - ¿Qué URL debe utilizarse?
- ¿Qué prueba demuestra que la red funciona?
Sesión práctica 3: diagnosticar un problema de firewall¶
Objetivo¶
Comprobar el acceso a Prometheus cuando Grafana y Prometheus están separados.
Comprobar el firewall¶
En Prometheus:
Comprobar el puerto¶
Probar desde Grafana¶
Añadir una regla restringida¶
Sustituye la dirección por la IP real de Grafana:
Validar la regla¶
Repetir la prueba¶
Desde Grafana:
Validar en Grafana¶
Pulsa:
Preguntas de análisis¶
- ¿El puerto estaba en escucha?
- ¿El firewall bloqueaba la conexión?
- ¿La regla permite solo el origen necesario?
- ¿Qué riesgo tendría permitir el puerto a cualquier dirección?
Sesión práctica 4: fuente accesible, consulta sin datos¶
Objetivo¶
Diferenciar un problema de conexión de una consulta sin resultados.
Crear una consulta válida¶
Crear una consulta con un filtro incorrecto¶
Comparar los resultados¶
La primera consulta puede devolver datos:
La segunda puede devolver:
La conexión funciona, pero no existen series con ese filtro.
Diagnosticar las etiquetas reales¶
Consultar valores de job:
Corregir la consulta¶
Utiliza un valor real:
Preguntas de análisis¶
- ¿La fuente de datos estaba funcionando?
- ¿La consulta produjo un error o un resultado vacío?
- ¿Qué diferencia existe entre ambos casos?
- ¿Cómo se obtuvieron los valores reales de
job?
Sesión práctica 5: utilizar Query Inspector¶
Objetivo¶
Analizar la consulta real enviada por Grafana.
Crear un panel¶
Utiliza:
Abrir Query Inspector¶
- Abre el panel.
- Pulsa Edit.
- Selecciona Inspect.
- Abre Query.
- Revisa la consulta final.
- Comprueba la URL utilizada.
- Comprueba las variables sustituidas.
- Revisa el resultado HTTP.
Buscar problemas¶
Comprueba si:
ha sido sustituido por:
o por una lista de valores.
Comprueba también si la fuente seleccionada es:
y no otra fuente vacía o eliminada.
Registrar el resultado¶
Fuente seleccionada:
Consulta original:
Consulta final:
Variable utilizada:
URL de la petición:
Código HTTP:
Número de series:
Error observado:
Corrección:
Sesión práctica 6: fuente con Prometheus detenido¶
Objetivo¶
Observar el error producido cuando el servicio externo no está disponible.
Detener Prometheus¶
En el entorno de laboratorio:
Probar el endpoint¶
Probar la API¶
Probar desde Grafana¶
En la fuente de datos:
Consultar el error¶
Revisa:
- Mensaje de Grafana.
- Código HTTP.
- Registros de Grafana.
- Registros de Prometheus.
Iniciar Prometheus¶
Validar la recuperación¶
En Grafana:
Ejecuta:
Preguntas de análisis¶
- ¿Qué error apareció mientras Prometheus estaba detenido?
- ¿Qué componente generó el error?
- ¿Cuánto tardó Grafana en recuperar la conexión?
- ¿La fuente tuvo que volver a configurarse?
Sesión práctica 7: comprobar el intervalo temporal¶
Objetivo¶
Diagnosticar un panel vacío causado por un rango temporal incorrecto.
Consultar una métrica actual¶
Consultar una métrica de rango¶
Cambiar el intervalo de Grafana¶
Prueba:
Analizar¶
Comprueba:
- Si existen datos recientes.
- Cuándo comenzó el scraping.
- Si el target estuvo
DOWN. - Si la retención contiene el intervalo seleccionado.
- Si el reloj del sistema es correcto.
Consultar el tiempo del sistema¶
Preguntas de análisis¶
- ¿En qué intervalo aparecen datos?
- ¿El target estuvo disponible durante todo el período?
- ¿Existe diferencia entre la hora de Grafana y la de Prometheus?
- ¿Qué consulta utiliza una ventana de cinco minutos?
Sesión práctica 8: revisar una fuente provisionada¶
Objetivo¶
Localizar y analizar una fuente creada mediante configuración.
Buscar ficheros¶
Buscar referencias a Prometheus¶
Consultar el fichero¶
Validar la URL¶
Comprueba la URL desde el servidor Grafana:
Reiniciar Grafana¶
Consultar los registros¶
Validar en la interfaz¶
- Accede a Data sources.
- Localiza la fuente.
- Comprueba su nombre.
- Comprueba su URL.
- Ejecuta Save & test.
Sesión práctica 9: comprobar varias fuentes¶
Objetivo¶
Comparar una fuente válida con una fuente mal configurada.
Crear una fuente válida¶
Crear una fuente incorrecta de laboratorio¶
Probar ambas¶
Utiliza:
Crear un panel¶
Selecciona primero:
Consulta:
Después selecciona:
Observa el mensaje.
Comparar¶
Eliminar la fuente incorrecta¶
Elimina únicamente la fuente creada para la práctica.
Diagnóstico de errores habituales¶
Bad Gateway¶
Posibles causas:
- Grafana utiliza un proxy.
- El backend no responde.
- La URL apunta al puerto equivocado.
- Prometheus está detenido.
- El proxy no puede resolver el nombre.
- Existe un problema de HTTP y HTTPS.
Pruebas:
Connection refused¶
Posibles causas:
- Prometheus está detenido.
- No hay ningún proceso en el puerto.
- El puerto es incorrecto.
- La dirección apunta al equipo equivocado.
Pruebas:
Connection timed out¶
Posibles causas:
- Firewall.
- Ruta incorrecta.
- Servicio remoto inaccesible.
- Red caída.
- Prometheus escucha solo localmente.
Pruebas:
401 Unauthorized¶
Posibles causas:
- Faltan credenciales.
- Usuario incorrecto.
- Contraseña incorrecta.
- Token inválido.
- Proxy de autenticación.
403 Forbidden¶
Posibles causas:
- Usuario sin permisos.
- Ruta restringida.
- Política del proxy.
- Autenticación válida, pero autorización insuficiente.
404 Not Found¶
Posibles causas:
- URL incorrecta.
- Ruta adicional incorrecta.
- Proxy configurado con una subruta.
- Endpoint no disponible en ese servicio.
No data¶
Posibles causas:
- No existen series coincidentes.
- Intervalo temporal incorrecto.
- Target
DOWN. - Filtro de etiquetas incorrecto.
- Variable vacía.
- Métrica inexistente.
- Consulta mal construida.
Lista de comprobación de una fuente Prometheus¶
[ ] La fuente existe en Grafana.
[ ] El tipo es Prometheus.
[ ] El nombre es correcto.
[ ] La URL es correcta.
[ ] El protocolo es correcto.
[ ] El puerto es correcto.
[ ] La URL es accesible desde Grafana.
[ ] Prometheus está activo.
[ ] Prometheus escucha en la dirección adecuada.
[ ] El firewall permite el acceso.
[ ] Save & test funciona.
[ ] La consulta up devuelve resultados.
[ ] Los targets están disponibles.
[ ] El panel utiliza la fuente correcta.
[ ] Las variables tienen valores.
[ ] El intervalo temporal es adecuado.
[ ] La consulta no contiene filtros incorrectos.
[ ] Query Inspector no muestra errores.
Buenas prácticas¶
- Utiliza nombres descriptivos para las fuentes.
- Define una fuente predeterminada cuando corresponda.
- Evita crear varias fuentes idénticas sin necesidad.
- Comprueba la URL desde el servidor de Grafana.
- No utilices
localhostpara referirte a otro servidor. - Limita el acceso mediante firewall.
- No guardes credenciales en capturas ni documentación.
- Utiliza el método de acceso adecuado.
- Valida la fuente con Save & test.
- Prueba primero con la consulta
up. - Comprueba los targets antes de investigar el panel.
- Utiliza Query Inspector para revisar la petición real.
- Comprueba las variables del dashboard.
- Diferencia una respuesta vacía de un error de conexión.
- Revisa el rango temporal.
- Comprueba la hora de los servidores.
- Documenta las fuentes provisionadas.
- Realiza copias de seguridad antes de editar provisioning.
- No elimines una fuente utilizada por muchos dashboards sin analizar el impacto.
- Utiliza tokens con permisos mínimos cuando sea necesario.
- Revoca credenciales que ya no se utilicen.
Tabla de síntomas y comprobaciones¶
| Síntoma | Primera prueba | Posible causa |
|---|---|---|
Save & test falla |
curl desde Grafana |
URL, red o servicio |
Connection refused |
ss en Prometheus |
Servicio detenido o puerto incorrecto |
Connection timed out |
nc y firewall |
Red o firewall |
Bad Gateway |
Backend directo | Proxy o URL |
401 Unauthorized |
Configuración de autenticación | Credenciales |
403 Forbidden |
Permisos del usuario | Autorización |
404 Not Found |
URL completa | Ruta incorrecta |
No data |
Consulta up |
Consulta o filtros |
| Panel vacío | Query Inspector | Variables o intervalo |
| Fuente desaparece | Provisioning | Configuración automática |
| Consulta lenta | time curl |
Consulta costosa o demasiados datos |
| Datos antiguos | Hora y targets | Scraping o reloj |
Puntos clave¶
- Una fuente de datos permite a Grafana consultar sistemas externos.
- Prometheus es una fuente de datos habitual para métricas.
- La URL debe ser accesible desde el equipo que realiza la consulta.
localhosthace referencia al equipo desde el que se ejecuta la petición.Save & testcomprueba la conexión básica de una fuente.- Una fuente accesible puede devolver cero resultados si la consulta no coincide con ninguna serie.
Connection refusedyConnection timed outindican problemas diferentes.- Grafana y Prometheus pueden ejecutarse en equipos distintos.
- El firewall debe permitir únicamente el tráfico necesario.
- La consulta
upes una prueba inicial muy útil. - El estado de los targets debe comprobarse antes de investigar un panel vacío.
- Query Inspector muestra la petición real enviada por Grafana.
- Las variables pueden generar consultas vacías o incorrectas.
- El intervalo temporal puede ocultar datos existentes.
- Los dashboards pueden utilizar fuentes de datos fijas o variables.
- Las fuentes provisionadas pueden sobrescribir cambios manuales.
- Las credenciales y tokens deben mantenerse fuera de la documentación pública.
- Toda incidencia debe incluir URL, pruebas, error, causa y validación.
- La solución debe probarse desde el servidor de Grafana, no solo desde el navegador.
- Una fuente correcta no garantiza que todas las consultas del dashboard sean correctas.
Preguntas de comprobación¶
- ¿Qué es una fuente de datos en Grafana?
- ¿Qué función cumple una fuente Prometheus?
- ¿Por qué
localhostpuede provocar un error cuando Grafana y Prometheus están en equipos diferentes? - ¿Qué diferencia existe entre una fuente inaccesible y una consulta sin resultados?
- ¿Qué función cumple Save & test?
- ¿Qué comando permite probar Prometheus desde el servidor de Grafana?
- ¿Qué comando permite comprobar si el puerto
9090está en escucha? - ¿Qué significa el error
Connection refused? - ¿Qué causas pueden producir un
Connection timed out? - ¿Qué diferencia existe entre los errores HTTP
401y403? - ¿Qué comprobarías ante un error
502 Bad Gateway? - ¿Qué consulta PromQL utilizarías como primera prueba?
- ¿Qué información proporciona Query Inspector?
- ¿Por qué una variable múltiple suele utilizar
=~? - ¿Qué puede causar que un panel muestre
No data? - ¿Qué diferencia existe entre el acceso desde el servidor y el acceso desde el navegador?
- ¿Qué es una fuente provisionada?
- ¿Por qué no deben guardarse tokens en los informes?
- ¿Qué comprobarías si
Save & testfunciona, pero el panel está vacío? - ¿Qué información debe incluir un informe sobre una fuente de datos?
Actividad final¶
Completa la siguiente actividad en el entorno de laboratorio:
- Comprueba que Prometheus está activo.
- Comprueba el puerto
9090. - Comprueba el endpoint
/-/healthy. - Crea una fuente de datos Prometheus.
- Utiliza un nombre descriptivo.
- Ejecuta Save & test.
- Crea un panel con la consulta:
- Crea un panel con la consulta:
- Crea una variable
instance. - Utiliza la variable en una consulta:
- Abre Query Inspector.
- Revisa la consulta generada.
- Crea una fuente incorrecta en un entorno de laboratorio.
- Documenta el error obtenido.
- Detén Prometheus de forma controlada.
- Repite Save & test.
- Observa el error.
- Inicia Prometheus.
- Valida de nuevo la fuente.
- Comprueba que los paneles vuelven a mostrar datos.
- Revisa los targets de Prometheus.
- Genera un informe técnico.