Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Logstash

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Présentation

Recueillez des métriques du service Logstash en temps réel pour :

  • Visualiser et surveiller les états de Logstash
  • Être informé des événements Logstash

Implémentation

Le check Logstash n’est PAS inclus avec le paquet de l’Agent Datadog.

Installation

Pour installer le check Logstash sur votre host :

  1. Installez le kit de développement sur n’importe quelle machine.
  2. Exécutez ddev release build logstash pour générer le paquet.
  3. Téléchargez l’Agent Datadog.
  4. Importez l’artefact du build sur tous les hosts avec un Agent et exécutez datadog-agent integration install -w chemin/vers/logstash/dist/<NOM_ARTEFACT>.whl.

Configuration

Pour configurer le check Logstash :

  1. Créez un dossier logstash.d/ dans le dossier conf.d/ à la racine du répertoire de votre Agent.
  2. Créez un fichier conf.yaml dans le dossier logstash.d/ précédemment créé.
  3. Consultez le fichier d’exemple logstash.yaml et copiez son contenu dans le fichier conf.yaml.
  4. Modifiez le fichier conf.yaml pour commencer à recueillir vos métriques ou logs.
  5. Redémarrez l’Agent.

Collecte de métriques

  • Ajoutez cette configuration à votre fichier conf.yaml pour commencer à recueillir vos métriques Logstash :
init_config:

instances:
  #   L'URL sur laquelle Logstash fournit son API de surveillance. Celle-ci sera utilisée pour récupérer diverses métriques de runtime concernant Logstash.
  #
  - url: http://localhost:9600

Configurez-la de façon à spécifier votre serveur et votre port.

Consultez le fichier d’exemple conf.yaml pour découvrir toutes les options de configuration disponibles. * Redémarrez l’Agent pour commencer à envoyer vos métriques Logstash à Datadog.

Collecte de logs

Datadog possède un plug-in de sortie pour Logstash qui s’occupe de l’envoi de vos logs à votre plateforme Datadog.

Pour installer ce plugin, exécutez la commande suivante :

  • logstash-plugin install logstash-output-datadog_logs

Configurez ensuite le plug-in datadog_logs avec votre clé d’API Datadog :

output {
    datadog_logs {
        api_key => "<CLÉ_API_DATADOG>"
    }
}

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

  • host : endpoint proxy lorsque des logs ne sont pas directement transmis à Datadog (valeur par défaut : intake.logs.datadoghq.com).
  • port : port proxy lorsque des logs ne sont pas directement transmis à Datadog (valeur par défaut : 10516)
  • use_ssl : si ce paramètre est défini sur true, l’Agent initialise une connexion TCP/SSL sécurisée vers Datadog (valeur par défaut : true)

Il peut également être utilisé pour l’envoi de logs au site européen de Datadog en définissant :

output {
    datadog_logs {
        api_key => "<CLÉ_API_DATADOG>"
        host => "tcp-intake.logs.datadoghq.eu"
        port => "443"
    }
}
Ajouter des métadonnées à vos logs

Pour tirer pleinement parti de vos logs dans Datadog, il est important de leur associer les métadonnées appropriées, y compris le hostname et la source. Par défaut, le hostname et le timestamp sont normalement remappés comme il se doit grâce au remappage pour les attributs réservés de Datadog. Pour vous assurer que le service est correctement remappé, ajoutez la valeur de son attribut à la liste de remappage du service.

Source

Configurez un filtre Logstash pour définir la source (nom d’intégration Datadog) sur vos logs.

filter {
  mutate {
    add_field => {
 "ddsource" => "<MA_VALEUR_SOURCE>"
       }
    }
 }

Cela déclenche la configuration automatique de l’intégration dans Datadog.

Tags personnalisés

Les tags de host sont automatiquement configurés sur vos logs s’il existe un hostname correspondant dans votre liste d’infrastructures. Utilisez l’attribut ddtags pour ajouter des tags personnalisés à vos logs :

filter {
  mutate {
    add_field => {
        "ddtags" => "env:test,<KEY:VALUE>"
       }
    }
 }

Validation

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

Compatibilité

Le check Logstash est compatible avec les versions 5.x, 6.x et 7.x de Logstash. Il prend également en charge les nouvelles métriques multipipeline ajoutées dans la version de Logstash 6.0. Testé avec les versions 5.6.15, 6.3.0 et 7.0.0 de Logstash.

Données collectées

Métriques

