2. Introduction
Splunk est considérée
comme étant l’une des plus
puissante plate-forme d’analyse des données
machine, des données que génèrent les machines
en grande quantité mais qui sont rarement utilisé
de façon efficace.
En effet les données machine (Machine data)
sont déjà d’une importance capitale dans le
domaine de la technologie et ne cesse de gagner
de l’influence dans le monde des affaires
(intelligence opérationnel).
3. Introduction
La meilleure façon de prendre conscience de la puissance
ainsi que de la polyvalence de splunk est de se pencher sur les
deux scénarios qui suivent :
1-le premier étant dans ‘’Data center ’’
2-le second étant dans le département marketing
4. Splunk à la rescousse dans un
Datacenter :
Imaginant le cas de
figure suivant : il est 2h du
matin. Le téléphone
sonne, votre patron
appelle, pour vous
informer que le site web
de la compagnie est
tombé en panne, et là
instantanément un torrent
de question vient vous
harceler l’esprit .
5. Splunk à la rescousse dans un
Datacenter : (suite)
vous avez déployé
splunk au préalable, il
suffit juste de le lancer
de votre emplacement
en se connectant à
votre serveur splunk, et
d’effectuer des
recherches sur vos
fichiers log rediriger
depuis vos serveurs :
web, base de données,
firewall, routeurs, etc.
6. Splunk Dans Le Département
Marketing:
Vous travaillez au sein du
service de promotion
d’une grande
compagnie, La semaine
dernière, les gars du
Datacenter ont installé un
nouveau tableau de
bord Splunk qui montre
(pour la dernière heure, le
jour et semaine) tous les
termes de recherche
utilisés pour trouver le site
web de la société.
7. Le fonctionnement de splunk
Vue qu’on utilise splunk pour
réponde à un certain
nombre de questions, qui
dépondent principalement
de notre contexte
professionnel on peut
rapidement se rendre
compte que cette tache
peut se deviser en trois
phases distinctes voir le
graphe :
Premièrement,
identifier les données
qui peuvent répondre
à votre question.
Troisièmement,
afficher la réponse
dans un rapport,
tableau interactif, ou
graphique pour la
rendre intelligible à un
grand nombre de
gens.
Deuxièmement,
transformer les
données en
résultats qui
peuvent répondre
à vos
question.
8. Le fonctionnement de splunk
Le cœur de métier de splunk est de rendre les données machines
utile pour les gens.
En effet le gens qui ont créé les systèmes tel que : (Serveur web,
load balencers, plateformes de médias sociaux, etc...),ils ont aussi
spécifié les informations que ces derniers doivent écrire au sein des
fichiers log quand il sont au en train de s’exécutées.
Exemple (d’output dans un fichier log) :
Action: ticked s:57, m:05, h:10, d:23, mo:03, y:2011
Action: ticked s:58, m:05, h:10, d:23, mo:03, y:2011
Action: ticked s:59, m:05, h:10, d:23, mo:03, y:2011
Action: ticked s:00, m:06, h:10, d:23, mo:03, y:2011
9. Le fonctionnement de splunk
Mais comment splunk
conçoit-il les données
machines?
-Réponse:
Splunk divise les données
machine brutes en morceaux
d'information discrets connu sous
le nom ‘’événements’’.
en effet Lorsque vous effectuez
une recherche simple, Splunk
récupère les
événements qui correspondent à
vos termes de recherche.
11. Le fonctionnement de splunk
La seule exigence concernant les
données machine est le faite
qu’elles soient textuel et non pas
binaire, par exemple les fichiers
images et son sont des exemples
courant de données binaires,
toutefois certains types de fichiers
binaire comme le core dump qui
ce produit lorsque un programme
crashe peut être convertie en
format texte. Splunk offre la
possibilité de faire appelle à nos
scripts afin de pouvoir réaliser ce
type de conversion avant
l'indexation des données
Durant l’indexation Splunk peut lire
les données à partir de plusieurs
sources parmi on site : (les plus
commune)
Les fichiers
Le réseau
Les scripts
d’entrée
12. Le fonctionnement de splunk
Comment Splunk traite les données machine au sein d’un Datacenter ?
1-Splunk Commence par indexer les données
Ce qui signifie que Splunk
collecte les données de
différents endroits et les
combine puis il les stocke
dans un index centralisé,
avant les administrateur
système devait se logger
dans différentes machines
afin d’avoir accès au
données
2-utilisation des indexes pour optimiser les recherches
L’utilisation des indexes
confère à Splunk un grand
degré de rapidité lors des
recherches de sources de
problèmes dans les fichiers
log
3-filtrage des résultats
Splunk mais à disposition
de l’utilisateur plusieurs
outils permettant de
filtrer les résultats ce qui
implique par voie de
conséquence une
détection plus rapide de
la racine du problème
13. Le fonctionnement de splunk
Remarque :
Le Champ Timestamp (_time ) est considéré comme étant spécial dû au fait que les indexeurs l’utilise pour
ordonner les évènements , il permet aussi à Splunk de rechercher efficacement des évènements
appartenant un intervalle temporelle bien précis .le schéma qui suit montre de façon détaillée le
processus d’indexage de Splunk.
14. Le fonctionnement de splunk
Les données que Splunk prend en Input
sont appelées les données brut. Splunk
les indexe on créant une map de mots
basée sur le temps.
Ce qu’il faut bien retenir c’est que ce
processus ce déroule sans que les
données ne soient modifiées .
En effet l’indexe que construit Splunk
est similaire aux indexes qui existent au
dos des manuels scolaires, et qui
pointent vers des pages en utilisant des
mots spécifiques .cependant en Splunk
les « pages » sont appelés événements
Chaque évènement en Splunk dispose
d’au moins quatre champs par défaut
et qui sont fournis dans le schéma qui
suit :
15. Le fonctionnement de splunk:
Afin de réaliser des recherches splunk offre une interface graphique bien accueillante comme on
peut le voire dans l’animation qui suit:
16. SPL : (Search Processing Language)
Splunk offre une aide précieuse puisque il
permet de tamiser les données provenant de
plusieurs indexes de grandes taille pour ne
conserver à la fin que les données utiles
permettant ainsi de répondre à nos questions
que sa soit d’un point de vue technologique
(administration réseau ,sécurité informatique )
ou bien d’un point de vue intelligence
opérationnelle (exemple : examiner les
données utilisateurs de notre afin de déceler
quelles sont les tendances futur ).
En effet Splunk offre un outil très performant
qui permet de réaliser des recherches d’une
précision d’orfèvre, cet outil n’est rien d’autre
que le langage SPL.
Définition:
SPL ou Search Processing
Language est un langage de
programmation à usage spécial
conçu par Splunk, afin de gérer,
la big data généré par un réseau
de machine. A L'origine SPL est
basé sur Unix Piping et SQL, son
champ d'application comprend
les données de recherche, de
filtrage, de modification, de
manipulation, d'insertion et de
suppression.
17. SPL : (Search Processing Language)
L’exemple suivant donne un aperçu du potentiel qu’offre ce langage :
sourcetype = syslog ERROR | top user | fields - percent
En effet cette ligne de commande aura comme résultat tous les événements ayant comme sourcetype syslog et contenant la chaine de caractères
ERROR ceci est pour le premier segment de la commande ensuite ce résultat sera rediriger comme input pour le 2éme segment de la commande
et qui est (top user) et qui va fournir les 10 valeurs du champ user les plus récurant dans le input qu’il a reçu ensuit le résultat de ce 2éme
segment servira comme input au 3éme segment (fields-percent ) ce segment a pour but d’éliminer la colonne percent qui est générer
automatiquement lors de l’exécution de la commande top l’animation qui suit montre de manière détaillé l’exécution de cette commande
18. SPL : (Search Processing Language)
Les catégories de commandes
Splunk
Les commandes de
tries
les commandes de
filtrages
Les commandes de
regroupement de
résultats
Les commandes
sont:
Les commandes
sont
search
La commande est :
Sort
Where
Dedup
Head
Tail
Les commandes de
reporting :
La commande est:
Top/rare
Transaction
Stats
Chart
timechart
Le commandes de
modification,
filtrage, ajout de
champs :
Les commandes
sont:
Fields
Replace
Rex
Eval
Lookup
19. SPL : (Search Processing Language)
Explication de l’Arborescence :
1- la commande sort : est une commande ayant pour but d’ordonner les résultats d’une
recherche et de limiter de manière optionnel le nombre de résultats.
2- les commandes qui suivent sont des commandes de filtrages en autres termes se sont des
commandes qui vont prendre un ensemble d’évènements ou de résultats comme entrée afin
qu’ils subissent une opération de filtrage ayant comme objectif de fournir une sortie d’une
dimension moindre que celle de l’entrée et qui ne conserve que les informations nécessaire :
(search, where, dedup, head, tail).
3-la commande transaction est une commande de type Grouping Results comme le nom du
type de la commande l’indique cette dernière a pour but de regrouper les évènements de
façon à mettre en lumière des tendances (très apprécié dans le domaine de l’intelligence
opérationnel ).
4- les commandes classifier dans la catégorie Reporting sont des commandes dont le cœur de
métier est de générer des résumer pour les rapports en prenant comme entrée les résultats de
recherche. Parmi ces commandes on site : (top/rare, stats, chart, timechart).
5-les commandes de type modification, filtrage, ajout de champs : ce sont des commandes
ayant comme rôle de filtrer (supprimer) certains champs afin de ne se focaliser que sur les
champs qui nous intéresse, ou bien modifier ou ajouter des champs pour enrichir nos résultats
on site : (fields, replace, rex, eval, lookup).
20. Le déroulement du stage
En effet le but de ce
stage est la réalisation
d’un outil de message
syslog pour les
équipements réseau
de la DSI.
Cette solution sera
implémenter dans un
premier temps dans un
environnement ayant
l’architecture suivante :
21. Le déroulement du stage
La première phase
a été d’établir une étude afin de
déterminer les caractéristiques technique de
l’environnement hardware sur lequel splunk devrait être
déployé, ces derniers sont cité dans ce qui suit:
les caractéristiques Hardware
1-le processeur : une puce Intel d'architecture x86 64bit.
2- 2 CPUs 4cores pour chacune d'ente elle soit un total de 8 cores , un minimum de 2.5 GHz pour
chacun des cores
3-La mémoire vive : une RAM d'une taille de 8 GB.
4-la carte réseau : une carte de 1 Gb Ethernet , (optionnelle) une deuxième carte réseau Ethernet
du même type pour la gestion du réseau
22. Le déroulement du stage
Effectivement l’environnement matériel qui a été choisi est
le suivant:
1-un serveur IBM System x3650 (offrant les caractéristiques
technique vue précédemment)
2-Installation de la distribution centos 6.3 64 bits sur ce
dernier
23. Le déroulement du stage
Sur le site web de la compagnie splunk :
il n’existe aucune procédure d’installation spécifique à une distribution centos, cependant
vue que centos est un équivalent open source de RHEL on adoptera la même procédure
d’installation spécifiée pour ce dernier :
Pour installer splunk dans le répertoire par défaut /opt/Splunk
rpm -i splunk_package_name.rpm
./splunk start --accept-license
./splunk enable boot-start
Afin de se connecter à l’interface web de splunk il suffit de
taper :
http://<hostname>:port
24. Possibilité à exploiter
Les SDK de Splunk sont écrits au-dessus de la APIs REST Splunk. est de
nous fournir une large couverture de l'API REST dans un mode
spécifique au langage utilisé. Afin de faciliter votre accès à notre
moteur de recherche Splunk.
Les différentes SDKs fournis par splunk sont es suivantes:
Python
Java
JavaScript
PHP
Ruby
C#
25. Possibilité à exploiter
tout ce qu’on vient de cité est intéressant, Cependant qu’elles sont les
possibilités qu’offre de telle SDKs pouvant être exploitées afin de répondre au
mieux à notre besoin:
L’intégration avec d’autres outils de reporting
Se connecter directement à splunk
Intégrer les résultats de recherche de Splunk dans nos applications
Extraire des données pour l'archivage
Construire une interface utilisateur adopter à nos besoins en se basant sur la pile web
existante