Splunk

Splunk est une solution de collecte et l'analyse de grandes quantités de logs en provenance d'une infrastructure (serveurs, équipements réseaux, applications…). Elle permet l'investigation et le reporting en temps réel et peut être utilisée comme SIEM, à l'instar de la stack ELK.

Fonctionnement de Splunk

Architecture

Splunk a 3 modes de déploiement : local (sur une machine unique), on premise, et cloud. Il est composé d'un ou plusieurs hôtes avec des rôles différents, pouvant être redondés et mis en cluster pour former une architecture distribuée.

Quel que soit le rôle des hôtes, sous Linux, Splunk est installé par défaut dans le répertoire /opt/splunk.

Splunk collecte les évènements au sein d'une infrastructure par le biais de forwarders.

Chaque évènement contient des données qui sont parsées et indexées par les indexeurs. Un évènement correspond à une entrée dans un index que l'on enrichit avec des métadonnées. Pour chaque index, les données sont stockées physiquement dans des buckets (stockage objet, sous forme de fichiers non structurés). Ce système de buckets permet d'optimiser le traitement et la recherche des données.

Le répertoire contenant les index est /opt/splunk/var/lib/splunk. Chaque sous-répertoire de ce dossier correspond à un index et contient les répertoires correspondants aux 5 buckets par défaut qu'utilise Splunk :

  • Hot (hotPath) : Stocke les évènements en cours de traitement (fichiers dans /opt/splunk/var/lib/splunk/defaultdb/db/*)
  • Warm (warmPath) : Stocke les évènements récents qui n'ont plus besoin d'être modifiés, utilisés en lecture (fichiers dans /opt/splunk/var/lib/splunk/%index%/db/*)
  • Cold (coldpath) : Stocke les évènements moins récents qui n'ont plus besoin d'être modifiés, susceptibles d'être recherchés (fichiers dans /opt/splunk/var/lib/splunk/%index%/colddb/*)
  • Frozen (frozenpPath) : Stocke les évènements archivés (fichiers stockés dans un répertoire pré-défini à l'installation)
  • Thawed (thawedPath) : Stocke les évènements “décongelés” depuis le bucket frozen (fichiers dans /opt/splunk/var/lib/splunk/%index%/thaweddb/*)

Une fois les données indexées, elles peuvent être réutilisées par les applications. Ce sont les hôtes avec le rôle “Tête de recherche” (“Search head”) qui effectuent les recherches, corrèlent les données, et génèrent les rapports.

Pour terminer, le composant “Deployer” permet la gestion de la configuration des têtes de recherches.

Voici à quoi ressemble schématiquement une architecture de traitement Splunk distribuée :

Chaîne de traitement de données Splunk distribuée

Licences / Modèle tarifaire

Il existe 7 licences différentes pour Splunk et ses composants :

  • Standard : Licence classique de Splunk, dont le tarif dépend du dimensionnement de l'architecture.
  • Entreprise Trial : Licence d'essai de Splunk, valable 60 jours et limitée à 500Mo d'évènements par jour. Elle est personnalisée en fonction du client afin de lui permettre de tester Splunk en conditions réelles (PoC).
  • Free : Licence gratuite de Splunk limitée à 500Mo d'évènements par jour, offrant le minimum de fonctionnalités (pas d'authentification, pas d'alerte, pas d'architecture distribuée).
  • Dev/Tests : Licence reservée aux usages de pré-production/hors production.
  • Industrial IoT : Licence spécialisée pour l'IoT.
  • Forwarder : Licence pour les forwarders (gratuite).

:!: En cas de violation de licence, Splunk ne désactive pas les recherches mais alerte les utilisateurs.

Les licences Splunk sont gérées par un maître de licences au sein de l'architecture, sous forme de pools de licences que l'on peut attribuer à chaque composant (indexeurs, têtes de recherches, forwarder…) en fonction du besoin.

:!: Splunk déconseille d'attribuer les licences des forwarders via les pools de licences.

Fonctionnement des groupes de licences

Apps & extensions

Les applications permettent d'exploiter les données collectées et analysées par Splunk. Elles comportent une interface graphique et proposent des fonctionnalités supplémentaires de visualisation, d'analyse, et de reporting des données.

Les extensions sont des modules spécifiques aux applications qui leur permettent d'interagir avec les données entrantes, elles n'ont pas d'interface graphique.

Différences entre les applications et les extensions Splunk

Les applications et extensions pour Splunk sont généralement gratuites, en dehors de quelques unes qui nécessitent une licence premium.

Procédures & Documentation