Aggrégation de Logs Ansible avec Splunk
Splunk est une plateforme qui permet de collecter, d'indexer, d’analyser et de visualiser les données en provenance de diverses sources. Splunk se charge de les analyser et de les transformer en informations exploitables.
Voyons comment installer et configurer splunk pour y envoyer les résultats de nos playbooks Ansible.
Installation de Splunk
Splunk met à disposition une version de démonstration de 60 jours de sa solution splunk Entreprise.
Il faut dans un premier temps s'enregistrer sur le site de Splunk pour obtenir les commandes de téléchargement des packages.
Une fois connecté, cliquez sur [Download] du tar.gz et annuler le de suite. Dans cet écran vous pouvez récupérer la commande de téléchargement à exécuter sur votre machine Linux.
wget -O /tmp/splunk-9.0.0-6818ac46f2ec-Linux-x86_64.tgz "https://download.splunk.com/products/splunk/releases/9.0.0/linux/splunk-9.0.0-6818ac46f2ec-Linux-x86_64.tgz"
Maintenant installons splunk. Créons dans un premier temps le user splunk
useradd -d /opt/splunk -m -g splunk splunk
sudo useradd -d /opt/splunk -m -g splunk splunk
sudo su - splunk
On peut maintenant décompresser l'archive
tar xvfz /tmp/splunk-9.0.0-6818ac46f2ec-Linux-x86_64.tgz -C /opt
Démarrons Splunk :
/opt/splunk/bin/splunk start --accept-license
Splunk vous demandera un nom pour le compte admin et son mot de passe. Par
exemple admin
et admin123!
.
Normalement Splunk à démarrer. Il suffit de vérifier que le port 8000 est ouvert.
netstat -tlnp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN 3558/splunkd
tcp 0 0 0.0.0.0:8191 0.0.0.0:* LISTEN 3727/mongod
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 3558/splunkd
tcp 0 0 127.0.0.1:8065 0.0.0.0:* LISTEN 3983/python3.7
Configuration de l'Event Collector Http
Désormais passons à la configuration des collecteurs. Il faut se rendre sur le site avec l'adresse suivante : http://localhost:8000
Entrez le compte admin avec le mot de passe que vous avez défini précédemment.
Allez dans le menu Paramètres > Données > Entrées de Données. Cliquez ensuite, sur [+Ajouter Nouveau] au niveau de collecteur d'événements HTTP.
Dans le premier écran, il faut juste entrer un nom, ansible par exemple. Cliquer sur [Suiv].
Laisser sourceType sur Automatique
. Prenez l'index Main et cliquez sur
[Résumé] puis [Soumettre]
Si vous retournez sur l'écran de type collecteur d'événements HTTP vous devriez retrouver votre collecteur ansible. Mais à droite le status est à désactiver. Il faut activer le collecteur.
Revenez à l'écran Collecteur de Données HTTP et cliquez sur paramètres globaux. Désactiver le SSL et Cliquez sur [Activé] puis enregistrer.
Si vous cliquez dessus vous devriez voir ceci.
On peut vérifier que le port 8088 est bien en écoute :
netstat -tlnp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 3558/splunkd
tcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN 3558/splunkd
tcp 0 0 0.0.0.0:8191 0.0.0.0:* LISTEN 3727/mongod
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 3558/splunkd
tcp 0 0 127.0.0.1:8065 0.0.0.0:* LISTEN 3983/python3.7
Il est bien là maintenant.