28 octobre 2015 Sorties

Lancement de Logstash 2.0.0

Par Suyog Rao

Nous sommes ravis d'annoncer le lancement aujourd'hui de Logstash 2.0.0 ! Cette version apporte de grands changements dans les fonctionnalités de certaines configurations, donc consultez notre log de changements pour plus de détails ou la nouvelle documentation sur les grands changements.

Vous pouvez aussi consulter nos anciens billets sur les modifications apportées à d'autres versions préliminaires de 2.0.0 :

Voici un récapitulatif des principaux changements dans 2.0.

Compatibilité avec Elasticsearch 2.0

Elasticsearch 2.0 est, de façon globale, disponible dès aujourd'hui, avec de nombreuses nouvelles fonctionnalités et améliorations. Dans cette version, Logstash 2.0 est compatible dès son installation. Les anciennes versions de Logstash utilisaient par défaut le nœud client Java pour communiquer avec Elasticsearch. La version 2.0 utilise par défaut le client HTTP. Cela offre aux utilisateurs une expérience sans accrocs pour récupérer leurs données, les enrichir, les stocker et les analyser avec Elasticsearch.

HTTP fait preuve d'une parité fonctionnelle avec les autres protocoles (nœud et transport), et il est à peine plus lent lorsqu'il est connecté à un seul client et pourtant bien plus simple à gérer et à utiliser. Lorsque vous utilisez le protocole HTTP, vous pouvez mettre à niveau les versions d'Elasticsearch sans passer par une mise à niveau systématique de Logstash. Pour plus d'informations (y compris les taux de performances) concernant le passage à HTTP par défaut, veuillez consulter le blog beta1.

Nous continuerons de prendre en charge les autres protocoles (nœudtransport), mais le plugin permettant de les utiliser nécessite une installation manuelle :

bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java<br>


Matrice de compatibilités

Le tableau ci-dessous détaille les compatibilités de Logstash avec les versions Elasticsearch.

compat_matrix.png


Compatibilité avec Shield 2.0

Cette version est compatible avec la version Elastic Shield 2.0. Pour le protocole HTTP, aucun plugin supplémentaire n'est nécessaire. Veuillez suivre la documentation décrite ici. Pour le protocole de transport, un plugin distinct doit être installé pour permettre l'intégration avec Shield 2.0 et au-delà :

bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java_shield


Amélioration des performances

Cette version s'accompagne aussi de l'amélioration des performances dans de nombreux domaines, pour que vous puissiez traiter vos données plus rapidement avec Logstash. Voici quelques exemples :

  • UserAgent et Filtre GeoIP : Dans le cas de ces deux filtres, nous avons optimisé les recherches en ajoutant un cache LRU. Celui-ci optimise le fait que les IP et agents utilisateurs couramment utilisés dans les requêtes Web apparaissent souvent dans une séquence regroupée. Dans le cas du filtre UserAgent, nous avons constaté une amélioration multipliée par environ 3,7 dans notre échantillon de groupe de données. Pour GeoIP, les performances, par rapport à l'ancienne version, ont été multipliées par 1,69.
  • Traitement JSON : Nous avons mis à jour une nouvelle version de JrJackson, c'est-à-dire la bibliothèque JSON de sérialisation/désérialisation utilisée dans Logstash. Outre les correctifs, ceci offre de bons boosts de performance lors des interactions avec JSON.
  • De meilleures valeurs par défaut pour Filter Worker : Avant cette version, le paramètrefilter_worker avait une valeur par défaut de 1, soit un seul worker qui traitait les événements arrivant à l'étape du filtre. Désormais, la valeur par défaut du paramètrefilter_workers correspond à la moitié des cœurs CPU de la machine. En augmentant le nombre de workers, cela permet d'exécuter les filtres en parallèle, ce qui est crucial lors des traitements plus lourds, tels que les schémas grok complexes ou le filtre useragent.

Prise en charge de Filebeat

Au cas où vous l'auriez ratée, nous avons récemment lancé une version beta de Filebeat -- la nouvelle génération de Forwarder Logstash. Filebeat est un agent qui envoie les logs basés sur les fichiers vers Logstash pour traitement. La version 2.0.0 est prête à l'utilisation avec la version Filebeat 1.0.0-beta4, et emploie le plugin logstash-input-beats.

Gestion du processus d'arrêt

Dans les anciennes versions de Logstash, lorsque le processus d'arrêt était déclenché, un mécanisme d'Exceptions était utilisé pour signaler aux plugins de s'arrêter. Ce processus posait un problème car les plugins utilisent fréquemment du code tiers. Lorsque Logstash ne savait pas comment gérer les exceptions, on se retrouvait avec des comportements imprévisibles. Nous avons corrigé cela en ajoutant des appels API (par exemple stop) à chaque plugin pour informer de l'événement d'arrêt et permettre aux plugins de s'arrêter tout seuls. Pour cela, nous avons mis à jour plus de 200 plugins de l'écosystème Logstash pour les adapter aux nouvelles API ! Bien que l'arrêt de Logstash ne soit pas encore complètement corrigé -- des résultats ayant planté peuvent encore ralentir l'arrêt -- nous avons intégré tous les grands changements API dans la version 2.0 et nous pouvons enchaîner avec les correctifs dans les versions intermédiaires.

Développeurs de plugins : Si vous avez développé des plugins pour Logstash 1.5, veuillez consulter le document sur les grands changements, pour obtenir la liste des nouvelles API concernées par le processus d'arrêt. Aussi, le dépôt d'entrées exemples vous propose un exemple de code pour utiliser ce nouveau mécanisme d'arrêt.

Documentation

La documentation mise à jour pour 2.0 ainsi que tous les plugins est disponible ici. Veuillez consulter cette documentation pour tous les changements de configuration.

Mise à jour 2.0

Avant la mise à jour 2.0, veuillez consulter le guide de mise à jour disponible dans nos documents de référence.

Feedback

Un grand merci à nos utilisateurs et contributeurs qui ont fait de 2.0 un lancement réussi. Nous vous sommes reconnaissants de tout le testing des versions préliminaires et des nombreux correctifs qui ont contribué à cette version. Nous vous invitons à consulter notre Feuille de route pour suivre nos futures améliorations, versions, etc. Allez-y, testez le 2.0 aujourd'hui et dites-nous ce que vous en pensez !