Input dédié - Logstash
Faites héberger un collecteur Logstash dédié par OVHcloud pour transformer vos logs avant leur ingestion.
Objectif
Logstash est un logiciel open source développé par Elastic. Grâce à ses fonctionnalités, il est possible d'envoyer des messages depuis plusieurs inputs vers différents types de sortie en utilisant une grande variété de codecs, tout en les traitant et en les transformant au passage. Vous pouvez en apprendre beaucoup plus sur le site officiel.
Ce guide va vous montrer comment déployer un Logstash personnalisé avec une configuration spécifique, et envoyer des logs depuis n'importe quelle source vers votre flux directement sur Logs Data Platform.
Prérequis
Si vous découvrez Logs Data Platform, il est vivement recommandé de suivre le tutoriel de démarrage rapide.
Les liens suivants peuvent vous aider à prendre une longueur d'avance sur Logstash afin de démarrer avec les bases :
- Qu'est-ce que Logstash ?
- Comment configurer le collecteur Logstash sur Logs Data Platform ?
- Qu'est-ce qui rend notre Logstash hébergé particulier ? Plugins disponibles, certificats SSL et plus encore.
Voici « Tout ce que vous devez savoir sur le collecteur Logstash sur Logs Data Platform » !
En pratique
Qu'est-ce que Logstash
Logstash est un pipeline de traitement de données qui vous permet de recevoir des informations depuis plusieurs sources, en les transformant si nécessaire avant de les envoyer vers une grande variété de logiciels. Dans le fichier de configuration, il y a trois parties principales à configurer :
- La partie Input : elle précise d'où proviennent vos logs. Par exemple, certains inputs peuvent attendre des logs et, dans certains cas, les inputs sont capables de les récupérer depuis une base de données.
- La partie Filter : elle précise comment Logstash doit analyser et transformer vos messages de logs.
- La partie Output : elle spécifie le format et leur destination.
Voici un petit exemple de fichier de configuration :
Il s'agit d'un des nombreux exemples de configuration que vous pouvez utiliser dans votre propre Logstash pour envoyer des logs de type syslog vers Logs Data Platform. De nombreux filtres et plugins sont disponibles dans Logstash, et la liste ne cesse de s'allonger ! Par exemple, en envoyant ce type de lignes dans ce Logstash :
Vous obtiendrez le résultat suivant dans votre flux sur Graylog :
Imaginons que vous ayez de nombreux hôtes et que vous souhaitiez envoyer toutes vos sorties syslog vers Logstash. Une façon de procéder consiste à placer un Logstash sur l'une de vos machines et à y envoyer tous les logs. Cela fonctionnera, mais que se passe-t-il si cet hôte tombe en panne ? Ou s'il n'est pas assez rapide ? Ou s'il n'est pas compatible avec Java ? Ne vous inquiétez pas, le meilleur atout de Logs Data Platform est que nous pouvons héberger votre Logstash pour vous. Nous vous permettons également de configurer l'input et le filtre comme vous le souhaitez, et vous pouvez même définir des Groks personnalisés. La section suivante vous explique comment procéder !
Héberger un collecteur Logstash sur Logs Data Platform
Le collecteur Logstash présente de nombreux avantages :
- La partie output du Logstash est automatiquement configurée par nos soins.
- Vous disposez de votre propre certificat pour activer le SSL. Ce certificat peut par exemple être utilisé pour ne faire confiance qu'aux inputs TCP de votre Logstash. Ce certificat et sa clé associée se trouvent aux emplacements suivants : /etc/ssl/private/server.crt pour le certificat et /etc/ssl/private/server.key pour la clé. L'autorité de certification (CA) utilisée pour créer ces inputs se trouve à l'emplacement suivant : /etc/ssl/private/ca.crt. Vous retrouverez cette CA SSL pour référence à la fin de ce document. Pour l'input http avec SSL activé, un keystore contenant la clé, le certificat et la CA au format PKCS12 est présent à l'emplacement suivant : /etc/ssl/private/keystore.jks, avec le mot de passe du keystore « changeit ».
- Enfin, nous garantissons que votre collecteur est toujours actif et disponible 24 h/24 et 7 j/7.
Pour héberger ce collecteur sur Logs Data Platform, vous devez le configurer dans le Manager de Logs Data Platform :
- Rendez-vous dans l'onglet Data-gathering tools et cliquez sur le bouton
Ajouter un outil de collecte. - Le Manager vous demandera alors de fournir un nom élégant et une description merveilleuse.
- Sélectionnez votre logiciel : sélectionnez Logstash 9.x.
- Renseignez le port principal de votre input. Nous devons savoir quel port vous allez utiliser dans la configuration de votre input. Nous mettrons 4000 pour l'instant. C'est également un paramètre que vous pourrez modifier ultérieurement.
- Si vous souhaitez restreindre Logstash à des adresses IP spécifiques, vous pouvez utiliser le champ Trusted Networks pour protéger vos instances par un pare-feu. Ajoutez chaque adresse IP ou sous-réseau que vous souhaitez autoriser, séparés par des virgules. Laissez ce champ vide pour autoriser n'importe quelle adresse IP à le contacter. Votre collecteur disposera d'une adresse IP publique ; vous pouvez utiliser cette fonctionnalité pour empêcher que l'on vous envoie de fausses informations.
- Sélectionnez l'un de vos flux pour rattacher ce collecteur à ce flux. Cela signifie que chaque message sortant de ce collecteur est automatiquement routé vers le flux.
- Enfin, sélectionnez le nombre d'instances dont vous aurez besoin pour gérer votre charge. Nous recommandons d'avoir au moins deux instances afin de garantir la haute disponibilité de votre Logstash. Cependant, certains cas d'usage nécessitent de limiter le nombre d'instances à 1.
- Notez que vous pouvez également choisir de faire évoluer automatiquement le nombre d'instances. Dans ce cas, vous devez sélectionner un nombre minimum et un nombre maximum d'instances. Votre input démarrera alors avec le nombre minimum d'instances sélectionné. Si ces instances font face à une charge importante pendant un certain temps (plus d'une minute), votre input montera automatiquement en charge — une nouvelle instance à la fois — jusqu'à atteindre le nombre maximum d'instances sélectionné. À l'inverse, si la charge diminue, ce nombre d'instances redescendra jusqu'à atteindre le nombre minimum d'instances.
Le moteur ne vous permettra pas de le démarrer si vous ne le configurez pas correctement.
Configuration du collecteur Logstash
Cliquez sur le bouton Suivant pour afficher la page de configuration de Logstash comme suit :
Cette page comporte 3 sections :
- La section Input, où vous placez la partie Input de votre fichier de configuration.
- La section Filter, où vous placez la partie filter.
- La section des motifs grok, où vous pouvez créer vos propres motifs grok.
Notez que, contrairement à un fichier de configuration classique, vous n'avez pas ici à entourer la grammaire de configuration de l'input.
Nous le ferons automatiquement pour vous.
Si l'on reprend l'exemple de configuration ci-dessus et que l'on active le chiffrement SSL, on obtient la configuration suivante pour la section Input :
Comme vous pouvez le constater, il s'agit à peu près de la même configuration que précédemment. La configuration SSL nécessite 5 paramètres supplémentaires :
- ssl_enabled : permet d'activer le SSL. Doit être défini sur
true. - ssl_client_authentication : désactive le processus de vérification du certificat client, qui nécessite un certificat de confiance côté client.
- ssl_certificate : l'emplacement du certificat serveur généré automatiquement.
- ssl_key : l'emplacement de la clé associée.
- ssl_extra_chain_certs : le tableau contenant le chemin du certificat de la CA.
Tous les inputs disposent de certificats SSL préconfigurés aux emplacements fixes utilisés dans la configuration ci-dessus. Et pour la partie filter, il vous suffit de copier-coller la configuration précédente.
La dernière section de la configuration est dédiée aux filtres Grok personnalisés. Si vous connaissez Grok, vous pouvez utiliser cette zone de texte pour créer vos propres motifs grok, que vous pourrez utiliser dans la section filter ci-dessus. C'est un usage avancé de Logstash. Rendez-vous à la fin du document pour trouver quelques liens de référence qui peuvent vous aider à utiliser cette fonctionnalité.
Pour valider les paramètres, vous devrez cliquer sur le bouton Tester la configuration. Après quelques calculs sophistiqués, une confirmation verte devrait s'afficher à l'écran.
Vous pouvez ensuite cliquer sur le bouton Terminer la configuration pour enregistrer votre configuration !
Démarrer l'input
Le démarrage de l'input se fait via le bouton Démarrer dans le menu ... à droite de votre input. Cliquez dessus pour déployer votre collecteur sur Logs Data Platform.
Informations utiles sur le collecteur
Une fois votre collecteur démarré, vous pouvez copier plusieurs informations dans votre presse-papiers.
- Le nom d'hôte
- L'IP publique
- Le certificat SSL
Le nom d'hôte se présente sous la forme suivante :
<your_cluster>-XXXXXXXXXXXXXXXXXXXXXXX.<your_cluster>.logs.ovh.com
Il s'agit d'une adresse de votre collecteur pour le cluster sur Logs Data Platform. Envoyez vos logs à cette adresse pour qu'ils soient traités par votre collecteur. Utilisez par exemple les lignes syslog précédentes pour tester vos collecteurs. Si vous vous rendez sur Graylog, vous retrouverez vos logs dans le flux rattaché, comme précédemment.
Informations complémentaires
Version de Logstash
La version hébergée par Logs Data Platform est la dernière version de Logstash 7 (7.8 à la date de juillet 2020). Bien entendu, nous effectuerons les mises à jour vers les nouvelles versions dès qu'elles seront disponibles.
Plugins Logstash
Pour votre information, voici la liste des plugins Logstash que nous prenons en charge. Bien entendu, nous accueillerons avec plaisir toute suggestion de plugins supplémentaires. N'hésitez pas à nous contacter sur le hub communautaire.
Plugins d'input
Plugin input gelf
Nous avons corrigé l'input gelf pour prendre en charge le TCP+TLS. Exemple de section Input :
Plugins filter
Plugins codec
Les plugins suivants sont désactivés pour des raisons de sécurité :
Certificat de CA SSL
Le certificat de CA que vous pouvez utiliser pour vérifier l'autorité présentée par nos collecteurs hébergés peut être copié depuis la page d'accueil du Manager de Logs Data Platform.
Sortie console
Enfin, si vous avez des doutes sur la façon dont votre Logstash traite vos logs, il peut être intéressant de suivre les messages provenant de votre collecteur.
Pour cela, rendez-vous sur la page dédiée en cliquant sur le bouton Sortie console.
Ressources utiles
Voici quelques liens pour vous aider à aller plus loin avec Logstash
- Documentation officielle de Logstash
- Documentation des filtres Grok
- Logstash + Groks + Filebeat : une combinaison efficace
- Grok Constructor
- Un éditeur d'expressions régulières Ruby
Vous savez maintenant l'essentiel sur le collecteur Logstash de Logs Data Platform.
Aller plus loin
- Pour bien démarrer : Démarrage rapide
- Documentation : Guides
- Hub communautaire : communauté d'utilisateurs
- Créer un compte : Essayez !