Apprendre à utiliser Splunk et créer des sources de données.

Dans ce deuxième tutoriel consacré à Splunk, nous allons découvrir un peu plus son interface mais aussi et surtout créer des sources de données pour l’alimenter. Nous allons utiliser des Forwarders.

Splunk Home

Astuce !!! Tout d’abord je vous conseille de lire le premier tutoriel consacré à Splunk, si vous ne connaissez pas ce produit : Oseras-tu installer Splunk.

Avant de pouvoir utiliser Splunk, il est nécessaire de comprendre quelques concepts importants du logiciel. La première fois que vous vous connectez à Splunk, vous arriverez sur cette page d’accueil.

Créer des sources de données dans Splunk

L’écran d’accueil se compose des éléments suivants :

  • Barre de navigation, comprend des liens vers le profil de l’utilisateur et les messages, les paramètres et les pages d’aide.
  • Menu des applications, liste des applications installées sur votre instance Splunk que vous avez la permission de visualiser. Dans notre exemple, seule l’application Search & Reporting est affichée.
  • Explorer Splunk Enterprise, le panneau qui vous aide à démarrer avec Splunk. Vous pouvez faire un tour du produit, ajouter des données à Splunk, accéder aux applications et à la documentation de Splunk.
  • Home Dashboard, un panneau où vous pouvez plus tard ajouter votre propre tableau de bord personnalisé.

Créer des sources de données dans Splunk (Data Sources)

Pour travailler avec Splunk, nous devons y ajouter des données. Splunk peut lire les données de machines à partir de plusieurs sources, telles que :

  • Fichiers et répertoires, Splunk peut surveiller des fichiers (tels que les fichiers de log) ou des répertoires spécifiques.
  • Les événements réseau, Splunk peut indexer des données distantes à partir de n’importe quel port réseau et des événements SNMP à partir d’appareils distants.
  • Sources Windows, Splunk peut indexer de nombreuses entrées spécifiques à Windows, telles que le journal des événements de Windows, le registre Windows, WMI et Active Directory.
  • Autres, Splunk prend également en charge d’autres sources d’entrée, telles que les files d’attente FIFO et les entrées scriptes pour obtenir des données à partir d’API et d’autres interfaces de données distantes.

Lorsque vous ajoutez des données à Splunk, il indexe les données et crée des données d’événements. Les unités individuelles de ces données sont appelées des événements. Les données que vous ajoutez peuvent se trouver sur le même ordinateur que celui de Splunk, ou sur une autre machine.

Attention !!! Splunk stocke les données qu’il a indexées et ses index dans des fichiers plats (fichiers dans un répertoire), et ne nécessite aucun logiciel de base de données.

Qu’est-ce qu’un index ?

Un index dans Splunk est simplement un dépôt pour les données. Il est stocké sur un indexeur, qui est une instance de Splunk configurée pour indexer les données locales et distantes. Les données indexées peuvent ensuite être recherchées par le biais d’une application de recherche.

Lorsque l’indexeur indexe les données, il crée un ensemble de fichiers dans des ensembles de répertoires (appelés « buckets »). Les fichiers sont organisés par âge. Chaque index occupe son propre répertoire sous $SPLUNK_HOME/var/lib/splunk (/opt/splunk/var/lib/splunk). Par exemple, voici les fichiers de l’index appelé _internaldb :

Créer des sources de données dans Splunk

Les index peuvent être créés avec Splunk Web, la ligne de commande (CLI), ou en modifiant manuellement le fichier indexes.conf.

Attention !!! Par défaut, Splunk place toutes les données de l’utilisateur dans un seul index préconfiguré appelé main. Bien entendu, vous pouvez créer vos propres index pour des raisons de sécurité et de performance.

Créer un index

Comme nous l’avons déjà mentionné, les index peuvent être créés avec Splunk Web, l’interface de ligne de commande (CLI), ou en modifiant manuellement le fichier indexes.conf. Bien entendu, la façon la plus simple de le faire est d’utiliser Splunk Web.

Voici les étapes à suivre :

Créer un index dans Splunk

Connectez-vous à Splunk Web avec un compte administratif et allez dans Paramètres > Index.

Créer un index dans Splunk

La page des index devrait s’ouvrir. Cliquez sur Nouvel index.

Créer un index dans Splunk

La page Nouvel index devrait s’ouvrir. Vous devez fournir les informations suivantes :

  • Nom de l’index, le nom de l’index. Il ne peut contenir que des chiffres, des lettres minuscules, des traits de soulignement et des tirets et ne peut pas commencer par un trait de soulignement ou un trait d’union.
  • Chemin d’origine, spécifie le chemin qui va contenir les données, laisser la valeur par défaut sauf avis contraire ($SPLUNK_DB/INDEX_NAME/db).
  • Chemin pour la base colddb, spécifie le chemin pour les index ($SPLUNK_DB/INDEX_NAME/colddb)
  • Chemin pour la base thaweddb, spécifie le chemin pour les index dézippés ou archivés pour réutilisation. ($SPLUNK_DB/INDEX_NAME/thaweddb)
  • Taille maximale de l’index entier – la taille maximale de l’index. 500 000 Mo par défaut.
  • Taille maximale du Bucket, taille cible maximale des buckets. Entrer ‘auto_high_volume’ pour les index volumineux.
  • Frozen Path, chemin d’archive pour buckets gelés. À paramétrer si vous souhaitez que Splunk archive automatiquement les buckets gelés.
  • App – l’application pour l’index.
