FluentD

FluentD

Agent Check Check de l'Agent

Supported OS Linux Mac OS Windows

Dashboard Fluentd

Présentation

Obtenez des métriques de Fluentd pour :

  • Visualiser les performances Fluentd
  • Corréler les performances de Fluentd avec le reste de vos applications

Configuration

Installation

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

Préparer Fluentd

Dans votre fichier de configuration Fluentd, ajoutez une source monitor_agent :

<source>
  @type monitor_agent
  bind 0.0.0.0
  port 24220
</source>

Configuration

Host

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

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

    init_config:
    
    instances:
      ## @param monitor_agent_url - string - required
      ## Monitor Agent URL to connect to.
      #
      - monitor_agent_url: http://example.com:24220/api/plugins.json
    
  2. Redémarrez l’Agent.

Collecte de logs

Vous pouvez utiliser le plug-in FluentD de Datadog pour transférer directement les logs depuis Fluentd vers votre compte Datadog.

Ajouter des métadonnées à vos logs

Pour tirer pleinement parti de vos logs dans Datadog, vous devez pouvoir compter sur des métadonnées pertinentes (notamment, le hostname et la source). Normalement, les champs hostname et timestamp sont correctement remappés par défaut grâce au remappage d’attributs réservés.

Tag source et tags personnalisés

Ajoutez l’attribut ddsource avec le nom de l’intégration de logs dans vos logs afin de déclencher la configuration automatique de l’intégration dans Datadog. Les tags host sont automatiquement définis dans vos logs si un hostname correspond à une entrée de votre liste des infrastructures. Utilisez l’attribut ddtags pour ajouter des tags personnalisés à vos logs :

Exemple de configuration :

  # Associer les événements avec le tag "datadog.**" et
  # les envoyer à Datadog

<match datadog.**>
  @type datadog
  @id awesome_agent
  api_key <votre_clé_api>

  # Facultatif
  include_tag_key true
  tag_key 'tag'

  # Tags facultatifs
  dd_source '<NOM_INTÉGRATION>'
  dd_tags '<KEY1:VALUE1>,<KEY2:VALUE2>'

  <buffer>
          @type memory
          flush_thread_count 4
          flush_interval 3s
          chunk_limit_size 5m
          chunk_limit_records 500
  </buffer>
</match>

Par défaut, le plug-in est configuré de façon à envoyer des logs via HTTPS (port 443) à l’aide de la compression gzip. Vous pouvez modifier ce comportement avec les paramètres suivants :

  • use_http : définissez ce paramètre sur false pour utiliser la connexion TCP. Vous devez modifier les paramètres host et port en conséquence. Valeur par défaut : true.
  • use_compression : la compression est uniquement disponible pour les transmissions HTTP. Définissez ce paramètre sur false pour la désactiver. Valeur par défaut : true.
  • compression_level : définissez le niveau de compression via HTTP. Choisissez une valeur entre 1 (ratio le plus faible) et 9 (ratio le plus élevé). Valeur par défaut : 6.

Il est possible d’utiliser des paramètres supplémentaires pour changer l’endpoint utilisé afin de passer par un proxy :

  • host : l’endpoint proxy pour les logs qui ne sont pas directement transmis à Datadog. Valeur par défaut : http-intake.logs.datadoghq.com.
  • port : le port proxy pour les logs qui ne sont pas directement transmis à Datadog. Valeur par défaut : 80.
  • ssl_port : le port utilisé pour les logs transmis via une connexion TCP/SSL sécurisée à Datadog. Valeur par défaut : 443.
  • use_ssl : indique à l’Agent d’initialiser une connexion TCP/SSL sécurisée vers Datadog. Valeur par défaut : true.
  • no_ssl_validation : désactive la validation du hostname SSL. Valeur par défaut : false.

Remarque : définissez host et port sur votre région .

<match datadog.**>

  #...
  host 'http-intake.logs.datadoghq.eu'

</match>
Tags Kubernetes et Docker

Les tags Datadog s’avèrent indispensables pour passer d’une partie du produit à une autre. De la même façon, il est crucial d’associer des métadonnées pertinentes à vos logs pour passer de la vue d’un conteneur ou de métriques de conteneur aux logs connexes.

Si vos logs contiennent un ou plusieurs des attributs suivants, ces attributs sont automatiquement ajoutés en tant que tags Datadog à vos logs :

  • kubernetes.container_image
  • kubernetes.container_name
  • kubernetes.namespace_name
  • kubernetes.pod_name
  • docker.container_id

Bien que l’Agent Datadog recueille automatiquement les métadonnées Docker et Kubernetes, FluentD doit utiliser un plug-in pour y parvenir. Nous vous conseillons d’utiliser fluent-plugin-kubernetes_metadata_filter pour recueillir ces métadonnées.

Exemple de configuration :

# Recueillir les métadonnées des logs avec le tag "kubernetes.**"
 <filter kubernetes.*>
   type kubernetes_metadata
 </filter>

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>fluentd
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"monitor_agent_url": "http://%%host%%:24220/api/plugins.json"}

Validation

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

Données collectées

Métriques

fluentd.retry_count
(gauge)
The number of retries for this plugin.
Shown as time
fluentd.buffer_queue_length
(gauge)
The length of the buffer queue for this plugin.
Shown as buffer
fluentd.buffer_total_queued_size
(gauge)
The size of the buffer queue for this plugin.
Shown as byte
fluentd.emit_records
(gauge)
The total number of emitted records
Shown as record
fluentd.emit_count
(gauge)
The total number of emit call in output plugin
Shown as unit
fluentd.write_count
(gauge)
The total number of write/try_write call in output plugin
Shown as unit
fluentd.rollback_count
(gauge)
The total number of rollback. rollback happens when write/try_write failed
Shown as unit
fluentd.slow_flush_count
(gauge)
The total number of slow flush. This count will be incremented when buffer flush is longer than slow_flush_log_threshold
Shown as unit
fluentd.flush_time_count
(gauge)
The total time of buffer flush in milliseconds
Shown as millisecond
fluentd.buffer_stage_length
(gauge)
The length of staged buffer chunks
fluentd.buffer_stage_byte_size
(gauge)
Current bytesize of staged buffer chunks
Shown as byte
fluentd.buffer_queue_byte_size
(gauge)
Current bytesize of queued buffer chunks
Shown as byte
fluentd.buffer_available_buffer_space_ratios
(gauge)
Show available space for buffer

Événements

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

Checks de service

fluentd.is_ok :
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à Fluentd pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin