Dans la partie 1 de cette série, nous avons étudié la philosophie de conception de Splunk Connect for Syslog (SC4S), ses objectifs et la nouvelle architecture de transport basée sur HEC. Cette fois, nous allons voir la configuration de pointe de SC4S et mettre en évidence les sections concernées de la documentation où trouver les informations nécessaires pour le déploiement dans un environnement de production.
La configuration de SC4S est modulaire et repose sur des modèles, et s’accompagne de sections de configuration de syslog-ng détaillées plus bas. Dans la version en conteneurs de SC4S, l’essentiel est complètement masqué pour l’administrateur et seul un point de montage local est exposé à des fins de configuration locale. Dans la version BYOE, la configuration complète peut être inspectée et modifiée.
Les sections ci-dessous décrivent la configuration de SC4S avec des sources de données « prêtes à l’emploi » et des modifications mineures.
Lorsqu’un message arrive sur le serveur syslog, il est soumis à un certain nombre d’opérations de filtrage visant à déterminer son traitement. Dans le cas de SC4S, l’objectif de ce traitement est d’envoyer le message à Splunk et à l’index approprié, correctement formaté et accompagné des métadonnées appropriées (sourcetype, horodatage, etc.). Quel que soit le format de source de données (généralement, mais pas toujours, défini simplement par le fournisseur), un ensemble de filtres est développé et encapsulé dans un « chemin de log ». Ces chemins de log définissent quels filtres (et dans quel ordre) sont appliqués à un message pour vérifier s’il appartient à une catégorie spécifique (ce qui, dans Splunk, correspond au sourcetype).
Une fois cette catégorie déterminée, des interpréteurs sont appliqués pour formater le message de manière appropriée, les métadonnées sont définies et l’ensemble est empaqueté dans un blob JSON puis envoyé à Splunk par lots via le point de terminaison HEC /event. L’utilisation du point de terminaison /event permet également d’envoyer des métadonnées enrichies supplémentaires et d’opérer une classification plus poussée. C’est notamment utile pour la PCI, le rayon géographique et bien d’autres scénarios d’utilisation.
Nous aborderons l’architecture en conteneurs dans la section suivante ; l’architecture « BYOE » est similaire et utilise les mêmes concepts que ceux décrits ici. En général, SC4S est configuré par un ensemble très spécifique de variables d’environnement qui sont encapsulées dans un fichier. Le contenu de ce fichier est documenté dans le guide « Bien démarrer » et les documents d’exécution qui l’accompagnent, et permet à l’administrateur de personnaliser une grande partie de SC4S sans une connaissance approfondie de la syntaxe de syslog-ng à proprement parler. Les étapes suivantes sont les tâches de configuration de pointe nécessaires à la configuration de SC4S :
SC4S n’a besoin que de quelques éléments pour démarrer :
Ceux-ci sont définis via des variables d’environnement dans le fichier détaillé ci-dessus. Si vous ne faites rien d’autre que de configurer ce qui précède, vous bénéficierez d’une véritable expérience « prête à l’emploi » de SC4S !
Le conteneur doit « connaître » certains éléments clés avant de démarrer. Il s’agit des informations suivantes :
Chacun de ces points doit être déterminé avant le démarrage du conteneur, et ils sont fixes quelle que soit la nature du trafic arrivant sur les ports d’écoute. Pour modifier la configuration syslog-ng sous-jacente afin de définir correctement ces paramètres, une opération de modélisation est réalisée pour que syslog-ng puisse démarrer avec les paramètres port/TLS appropriés en place, en s’appuyant sur les valeurs des variables d’environnement définies par l’administrateur. Ces variables d’environnement sont documentées dans la section « Configuration » des documents. Cette opération de modélisation est automatique pour les sources prêtes à l’emploi. Lors du développement de chemins de log personnalisés (ci-dessous), certains éléments du modèle sont exposés à l’administrateur et doivent être correctement pris en compte.
Vous pouvez également personnaliser SC4S en fonction d’autres caractéristiques des données entrantes en plus de la configuration du port source/TLS décrite ci-dessus. Les sources de données peuvent être classées (filtrées) grâce à la reconnaissance du nom d’hôte avec caractère générique (globs) et les blocs CIDR entrants, et elles peuvent être utilisées (comme la configuration du port source ci-dessus) comme mécanismes pour différencier un sourcetype particulier. Enfin, toutes les métadonnées peuvent être écrasées ou modifiées lors de cette étape de personnalisation.
La personnalisation du runtime se distingue des étapes de pré-instanciation ci-dessus pour une raison très importante : au lieu de modifier les variables d’environnement, un petit extrait du fichier de configuration syslog-ng sous-jacent est exposé à l’administrateur via un « point de montage » local sur le conteneur. Il faut veiller à fournir la syntaxe appropriée (qui sera vérifiée avant le démarrage) et c’est le seul endroit où une connaissance rudimentaire de la syntaxe du fichier de configuration syslog-ng est utile. Vous apprendrez rapidement que la meilleure approche pour réussir consiste à copier le code existant et à le modifier en fonction de vos besoins !
Une partie du point de montage local comprend une arborescence de répertoires complète qui permet de développer in situ des chemins de log et des filtres personnalisés (et accessibles depuis le conteneur via le point de montage local). Nous allons approfondir ce processus dans la partie 3 de cette série, mais en attendant, vous trouverez des exemples documentés dans le répertoire local pour vous aider dans ce processus, et la suite complète de filtres, réécritures et parseurs prédéfinis SC4S est disponible. Encore une fois, étudier les exemples et copier/coller (en suivant les conseils des commentaires) est la meilleure façon de réussir !
C’est aussi un domaine dans lequel nous sommes ravis d’aider la communauté. Demandez sur le canal Slack si un chemin de log ou un filtre a déjà été fait par la communauté, ou si un exemple similaire peut être adapté. Si vous développez un chemin de log personnalisé ou un filtre pour un dispositif répondant à un besoin général, nous vous encourageons à soumettre l’amélioration via le dépôt github en tant que PR pour qu’elle soit incluse dans une version future de SC4S.
Splunk Connect for Syslog est entièrement pris en charge par Splunk et publié comme logiciel open-source. Nous espérons motiver une communauté vivante qui nous apportera ses commentaires et des idées d’amélioration, et nous aidera à communiquer et surtout à créer des chemins de log (filtres) ! Nous encourageons une participation active via les dépôts git, où vous pourrez faire des requêtes formelles d’inclusion de fonctionnalités (en particulier de chemin de log/filtres), de suivi de bug, etc. Au fil du temps, il devrait y avoir de moins en moins de « filtres locaux » car les efforts de la communauté seront encapsulés dans les configurations prêtes à l’emploi des conteneurs.
De nombreuses ressources sont à votre disposition pour vous aider à réussir avec SC4S ! En plus du dépôt principal et de la documentation, vous pouvez également consulter :
Tous nos vœux de réussite avec SC4S. Impliquez-vous, essayez, posez des questions, proposez de nouvelles sources de données et rencontrez de nouvelles personnes !
*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.
La plateforme Splunk élimine les obstacles qui séparent les données de l'action, pour donner aux équipes d'observabilité, d'IT et de sécurité les moyens de préserver la sécurité, la résilience et le pouvoir d'innovation de leur organisation.
Fondée en 2003, Splunk est une entreprise internationale. Ses plus de 7 500 employés, les Splunkers, ont déjà obtenu plus de 1 020 brevets à ce jour, et ses solutions sont disponibles dans 21 régions du monde. Ouverte et extensible, la plateforme de données Splunk prend en charge les données de tous les environnements pour donner à toutes les équipes d'une entreprise une visibilité complète et contextualisée sur l'ensemble des interactions et des processus métier. Splunk, une base solide pour vos données.