Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Surveiller les logs Redis avec ClickStack

Intégration avec un Redis existant

Cette section explique comment configurer votre installation Redis existante afin d’envoyer des logs à ClickStack en modifiant la configuration du ClickStack OTel collector. Si vous souhaitez tester l’intégration Redis avant de configurer votre propre environnement, vous pouvez utiliser notre configuration préconfigurée et les données d’exemple de la section "Jeu de données de démonstration".

Prérequis

  • Une instance ClickStack en cours d’exécution
  • Une installation Redis existante (version 3.0 ou ultérieure)
  • Un accès aux fichiers journaux de Redis

Vérifier la configuration de journalisation de Redis

Commencez par vérifier la configuration de journalisation de Redis. Connectez-vous à Redis et vérifiez l’emplacement du fichier journal :

redis-cli CONFIG GET logfile

Emplacements courants des journaux Redis :

  • Linux (apt/yum) : /var/log/redis/redis-server.log
  • macOS (Homebrew) : /usr/local/var/log/redis.log
  • Docker : souvent redirigé vers stdout, mais peut être configuré pour écrire dans /data/redis.log

Si Redis écrit ses journaux vers stdout, configurez-le pour les écrire dans un fichier en mettant à jour 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

Après avoir modifié la configuration, redémarrez Redis :

# For systemd
sudo systemctl restart redis

# For Docker
docker restart <redis-container>

Créer une configuration personnalisée pour l’OTel collector

ClickStack vous permet d’étendre la configuration de base de l’OpenTelemetry Collector en montant un fichier de configuration personnalisé et en définissant une variable d’environnement. La configuration personnalisée est fusionnée avec la configuration de base gérée par HyperDX via OpAMP.

Créez un fichier nommé redis-monitoring.yaml avec la configuration suivante :

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

Cette configuration :

  • Lit les Redis Logs à leur emplacement standard
  • Analyse le format de logs de Redis à l’aide d’une expression régulière pour extraire les champs structurés (pid, role, timestamp, log_level, message)
  • Ajoute l’attribut source: redis pour faciliter le filtrage dans HyperDX
  • Achemine les logs vers le ClickHouse exporter via un pipeline dédié

Configurer ClickStack pour charger une configuration personnalisée

Pour activer une configuration personnalisée du collector dans votre déploiement ClickStack existant, vous devez :

  1. Monter le fichier de configuration personnalisé sur /etc/otelcol-contrib/custom.config.yaml
  2. Définir la variable d'environnement CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. Monter le répertoire de journaux Redis afin que le collector puisse les lire
Option 1 : Docker Compose

Mettez à jour la configuration de votre déploiement 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 ...
Option 2 : Docker Run (image tout-en-un)

Si vous utilisez l'image tout-en-un avec Docker, exécutez :

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

Vérifier les logs dans HyperDX

Une fois la configuration effectuée, connectez-vous à HyperDX et vérifiez que les logs remontent :

Vue des logs
Log

Jeu de données de démonstration

Pour les utilisateurs qui souhaitent tester l’intégration Redis avant de configurer leurs systèmes de production, nous fournissons un jeu de données d’exemple contenant des logs Redis pré-générés avec des motifs réalistes.

Télécharger le jeu de données d’exemple

Téléchargez le fichier de logs d’exemple :

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

Créer une configuration de collector de test

Créez un fichier nommé redis-demo.yaml avec la configuration suivante :

cat > redis-demo.yaml << 'EOF'
receivers:
  filelog/redis:
    include:
      - /tmp/redis-demo/redis-server.log
    start_at: beginning  # Lire depuis le début pour les données de démonstration
    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

Exécuter ClickStack avec la configuration de démonstration

Exécutez ClickStack avec les logs de démonstration et cette configuration :

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

Vérifier les logs dans HyperDX

Une fois ClickStack démarré :

  1. Ouvrez HyperDX et connectez-vous à votre compte (vous devrez peut-être d’abord en créer un)
  2. Accédez à la vue Search et définissez la source sur Logs
  3. Définissez l’intervalle de temps sur 2025-10-26 10:00:00 - 2025-10-29 10:00:00
Vue des logs
Log

Tableaux de bord et visualisation

Pour vous aider à démarrer la surveillance de Redis avec ClickStack, nous fournissons les visualisations essentielles pour log Redis.

Télécharger la configuration du tableau de bord

Télécharger la configuration du tableau de bord.

Importer le tableau de bord préconfiguré

  1. Ouvrez HyperDX et accédez à la section Dashboards.
  2. Cliquez sur "importer le tableau de bord" dans le coin supérieur droit, dans le menu à trois points.
Importer le tableau de bord
  1. Téléversez le fichier redis-logs-dashboard.json, puis cliquez sur Finish Import.
Terminer l’importation

Le tableau de bord sera créé avec toutes les visualisations préconfigurées

Exemple de tableau de bord

Dépannage

La config personnalisée ne se charge pas

Vérifiez que la variable d'environnement est correctement définie :

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

Vérifiez que le fichier de configuration personnalisé est bien monté :

docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yaml
# Expected output: Should show file size and permissions

Affichez le contenu de la configuration personnalisée :

docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml
# Should display your redis-monitoring.yaml content

Vérifiez que la configuration effective inclut votre receiver filelog :

docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
# Should show your filelog/redis receiver configuration

Aucun log ne s’affiche dans HyperDX

Assurez-vous que Redis consigne les logs dans un fichier :

redis-cli CONFIG GET logfile
# Expected output: Should show a file path, not empty string
# Example: 1) "logfile" 2) "/var/log/redis/redis-server.log"

Vérifiez que Redis journalise bien :

tail -f /var/log/redis/redis-server.log
# Should show recent log entries in Redis format

Vérifiez que le collector peut lire les logs :

docker exec <container> cat /var/log/redis/redis-server.log
# Should display Redis log entries

Vérifiez si les logs du collector contiennent des erreurs :

docker exec <container> cat /etc/otel/supervisor-data/agent.log
# Look for any error messages related to filelog or Redis

Si vous utilisez docker-compose, vérifiez les volumes partagés :

# Check both containers are using the same volume
docker volume inspect <volume-name>
# Verify both containers have the volume mounted

Les logs ne sont pas analysés correctement

Vérifiez que le format de logs de Redis correspond au modèle attendu :

# Redis Logs should look like:
# 12345:M 28 Oct 2024 14:23:45.123 * Server started
tail -5 /var/log/redis/redis-server.log

Si vos logs Redis ont un format différent, vous devrez peut-être adapter le pattern regex dans l’opérateur regex_parser. Le format standard est :

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

Étapes suivantes

  • Configurez des alertes pour les métriques critiques (taux d’erreur, seuils de latence)
  • Créez des tableaux de bord supplémentaires pour des cas d’usage spécifiques (surveillance des API, événements de sécurité)

Mise en production

Ce guide s'appuie sur l'OpenTelemetry Collector intégré à ClickStack pour une configuration rapide. Pour les déploiements en production, nous vous recommandons d'exécuter votre propre OTel Collector et d'envoyer les données vers l'endpoint OTLP de ClickStack. Consultez Envoi de données OpenTelemetry pour la configuration de production.

Navigation