Info !!! Splunk Enterprise stocke les données indexées dans des « buckets », qui sont des répertoires contenant à la fois les données et les fichiers d’index dans les données. Un index se compose généralement de plusieurs compartiments, organisés par âge des données.

Qu’est-ce qu’un forwarder ?

Le moyen le plus efficace de collecter des données à partir d’une machine distante est d’installer des redirecteurs universels (Universal Forwarders) sur les hôtes distants. Un Universal Forwarders est une version dédiée et légère de Splunk qui ne contient que les composants essentiels nécessaires à l’envoi de données. Il est similaire au serveur Splunk et possède de nombreuses caractéristiques similaires, mais il ne contient pas de web Splunk et n’est pas livré avec l’exécutable et les bibliothèques Python.

Les forwarder sont configurés pour consommer les données et les transmettre aux indexeurs Splunk pour traitement. Ils peuvent traiter exactement les mêmes types de données et peuvent les consommer de la même manière que n’importe quelle instance Splunk, à une différence près : ils n’indexent pas les données elles-mêmes. Ils traitent les données et les transmettent à un indexeur Splunk, qui se charge ensuite de l’indexation et de la recherche.

Dans un déploiement Splunk typique, les forwarder sont les principaux transmetteurs de données. Par exemple, si vous avez un certain nombre de serveurs web générant des données que vous souhaitez pouvoir rechercher de manière centralisée, vous pouvez installer un indexeur Splunk et ensuite installer des forwarders sur tous les serveurs web. Ces derniers peuvent alors être configurés pour envoyer les journaux à l’indexeur, qui les stockera et les rendra disponibles pour la recherche.

Configurer un receiver

Pour collecter les journaux des machines distantes, vous devez configurer à la fois un récepteur (receiver) et un expéditeur (forwarder). Le récepteur est l’instance Splunk qui recevra les données.

Configurer un receiver dans Splunk

Vous pouvez utiliser le Web Splunk pour configurer une instance Splunk qui servira de récepteur. Connectez-vous à Splunk en utilisant le compte administratif et allez dans Paramètres > Transmission et réception.

Configurer un receiver dans Splunk

Cliquez sur Ajouter nouveau sous la section Réception des données.

Indiquez le port TCP sur lequel vous voulez que le récepteur écoute. Le port généralement utilisé est 9997 :

Configurer un receiver dans Splunk

Attention !!! Selon la version de Splunk, vous devrez peut-être redémarrer Splunk pour appliquer les changements.

Configurer un receiver dans Splunk

Vous pouvez paramétrer plusieurs ports d’écoutes en fonction de vos besoins.

Installation du Splunk forwarder sur Windows.

Pour installer un Splunk forwarder, vous devez d’abord le télécharger. Allez sur https://www.splunk.com/en_us/download/universal-forwarder.html et choisissez le forwarder correspondant à votre système d’exploitation (des version 32 ou 64 bits sont disponibles pour Windows)

Dans cet exemple, nous allons installer un forwarder Splunk sur Windows 10. Démarrez l’installation en double-cliquant sur le fichier d’installation. Vous devriez être accueilli par la page d’installation. Ici, vous pouvez accepter les options par défaut ou personnaliser les options.

Installation du Splunk forwarder sur Windows.

Création d’un compte local Administrateur pour exécuter Splunk Forwarder.

Installation du Splunk forwarder sur Windows.

Par défaut, le forwarder universel sera installé dans C:\Program Files\SplunkUniversalForwarder\, utilisera un compte système local, et collectera les journaux d’événements Windows de l’application, du système et de la sécurité :

Installation du Splunk forwarder sur Windows.

Ensuite, vous devez entrer le nom d’hôte ou l’adresse IP et le port de gestion de votre serveur de déploiement (le port de gestion par défaut est 8089). Le serveur de déploiement peut être utilisé pour transmettre les mises à jour de configuration au transporteur universel. Notez qu’il s’agit d’une étape facultative. Si vous la sautez, vous devez entrer un indexeur de réception (receiver) à l’étape suivante.

Installation du Splunk forwarder sur Windows.

Une fois l’installation terminée, le forwarder universel devrait démarrer automatiquement.

Installation du Splunk forwarder sur Windows.

Surveiller les journaux sur un Windows distant avec Splunk.

Si vous avez installé l’universal forwarder sur votre Windows, cela va être très simple.

