Les Plugins de Sortie dans Logstash : Configuration et Exemples

Introduction aux Plugins de Sortie

Dans Logstash, les plugins de sortie sont utilisés après les étapes d'entrée et de filtrage pour diriger les données traitées vers des destinations spécifiques. Ils fonctionnent comme des conduits pour envoyer les événements vers des systèmes de stockage, de visualisation ou d'autres applications.

Sortie vers la Console avec stdout

Le plugin stdout permet d'afficher les événements sur la console, utile pour le débogage et les tests. Le codec contrôle le format de sortie.


input {
    stdin {}
}
output {
    stdout {
        codec => json_lines
    }
}

Ici, le codec json_lines formate chaque événement en une ligne JSON. D'autres codecs comme rubydebgu ou plain peuvent être utilisés selon les besoins.

Enregistrement dans un Fichier

Pour centraliser les données de plusieurs serveurs dans des fichiers, le plugin file est idéal. Il permet d'organiser les journaux par date et hôte.


input {
    stdin {}
}
output {
    file {
        path => "/var/log/logstash/exports/%{+yyyy-MM-dd}/records-%{host}.log"
        codec => line {
            format => "%{message}"
        }
        gzip => true
    }
}

Le chemin inclut des variables dynamiques pour la date et l'hôte, et la compression gzip réduit l'espace de stockage.

Intégration avec Elasticsearch

Logstash peut envoyer directement les données à Elasticsearch pour l'indexation et l'analyse. Une configuration appropriée optimise les performances.


input {
    stdin {}
}
output {
    elasticsearch {
        hosts => ["es-node1:9200", "es-node2:9200"]
        index => "app-logs-%{+YYYY.MM.dd}"
        flush_size => 15000
        idle_flush_time => 8
        user => "logstash_user"
        password => "secure_pass"
    }
}

L'index est nommé avec la date pour permettre des requêtes temporelles. Les paramètres flush_size et idle_flush_time gèrent l'envoi par lots pour minimsier les requêtes réseau.

Stockage dans Redis comme File d'Attente

Redis peut être utilisé comme tampon pour les événements, facilitant le traitement asynchrone. Le plugin redis offre des options d'optimisation.


input {
    stdin {}
}
output {
    redis {
        host => "redis-server"
        data_type => "list"
        db => 1
        port => 6379
        key => "queue-events-%{+yyyy-MM-dd}"
    }
}

Optimisations clés pour Redis :

  • Traitement par lots : Activez batch pour envoyer plusieurs événements via une seule commande rpush. Ajustez batch_events (nombre d'événements par lot) et batch_timeout (délai maximum).
  • Protection contre la congestion : Utilisez congestion_interval pour vérifier régulièrement la taille de la liste, et congestion_threshold pour limiter le nombre d'éléments, évitant ainsi les surcharges mémoire.

Étiquettes: Logstash plugin-de-sortie Elasticsearch Redis fichier

Publié le 6 juillet à 03h10