Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Monitorización de logs de Redis con ClickStack

Integración con Redis existente

En esta sección se explica cómo configurar su instalación actual de Redis para enviar logs a ClickStack modificando la configuración del OTel collector de ClickStack. Si desea probar la integración de Redis antes de configurar su propio entorno, puede hacerlo con nuestra configuración predefinida y datos de ejemplo en la sección "Conjunto de datos de demostración".

Requisitos previos

  • Instancia de ClickStack en ejecución
  • Instalación existente de Redis (versión 3.0 o posterior)
  • Acceso a los archivos de log de Redis

Verifique la configuración de logging de Redis

Primero, verifique la configuración de logging de Redis. Conéctese a Redis y compruebe la ubicación del archivo de registro:

redis-cli CONFIG GET logfile

Ubicaciones comunes de los logs de Redis:

  • Linux (apt/yum): /var/log/redis/redis-server.log
  • macOS (Homebrew): /usr/local/var/log/redis.log
  • Docker: A menudo se envían a stdout, pero se puede configurar para que se escriban en /data/redis.log

Si Redis está enviando los logs a stdout, configúralo para que los escriba en un archivo actualizando redis.conf:

# Log to file instead of stdout
logfile /var/log/redis/redis-server.log

# Set log level (options: debug, verbose, notice, warning)
loglevel notice

Después de cambiar la configuración, reinicie Redis:

# For systemd
sudo systemctl restart redis

# For Docker
docker restart <redis-container>

Crear una configuración personalizada del OTel collector

ClickStack permite ampliar la configuración base del OpenTelemetry Collector montando un archivo de configuración personalizado y definiendo una variable de entorno. La configuración personalizada se fusiona con la configuración base administrada por HyperDX mediante OpAMP.

Crea un archivo llamado redis-monitoring.yaml con la siguiente configuración:

receivers:
  filelog/redis:
    include:
      - /var/log/redis/redis-server.log
    start_at: beginning
    operators:
      - type: regex_parser
        regex: '^(?P\d+):(?P\w+) (?P\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2})\.\d+ (?P[.\-*#]) (?P.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%d %b %Y %H:%M:%S'
      
      - type: add
        field: attributes.source
        value: "redis"
      
      - type: add
        field: resource["service.name"]
        value: "redis-production"

service:
  pipelines:
    logs/redis:
      receivers: [filelog/redis]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse

Esta configuración:

  • Lee los logs de Redis desde su ubicación estándar
  • Analiza el formato de log de Redis mediante regex para extraer campos estructurados (pid, role, timestamp, log_level, message)
  • Añade el atributo source: redis para filtrar en HyperDX
  • Envía los logs al exportador de ClickHouse a través de un pipeline dedicado

Configura ClickStack para cargar una configuración personalizada

Para habilitar una configuración personalizada del collector en tu despliegue actual de ClickStack, debes:

  1. Montar el archivo de configuración personalizado en /etc/otelcol-contrib/custom.config.yaml
  2. Establecer la variable de entorno CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. Montar el directorio de logs de Redis para que el collector pueda leerlos
Opción 1: Docker Compose

Actualiza la configuración de despliegue de ClickStack:

services:
  clickstack:
    # ... existing configuration ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # ... other environment variables ...
    volumes:
      - ./redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      - /var/log/redis:/var/log/redis:ro
      # ... other volumes ...
Opción 2: Docker Run (imagen todo en uno)

Si usas la imagen todo en uno con Docker, ejecuta:

docker run --name clickstack \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v /var/log/redis:/var/log/redis:ro \
  clickhouse/clickstack-all-in-one:latest

Verificación de logs en HyperDX

Una vez configurado, inicia sesión en HyperDX y verifica que los logs se estén recibiendo:

Vista de logs
Log

Conjunto de datos de demostración

Para los usuarios que quieran probar la integración de Redis antes de configurar sus sistemas de producción, proporcionamos un conjunto de datos de ejemplo con logs de Redis pregenerados y patrones realistas.

Descargar el conjunto de datos de ejemplo

Descarga el archivo de log de ejemplo:

curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-server.log

Crear la configuración del collector de prueba

Crea un archivo llamado redis-demo.yaml con la siguiente configuración:

cat > redis-demo.yaml << 'EOF'
receivers:
  filelog/redis:
    include:
      - /tmp/redis-demo/redis-server.log
    start_at: beginning  # Leer desde el principio para los datos de demostración
    operators:
      - type: regex_parser
        regex: '^(?P<pid>\d+):(?P<role>\w+) (?P<timestamp>\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2})\.\d+ (?P<log_level>[.\-*#]) (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%d %b %Y %H:%M:%S'
      
      - type: add
        field: attributes.source
        value: "redis-demo"
      
      - type: add
        field: resource["service.name"]
        value: "redis-demo"

service:
  pipelines:
    logs/redis-demo:
      receivers: [filelog/redis]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
EOF

Ejecutar ClickStack con la configuración de demostración

Ejecuta ClickStack con los logs de demostración y esta configuración:

docker run --name clickstack-demo \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/redis-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v "$(pwd)/redis-server.log:/tmp/redis-demo/redis-server.log:ro" \
  clickhouse/clickstack-all-in-one:latest

Verificar los logs en HyperDX

Una vez que ClickStack esté en ejecución:

  1. Abre HyperDX e inicia sesión en tu cuenta (puede que primero tengas que crear una cuenta)
  2. Ve a la Search view y establece Logs como source
  3. Establece el intervalo de tiempo en 2025-10-26 10:00:00 - 2025-10-29 10:00:00
Vista de logs
Log

Dashboards y visualización

Para ayudarle a empezar a monitorizar Redis con ClickStack, proporcionamos visualizaciones esenciales para logs de Redis.

Descargar la configuración del dashboard

Importar dashboard preconfigurado

  1. Abra HyperDX y vaya a la sección Dashboards.
  2. Haga clic en "Import Dashboard" en la esquina superior derecha, dentro del menú de los tres puntos.
Importar dashboard
  1. Cargue el archivo redis-logs-dashboard.json y haga clic en Finalizar importación.
Finalizar importación

El dashboard se creará con todas las visualizaciones preconfiguradas

Dashboard de ejemplo

Solución de problemas

La configuración personalizada no carga

Verifica que la variable de entorno esté configurada correctamente:

docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE
# Salida esperada: /etc/otelcol-contrib/custom.config.yaml

Comprueba que el archivo de configuración personalizado esté montado:

docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yaml
# Salida esperada: Debe mostrar el tamaño del archivo y los permisos

Consulta el contenido de la configuración personalizada:

docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml
# Debe mostrar el contenido de redis-monitoring.yaml

Comprueba que la configuración efectiva incluya el filelog receiver:

docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
# Debe mostrar la configuración del receptor filelog/redis

No se muestran logs en HyperDX

Asegúrese de que Redis esté guardando logs en un archivo:

redis-cli CONFIG GET logfile
# Salida esperada: Debe mostrar una ruta de archivo, no una cadena vacía
# Ejemplo: 1) "logfile" 2) "/var/log/redis/redis-server.log"

Comprueba que Redis esté generando registros activamente:

tail -f /var/log/redis/redis-server.log
# Debería mostrar entradas de registro recientes en formato Redis

Verifique que el collector pueda leer los logs:

docker exec <container> cat /var/log/redis/redis-server.log
# Debe mostrar las entradas del registro de Redis

Compruebe si hay errores en los logs del collector:

docker exec <container> cat /etc/otel/supervisor-data/agent.log
# Buscar mensajes de error relacionados con filelog o Redis

Si usa docker-compose, verifique los volúmenes compartidos:

# Verificar que ambos contenedores usan el mismo volumen
docker volume inspect <volume-name>
# Verificar que ambos contenedores tienen el volumen montado

Los logs no se procesan correctamente

Verifica que el formato de los logs de Redis coincida con el patrón esperado:

# Los logs de Redis deben verse así:
# 12345:M 28 Oct 2024 14:23:45.123 * Server started
tail -5 /var/log/redis/redis-server.log

Si tus logs de Redis tienen un formato distinto, es posible que debas ajustar el patrón de regex en el operador regex_parser. El formato estándar es:

  • pid:role timestamp level message
  • Ejemplo: 12345:M 28 Oct 2024 14:23:45.123 * Server started

Siguientes pasos

  • Configura alertas para métricas críticas (tasas de error, umbrales de latencia)
  • Crea dashboards adicionales para casos de uso específicos (monitorización de API, eventos de seguridad)

Paso a producción

Esta guía amplía el OpenTelemetry Collector integrado de ClickStack para ofrecer una configuración rápida. Para implementaciones de producción, recomendamos ejecutar una instancia propia del OTel Collector y enviar los datos al endpoint OTLP de ClickStack. Consulte Envío de datos de OpenTelemetry para ver la configuración de producción.

Navigation