ZooKeeper

Supported OS Linux Mac OS

Intégration4.2.0

Dashboard ZooKeeper

Présentation

Le check ZooKeeper vérifie les connexions client et les latences, surveille le nombre de requêtes non traitées et bien plus encore.

Configuration

Installation

Le check ZooKeeper est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos serveurs ZooKeeper.

Configuration

Liste d’inclusion

Depuis la version 3.5, ZooKeeper comprend le paramètre 4lw.commands.whitelist. Consultez la section sur les options de cluster ZooKeeper) pour découvrir un exemple permettant d’ajouter des commandes à 4 lettres. Par défaut, seule la commande srvr est ajoutée à la liste blanche. Ajoutez stat et mntr à la liste blanche, car le processus d’intégration repose sur ces commandes.

Activation de l’authentification SSL

La version 3.5 de ZooKeeper prend en charge l’authentification SSL. Pour découvrir comment configurer l’authentification SSL avec ZooKeeper, consultez le guide ZooKeeper à ce sujet (en anglais).

Après avoir configuré l’authentification SSL pour ZooKeeper, vous pouvez égalemet configuré l’Agent Datadog afin de le connecter à ZooKeeper via SSL. Si vous avez déjà configuré l’authentification à l’aide de fichiers JKS, suivez les étapes ci-dessous pour les convertir en fichiers PEM afin de procéder à la configuration TLS/SSL.

Les exemples de commandes suivants supposent que vos fichiers truststore et keystore JKS portent les noms suivants :

  • server_truststore.jks
  • server_keystore.jks
  • client_truststore.jks
  • client_keystore.jks

Nous partons également du principe que les fichiers keystore et truststore côté client et serveur disposent chacun des certificats réciproques, avec les alias server_cert et client_cert. Ainsi, le client ZooKeeper Java peut d’ores et déjà se connecter à un serveur ZooKeeper. Si votre clé privée est protégée par un mot de passe, assurez-vous d’indiquer le mot de passe pour l’option de configuration tls_private_key_password du fichier config.yaml.

Pour convertir des fichiers JKS en fichiers PEM :

  1. Récupérez le fichier ca_cert.pem à partir du fichier client_truststore.jks, puisque le truststore du client contient le certificat du serveur fiable :

    keytool -exportcert -file ca_cert.pem -keystore client_truststore.jks -alias server_cert -rfc
    
  2. Récupérez le fichier cert.pem à partir du fichier client_keystore.jks, puisque le keystore du client contient le certificat du client pour l’alias client_cert :

    keytool -importkeystore -srckeystore client_keystore.jks -destkeystore cert.p12 -srcstoretype jks -deststoretype pkcs12 -srcalias client_cert
    
  3. Exécutez la commande openssl pkcs12, afin d’exporter le certificat client et la clé privée du certificat. L’option tls_cert peut lire et parser le fichier PEM, qui contient à la fois le certificat et la clé privée. Si vous souhaitez obtenir un fichier qui n’est pas protégé par un mot de passe, ajoutez -nodes à la commande :

    openssl pkcs12 -in cert.p12 -out cert.pem
    

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

  1. Modifiez le fichier zk.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos métriques et logs ZooKeeper. Consultez le fichier d’exemple zk.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. ZooKeeper utilise le logger log4j par défaut. Pour activer la journalisation dans un fichier et personnaliser le format, modifiez le fichier log4j.properties :

      # Set root logger level to INFO and its only appender to R
      log4j.rootLogger=INFO, R
      log4j.appender.R.File=/var/log/zookeeper.log
      log4j.appender.R.layout=org.apache.log4j.PatternLayout
      log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c{1}:%L - %m%n
    
  2. Par défaut, le pipeline d’intégration de Datadog prend en charge les expressions de conversion suivantes :

      %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
      %d [%t] %-5p %c - %m%n
      %r [%t] %p %c %x - %m%n
    

    Vérifiez d’avoir bien dupliqué et modifié le pipeline d’intégration si vous utilisez un autre format.

  3. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  4. Supprimez la mise en commentaire du bloc de configuration suivant en bas de votre fichier zk.d/conf.yaml, puis modifiez-le :

    logs:
      - type: file
        path: /var/log/zookeeper.log
        source: zookeeper
        service: myapp
        #To handle multi line that starts with yyyy-mm-dd use the following pattern
        #log_processing_rules:
        #  - type: multi_line
        #    name: log_start_with_date
        #    pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
    

    Modifiez les valeurs des paramètres path et service et configurez-les pour votre environnement. Consultez le fichier d’exemple zk.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  5. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>zk
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"host": "%%host%%", "port": "2181"}
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "zookeeper", "service": "<NOM_SERVICE>"}

Validation

Lancez la sous-commande status de l’Agent et cherchez zk dans la section Checks.

Données collectées

Métriques

Métriques obsolètes

Bien qu’elles soient toujours envoyées, les métriques suivantes seront prochainement supprimées :

  • zookeeper.bytes_received
  • zookeeper.bytes_sent

Événements

Le check ZooKeeper n’inclut aucun événement.

Checks de service

zookeeper.ruok
Envoie ruok au nœud surveillé. Renvoie OK pour une réponse imok, renvoie WARN pour toute autre réponse ou renvoie CRITICAL si aucune réponse n’est reçue.
Statuses: ok, warning, critical

zookeeper.mode
Compare le mode actuel donné par la commande stat au mode attendu configuré dans zk.yaml. Renvoie OK lorsque les modes correspondent. Si ce n’est pas le cas, renvoie CRITICAL. Renvoie uniquement un statut lorsqu’une valeur pour expected_mode est définie dans zk.yaml.
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

PREVIEWING: may/embedded-workflows