logstash.process.open_file_descriptors
(gauge)
The number of open file descriptors used by this process.
logstash.process.peak_open_file_descriptors
(gauge)
The peak number of open file descriptors used by this process.
logstash.process.max_file_descriptors
(gauge)
The maximum number of file descriptors used by this process.
logstash.process.mem.total_virtual_in_bytes
(gauge)
Total virtual memory allocated to this process.
Shown as byte
logstash.process.cpu.total_in_millis
(gauge)
The CPU time in milliseconds.
Shown as millisecond
logstash.process.cpu.percent
(gauge)
CPU utilization in percentage.
Shown as percent
logstash.process.cpu.load_average.1m
(gauge)
The average CPU load over one minute.
logstash.process.cpu.load_average.5m
(gauge)
The average CPU load over five minutes
logstash.process.cpu.load_average.15m
(gauge)
The average CPU load over fifteen minutes.
logstash.jvm.threads.count
(gauge)
Number of threads used by the JVM.
Shown as thread
logstash.jvm.threads.peak_count
(gauge)
The peak number of threads used by JVM.
Shown as thread
logstash.jvm.mem.heap_used_percent
(gauge)
Total Java heap memory used.
Shown as percent
logstash.jvm.mem.heap_committed_in_bytes
(gauge)
Total Java heap memory commited.
Shown as byte
logstash.jvm.mem.heap_max_in_bytes
(gauge)
Maximum Java heap memory size.
Shown as byte
logstash.jvm.mem.heap_used_in_bytes
(gauge)
Total Java heap memory used.
Shown as byte
logstash.jvm.mem.non_heap_used_in_bytes
(gauge)
Total Java non-heap memory used.
Shown as byte
logstash.jvm.mem.non_heap_committed_in_bytes
(gauge)
Total Java non-heap memory committed.
Shown as byte
logstash.jvm.mem.pools.survivor.peak_used_in_bytes
(gauge)
The Java memory used in the Survivor space.
Shown as byte
logstash.jvm.mem.pools.survivor.used_in_bytes
(gauge)
The peak Java memory used in the Survivor space.
Shown as byte
logstash.jvm.mem.pools.survivor.peak_max_in_bytes
(gauge)
The peak maximum Java memory used in the Survivor space.
Shown as byte
logstash.jvm.mem.pools.survivor.max_in_bytes
(gauge)
The maximum Java memory used in the Survivor space.
Shown as byte
logstash.jvm.mem.pools.survivor.committed_in_bytes
(gauge)
The commited Java memory used in the Survivor space.
Shown as byte
logstash.jvm.mem.pools.old.peak_used_in_bytes
(gauge)
The peak Java memory used in the Old generation.
Shown as byte
logstash.jvm.mem.pools.old.used_in_bytes
(gauge)
The Java memory used in the Old generation.
Shown as byte
logstash.jvm.mem.pools.old.peak_max_in_bytes
(gauge)
The peak maximum Java memory used in the Old generation.
Shown as byte
logstash.jvm.mem.pools.old.max_in_bytes
(gauge)
The maximum Java memory used in the Old generation.
Shown as byte
logstash.jvm.mem.pools.old.committed_in_bytes
(gauge)
The commited Java memory used in the Old generation.
Shown as byte
logstash.jvm.mem.pools.young.peak_used_in_bytes
(gauge)
The peak Java memory used in the Young space.
Shown as byte
logstash.jvm.mem.pools.young.used_in_bytes
(gauge)
The Java memory used in the Young generation.
Shown as byte
logstash.jvm.mem.pools.young.peak_max_in_bytes
(gauge)
The peak maximum Java memory used in the Young generation.
Shown as byte
logstash.jvm.mem.pools.young.max_in_bytes
(gauge)
The maximum Java memory used in the Young generation.
Shown as byte
logstash.jvm.mem.pools.young.committed_in_bytes
(gauge)
The commited Java memory used in the Young generation.
Shown as byte
logstash.jvm.gc.collectors.old.collection_time_in_millis
(gauge)
Garbage collection time spent in the Old generation.
Shown as millisecond
logstash.jvm.gc.collectors.old.collection_count
(gauge)
Garbage collection count in the Old generation.
logstash.jvm.gc.collectors.young.collection_time_in_millis
(gauge)
Garbage collection time spent in the Young generation.
Shown as millisecond
logstash.jvm.gc.collectors.young.collection_count
(gauge)
Garbage collection time spent in the Young generation.
logstash.reloads.successes
(gauge)
Number of successful configuration reloads.
logstash.reloads.failures
(gauge)
Number of failed configuration reloads.
logstash.pipeline.events.duration_in_millis
(gauge)
Events duration in the pipeline.
Shown as millisecond
logstash.pipeline.events.in
(gauge)
Number of events into the pipeline.
logstash.pipeline.events.out
(gauge)
Number of events out from the pipeline.
logstash.pipeline.events.filtered
(gauge)
Number of events filtered.
logstash.pipeline.reloads.successes
(gauge)
Number of successful pipeline reloads.
logstash.pipeline.reloads.failures
(gauge)
Number of failed pipeline reloads.
logstash.pipeline.plugins.inputs.events.out
(gauge)
Number of events out from the input plugin.
logstash.pipeline.plugins.inputs.events.queue_push_duration_in_millis
(gauge)
Duration of queue push in the input plugin.
Shown as millisecond
logstash.pipeline.plugins.outputs.events.in
(gauge)
Number of events into the output plugin.
logstash.pipeline.plugins.outputs.events.out
(gauge)
Number of events out from the output plugin.
logstash.pipeline.plugins.outputs.events.duration_in_millis
(gauge)
Duration of events in the output plugin.
Shown as millisecond
logstash.pipeline.plugins.filters.events.in
(gauge)
Number of events into the filter plugin.
logstash.pipeline.plugins.filters.events.out
(gauge)
Number of events out from the filter plugin.
logstash.pipeline.plugins.filters.events.duration_in_millis
(gauge)
Duration of events in the filter plugin.
Shown as millisecond

Événements

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

Checks de service

logstash.can_connect :

Renvoie Critical si l’Agent n’est pas capable de se connecter à Logstash pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

Dépannage

Connexion impossible de l’Agent

    logstash
    -------
      - instance #0 [ERROR]: "('Connection aborted.', error(111, 'Connection refused'))"
      - Collected 0 metrics, 0 events & 1 service check

Vérifiez que le paramètre url dans conf.yaml est correctement configuré.

Si vous avez besoin d’aide supplémentaire, contactez l’assistance Datadog.


Mistake in the docs? Feel free to contribute!