Surveiller les journaux sur un Windows distant avec Splunk

Allez dans Paramètres -> Données -> Entrée de données -> Entrées forwardées -> Logs d’évènements Windows.

Info !!! Splunk permet de surveiller d’innombrable indicateurs Windows (Des fichiers, des répertoires, des données de performances, scripts, des ports, ….)

Surveiller les journaux sur un Windows distant avec Splunk

Puis cliquer sur Nouveau log d’évènements Windows distants.

Surveiller les journaux sur un Windows distant avec Splunk

A cette étape il est important de bien comprendre, ce qu’est une classe de serveur.

Une classe de serveur associe un groupe de clients de déploiement à une ou plusieurs applications de déploiement. En créant une classe de serveur, vous indiquez au serveur de déploiement qu’un ensemble de clients doit recevoir des mises à jour sous la forme d’un ensemble d’applications.

Un groupe de clients peut être basé sur une grande variété de critères, tels que le type de machine, le système d’exploitation, la zone géographique ou le type d’application.

Un client peut appartenir à plusieurs classes de serveurs. Par exemple, un Windows situé à Kelowna et fournissant des informations à l’équipe d’hébergement web peut appartenir à trois classes de serveurs : « Canada », « Windows » et « Web_host » par exemple. Ce diagramme montre comment les clients peuvent appartenir à plusieurs classes de serveurs :

Classe de serveur dans Splunk

Dans cet exemple, chaque client de déploiement est un transitaire Splunk Enterprise qui appartient à deux classes de serveurs, l’une pour son système d’exploitation et l’autre pour sa situation géographique. Le serveur de déploiement tient à jour la liste des classes de serveurs et utilise ces classes de serveurs pour déterminer le contenu à distribuer à chaque client.

Pour notre tutoriel, j’ai créé un Server Classes « Test-Windows » qui répertorie toutes mes machines Windows.

Cliquer sur Nouveau, puis sélectionner vos machines qui vont aller dans cette classe et enfin nommer là. Vous pouvez retrouver vos classes en cliquant sur Existant.

Cliquer sur Suivant pour continuer la configuration.

Surveiller les journaux sur un Windows distant avec Splunk

Sélectionner, les fichiers journaux que vous souhaitez analyser. Puis cliquer sur Suivant.

Surveiller les journaux sur un Windows distant avec Splunk

Sélectionner votre index de stockage des données. Vous pouvez en créer autant que vous souhaitez et organiser vos données à analyser. On pourrait imaginer un index pour les Windows, Linux, Switchs, Firewall, …

Surveiller les journaux sur un Windows distant avec Splunk

Cliquer sur Soumettre.

Visualisation des logs Journaux de Windows dans Splunk

Les premiers logs arrivent dans le champ recherche.

Créer une entrée pour écouter un port UDP de type Syslog.

Dans cet exemple, je vais vous montrer comment renvoyer les logs vers splunk. Dans ce cas, je vais renvoyer les logs d’un Palo-Alto vers Splunk.

Aller dans Paramètres -> Données -> Entrée de Données -> Entrées Locales.

Créer une entrée pour écouter un port UDP de type Syslog.

Sur la ligne UDP, cliquer sur Ajouter nouveau.

Créer une entrée pour écouter un port UDP de type Syslog.

Il faut saisir ici, les paramètres que vous avez rentré sur votre équipement. A savoir si vous utilisez Syslog UDP et le port 514. Cliquer sur Suivant.

Créer une entrée pour écouter un port UDP de type Syslog.

Nous allons maintenant paramétrer l’entrée. Pour cela vous allez devoir sélectionner une SourceType. Si elle n’existe pas dans la liste cliquer sur Nouveau. Dans cet exemple j’ai créé une étiquette Palo-Alto.

Dans Context de l’app, j’ai laissé la valeur par défaut Search & reporting (search).

Dans Hôte, idem j’ai laissé la valeur par défaut IP.

Dans Index, j’ai sélectionné, l’index que j’avais créé avant pour stocker les données de mes tests. Si vous souhaitez en créer un spécifique pour votre Firewall, cliquer sur Créer un nouvel Index.

Créer une entrée pour écouter un port UDP de type Syslog.

Le résumé de de vos paramètres d’entrée s’affiche.

Créer une entrée pour écouter un port UDP de type Syslog.

Cliquer sur Lancer la recherche, les logs doivent déjà arriver dans Splunk.

Créer une entrée pour écouter un port UDP de type Syslog.

Maintenant vous pouvez rediriger tous vos équipements vers cette entrée pour analyser les logs d’équipements réseau ou firewall par exemple.

Voilà vous avez créé vos premières redirections de logs dans Splunk. Mais il reste beaucoup à faire. Nous verrons l’organisation des données, les filtres, les tableaux de bords afin de faire ressortir les éléments importants de vos logs dans d’autres tutoriels.

signature manuelle Guillaume

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *