24 novembre 2015 Sorties

Beats 1.0.0

Par Monica Sarbu

Lorsque Packetbeat a rejoint Elastic il y a environ 6 mois, nous souhaitions créer un modèle de transports légers, que nous appelons les Beats, pour capturer toutes sortes de données opérationnelles sur vos serveurs et les envoyer directement vers Logstash et Elasticsearch. Aujourd'hui, nous avons le plaisir de vous présenter la première version de production de la plateforme Beats, et les premiers Beats officiellement pris en charge : Topbeat, Filebeat et Packetbeat.

La plateforme Beats

Notre objectif était de concevoir une plateforme qui permette à notre communauté de créer facilement de nouveaux Beats. C'est pourquoi nous avons développé libbeat, la bibliothèque prête à l'emploi, qui contient les éléments communs de tous les Beats pour s'acquitter de tâches fréquentes, comme insérer des données par lot dans Elasticsearch, envoyer des événements de façon sécurisée vers Logstash, répartir la charge des événements sur plusieurs nœuds Logstash et Elasticsearch ou envoyer les événements en mode synchrone et asynchrone. La plateforme libbeat comprend également des mécanismes qui détectent la surcharge de serveurs en aval ou la congestion du réseau intermédiaire, et réduisent le débit de transfert en conséquence.

beats platform.png

En d'autres termes, libbeat vous permet d'envoyer les événements vers Logstash et Elasticsearch de façon sécurisée et efficace. En outre, vous pouvez aussi gérer la configuration, les options de ligne de commande et les traces. Vous n'avez donc qu'à vous concentrer sur les données qui vous intéressent pendant la création de votre Beat. Les autres éléments de votre plateforme analytique sont pris en charge par libbeat, Logstash, Elasticsearch et Kibana.

Nous avons constaté avec joie qu'en dehors de nos trois Beats officiels, la communauté a commencé à créer les siens, notamment Dockerbeat, Pingbeat, UWSGIbeat and Nginxbeat. Si cela vous voulez aussi vous y mettre, voici un guide du développeur.

Topbeat

À l'origine, Topbeat a été conçu comme simple Beat qui puisse être utilisé comme point de départ par d'autres développeurs. Au final, sa proposition de valeur simple a beaucoup plu. Topbeat est un peu comme une commande générale distribuée sur tous vos serveurs. Au lieu d'imprimer les statistiques à l'écran, Topbeat les envoie régulièrement vers Logstash et Elasticsearch. Cela signifie que les données du système entier sont centralisées, comme la charge système, la mémoire utilisée/libre ou l'utilisation du disque, ainsi que les statistiques par processus (voir la liste complète des statistiques). Plus besoin de se connecter en SSH pour identifier les processus qui consomment le plus de RAM.

Topbeat prend en charge Linux, mais aussi OS X et Windows. Vous pouvez donc l'installer sur chaque serveur de votre réseau et retrouver les mêmes données quel que soit votre système d'exploitation.

Dès que Topbeat est installé sur votre serveur, celui-ci envoie des statistiques de façon régulière dans un point central d'Elasticsearch. Si vous exécutez Kibana en plus d'Elasticsearch, vous pouvez alors visualiser vos données et configurer vos propres tableaux de bord grâce aux widgets suivants : charge système, vue d'ensemble des serveurs, utilisation de la mémoire ou du processeur au sein du système, processus principaux, utilisation de la mémoire ou du processeur par processus, vue d'ensemble de l'utilisation du disque et utilisation du disque.

Screen Shot 2015-11-22 at 11.41.24 PM.png

Filebeat

Filebeat est le successeur de Logstash Forwarder, un outil léger de transfert de log utilisé en production par de nombreuses entreprises depuis des années. Logstash-Forwarder est une application Go simple et légère qui transfère tous les logs de votre serveur vers un endroit centralisé pour un traitement plus approfondi.

Logstash-Forwarder a été conçu par Jordan Sissel, le créateur de Logstash, puis maintenu par la suite par les développeurs de Logstash. Malheureusement cet outil n'arrivait pas à tenir le rythme des améliorations et correctifs comparé à Logstash. En raison des similitudes avec les Beats, nous avons décidé que la meilleure solution était de transformer Logstash Forwarder en un Beat. Nous avons donc pris le code de Forwarder, nous l'avons coupé en morceaux, remplacé ses éléments les plus obsolètes, ajouté des tests unitaires et assemblé le tout pour obtenir Filebeat.

La configuration de Filebeat est simple. Une fois qu'il est installé sur vos serveurs, il vous suffit de configurer les chemins que Filebeat doit parcourir et Filebeat commencera à envoyer vos logs vers Elasticsearch via Logstash pour un traitement plus approfondi. Filebeat est intelligent et peut gérer la rotation des logs, les nouveaux noms de fichiers et l'indisponibilité temporaire du serveur en aval. Vous ne perdrez plus une ligne de log.

Si vous utilisez déjà Logstash Forwarder, veuillez suivre le guide de migration pour bien démarrer avec Filebeat.

Screen Shot 2015-11-23 at 11.03.28 AM.png

Packetbeat

Packetbeat est le tout premier Beat. Imaginez que vous vouliez surveiller et dépanner un système complexe distribué dans lequel chaque composant utilise différents langages de programmation, frameworks Web ou technologies de bases de données. Ces composants ont un seul point en commun : la communication de l'un à l'autre passe par le réseau, généralement via des protocoles standards comme HTTP pour les appels de l'API REST.

Packetbeat est comme un Wireshark distribué en temps réel qui relie la requête à la réponse dans une transaction et insère les données sur chaque transaction dans Elasticsearch.

Packetbeat vous donne de la visibilité sur votre application en étudiant la communication entre les serveurs de votre réseau. Cet outil fonctionne de manière passive en reniflant le trafic du réseau et n'interfère donc pas avec votre application.

Toute la puissance de Packetbeat réside dans sa nature open source : tout le monde peut ajouter une prise en charge de nouveaux protocoles, même des protocoles propriétaires. Au cours des derniers mois, la communauté a ajouté la prise en charge de MongoDB, DNS over UDP, et DNS over TCP et d'autres contributions de la communauté sont en cours. C'est toujours avec plaisir que nous aidons les contributeurs à ajouter leur code dans Packetbeat et nous avons récemment écrit un guide du développeurs pour les nouveaux protocoles.

packetbeat-statistics.png

La voie vers la GA

Vous souhaitez connaître toute l'histoire sur la version 1.0.0 ? Consultez les articles de blog précédents à propos des versions intermédiaires :


Un grand Merci à tous ceux qui ont contribué au code, ont signalé des problèmes ou ont essayé les Beats pendant la phase bêta. Démarrez votre expérience avec Beats 1.0.0 et dites-nous ce que vous en pensez sur le forum, Twitter, ou ouvrez un bug dans GitHub.