Esta guía cubre los problemas comunes que puede encontrar al instalar y configurar la integración de Redis OpenTelemetry.
Problemas de inicio del Collector
Mensaje de error:
'receivers' unknown type: "redis" for id: "redis" (valid values: [elasticsearch hostmetrics ...])Causa: su versión de NRDOT no incluye el receptor de Redis. El receptor de Redis requiere NRDOT v1.18.0+.
Solución: cualquiera de las siguientes:
- Actualizar NRDOT a la última versión
- Cambie a
otelcol-contrib, que incluye todos los receptores de la comunidad
Mensaje de error:
cannot unmarshal the configuration: error reading receivers configurationCausas comunes:
- Sangría de YAML no válida (mezcla de tabulaciones y espacios)
- Problemas de heredoc al crear ConfigMaps desde scripts de shell
- Faltan comillas alrededor de los valores del extremo que contienen dos puntos
Corrección:
$# Validate YAML syntax$python3 -c "import yaml; yaml.safe_load(open('/etc/nrdot-collector/redis-collector-config.yaml'))"Cómo verificar:
$systemctl status nrdot-collector$# or$systemctl status otelcol-contribCausas comunes:
- YAML no válido en el archivo de configuración del recolector
- Conflicto de puerto con otro proceso (verifique el puerto 13133 para la comprobación de estado)
- Memoria insuficiente (aumente
limit_miben memory_limiter)
Corrección:
$# Check for port conflicts$ss -tlnp | grep 13133Mensaje de error:
failed to fetch Redis INFO: dial tcp 127.0.0.1:6379: connect: connection refusedCausa: Redis no se está ejecutando, se configuró un extremo incorrecto o el firewall bloquea la conexión.
Corrección:
$# Verify Redis is running$redis-cli ping$
$# Test connectivity$nc -zv localhost 6379Problemas de exportación de datos
Mensaje de error:
Exporting failed. 403 ForbiddenCausa: clave de licencia no válida o extremo OTLP incorrecto para su región.
Corrección:
- Verifique que su clave de licencia sea correcta y esté activa
- Asegúrese de que el extremo OTLP coincida con la región de su cuenta
Pasos de verificación:
Verifique que el recolector se esté ejecutando:
bash$systemctl is-active nrdot-collectorVerifique el extremo de salud:
bash$curl http://localhost:13133Pruebe con NRQL:
FROM Metric SELECT count(*) WHERE metricName LIKE 'redis.%' SINCE 10 minutes ago
Problemas de recopilación de logs
Mensaje de error:
Failed to open file: /var/log/redis/redis-server.log: permission deniedCausa: el proceso del recolector no tiene acceso de lectura al archivo de log de Redis.
Solución (basada en host):
$# Option 1: Make the log file readable$sudo chmod 644 /var/log/redis/redis-server.log$
$# Option 2: Add collector user to redis group$sudo usermod -a -G redis nrdot-collectorSolución (Kubernetes): asegúrese de que el DaemonSet tenga el volumen /var/log/pods montado con readOnly: true.
Problemas específicos de Kubernetes
Causa: las etiquetas del pod no coinciden con la regla de descubrimiento de receiver_creator.
Corrección:
$# Check pod labels$kubectl get pods -n <namespace> --show-labels | grep redisAsegúrese de que el rule en su ConfigMap coincida con las etiquetas de sus pods de Redis. Por ejemplo, si sus pods tienen app.kubernetes.io/name: redis, actualice la regla en consecuencia.
Cómo verificar:
$kubectl get pods -n newrelic$kubectl logs -n newrelic <pod-name> --previousCausas comunes:
- YAML de ConfigMap no válido (verifique la sangría en el campo
data.config.yaml) - Falta el secreto de Kubernetes para las credenciales
- Faltan permisos de RBAC (para DaemonSet con
k8s_observer)
Corrección:
$# Validate ConfigMap content$kubectl get configmap otel-collector-redis-config -n newrelic -o jsonpath='{.data.config\.yaml}' | python3 -c "import yaml,sys; yaml.safe_load(sys.stdin); print('Valid YAML')"$
$# Check secret exists$kubectl get secret newrelic-credentials -n newrelic$
$# Check RBAC$kubectl auth can-i list pods --as=system:serviceaccount:newrelic:otel-collector-redisError: tiempo de espera de conexión agotado para el extremo de Redis.
Corrección:
$# Verify Redis pods are running$kubectl get pods -n <namespace> -l app=redis$
$# Test connectivity from collector pod$kubectl exec -n newrelic <collector-pod> -- nc -zv <redis-pod-ip> 6379Causas comunes:
El namespace no existe
values.yaml no válido
Repositorio de Helm no agregado
Corrección:
bash$# Create namespace first$kubectl create namespace newrelic$$# Validate (dry run)$helm template redis-otel open-telemetry/opentelemetry-collector -f values.yaml --dry-run
Problemas de monitoreo de clusters
Síntomas: aparecen entidades de instancia, pero no se crea ninguna entidad de Redis Cluster.
Causas comunes:
redis.cluster.nameno establecido en el pipeline del clústerredis.instance.idoserver.addresspresente en las métricas del clúster (evita que coincida la regla de entidad del clúster)Métricas del clúster deshabilitadas (todas las métricas del clúster están deshabilitadas por defecto en el receptor de Redis)
Solución: verifique que su pipeline de clúster tenga:
redis.cluster.nameconfigurado mediante el procesadorresource/clusterserver.address: {enabled: false}yserver.port: {enabled: false}en el receptor del clústerNo hay
redis.instance.iden el pipeline del clústerVerificar con NRQL:
SELECT count(*) FROM MetricWHERE redis.cluster.name IS NOT NULLAND redis.instance.id IS NULLAND server.address IS NULLSINCE 5 minutes agoSi esto devuelve 0, las métricas del clúster no fluyen correctamente.
Síntomas: la entidad Cluster existe, pero el dashboard muestra widgets vacíos.
Causas comunes:
Redis no se está ejecutando en modo Cluster (las instancias independientes no producen métricas de clúster)
Métricas del Cluster no habilitadas en la configuración del receptor de Redis
Solución: verifique que Redis esté en modo Cluster:
bash$redis-cli INFO cluster | grep cluster_enabledDebería devolver
cluster_enabled:1. Si devuelve0, su Redis no está en modo Cluster.Verificar que las métricas del clúster estén habilitadas en la configuración de su receiver:
redis/cluster:metrics:redis.cluster.state: {enabled: true}redis.cluster.known_nodes: {enabled: true}# ... all 9 cluster metrics must be explicitly enabled
Síntomas: aparece más de una entidad de Redis Cluster para el mismo clúster.
Causa: diferentes recolectores están utilizando diferentes valores de redis.cluster.name para el mismo clúster.
Solución: asegúrate de que todos los recolectores que monitorean el mismo clúster usen exactamente el mismo valor de redis.cluster.name en su procesador resource/cluster. El identificador de la entidad del clúster es este nombre — los nombres diferentes crean entidades diferentes.
Síntomas: existen las entidades de clúster e instancia, pero no aparece ninguna relación CONTAINS en los mapas de servicio.
Causa: las métricas de instancia no llevan el atributo redis.cluster.name, por lo que la regla de relación no puede vincularlas.
Solución: Agregue redis.cluster.name al procesador de recursos del pipeline de su instancia:
resource/redis_identity: attributes: - key: redis.instance.id value: "my-instance:6379" action: upsert - key: redis.cluster.name value: "my-redis-cluster" # Must match the cluster pipeline value action: upsertSíntomas: redis.cluster.state informa 0 (FAIL) aunque Redis parece estar operativo.
Causas comunes:
No todas las 16 384 ranuras de hash están asignadas (configuración de clúster incompleta)
Un nodo maestro está inactivo sin ninguna réplica disponible para la conmutación por error automática
Partición de red entre nodos
Corrección:
bash$# Check cluster state directly$redis-cli CLUSTER INFO | grep cluster_state$$# Check slot coverage$redis-cli CLUSTER INFO | grep cluster_slots$$# Check for failed nodes$redis-cli CLUSTER NODES | grep failSi
cluster_slots_assignedes menor que 16384, algunos slots no están asignados. Soluciónelo agregando los rangos de slots faltantes a los nodos disponibles.
Próximos pasos
- Guías de instalación: revise los pasos de configuración
- Referencia de métricas: verifique las métricas esperadas
- Encuentre sus datos: realice consultas y alertas sobre las métricas de Redis