• Installation et configuration des différents modules d’ELK Stack
ELK Stack repose sur trois solutions qui sont Elasticsearch, Logstash et Kibana, mais les
agents Beat complémentent depuis peu ces trois solutions. Pour l’installation de ces derniers, il
faut utiliser la même version sur l’ensemble. Dans notre cas, nous avons installé ici la dernière
version disponible qui est la version 8.5.
Donc nous allons voir ci-dessous les étapes d’installation et de configuration de chaque
module.
• Installation de Java
Tout d’abord, pour le fonctionnement d’ELK Stack, il faut installer tous les « packages »
nécessaires :
✓ Java :
Comme elasticsearch est un logiciel écrit en java, il est nécessaire d’avoir un
environnement d’exécution java compatible avec la version voulu d’ELK.
• Installation d’Elasticsearch
Dans cette étape, nous allons installer Elasticsearch qui est le moteur de recherche et
d’analyse conçu pour répondre à une multitude de cas d’utilisation, il permet en outre de centraliser
et de stocker nos données.
Importer la clé PGP d'elasticsearch :
Mais avant, nous allons importer la clé GPG qui est une clé publique de chiffrement utilisée
pour signer et chiffrer les fichiers. Pour ce faire, nous allons utiliser la commande [13] :
wget -qO - [Link] | sudo gpg --dearmor -o
/usr/share/keyrings/[Link]
1
Installation à partir du dépôt apt :
Tout d’abord, nous allons installer “apt-transport-https” pour avoir les paquets depuis un
dépôt HTTPS.
Pour ce faire, il suffit d’entrer la commande : « apt-get apt-transport-https »
Une fois la clé récupérée, nous allons procéder à l’ajout des sources Elactic au répertoire
« [Link].d » ce qui permet à APT de recevoir de nouvelles sources [13]:
echo "deb [signed-by=/usr/share/keyrings/[Link]]
[Link] stable main" | sudo tee /etc/apt/[Link].d/elastic-
[Link]
Maintenant pour installer Elasticsearch, nous allons utiliser la commande :
Enfin, pour pouvoir retrouver la nouvelle source, nous allons mettre à jour la liste des
paquets et installer Elasticsearch :
À présent, Elasticsearch est installé et prêt à être configuré.
• Installation de Kibana
Cette fois-ci, nous allons installer Kibana qui est le tableau de bord permettant de visualiser
nos données.
Comme nous avons déjà ajouté le paquet Elastic, nous allons installer Kibana en utilisant
simplement la commande apt : « sudo apt-get update && sudo apt-get install kibana »
Ensuite ; il faut simplement activer et démarrer le service : « sudo systemctl start
[Link] »
Maintenant, Kibana fonctionne et on peut le vérifier comme suit :
2
Figure 3 : Statut de Kibana active
Maintenant que Kibana est installé, nous pouvons accéder à l’interface via l’url par défaut :
« Http:// localhost :5601 »
Figure 4 : Interface principale de Kibana 8.5
• Installation de Logstash
Maintenant, nous allons installer Logstash qui va permettre de normaliser les données
venant des divers matériels et de les envoyer vers Elasticsearch.
Comme ci-dessus, on peut simplement installer Logstash avec la commande APT : « sudo
apt install logstash »
Actuellement, nous avons installé tous les modules nécessaires dans le côté serveur.
• Configuration d’Elasticsearch
3
Nous pouvons voir le fichier de configuration d’Elasticsearch dans
/etc/elasticsearch/[Link].
Nous allons utiliser la commande nano pour modifier le fichier :
Figure 5 : Configuration Elasticsearch
Nous avons spécifié localhost sur la ligne [Link] pour la sécurité, c’est-à-dire
qu’Elasticsearch n’écoute que sur les interfaces liées.
• Configuration de Kibana
Pour Kibana, le fichier de configuration se trouve dans /etc/elasticsearch/[Link].
4
Figure 6 : Configuration de Kibana
Nous pouvons donc apercevoir la configuration modifiée dans Kibana :
✓ Kibana écoute sur le port par défaut qui est le port 5601.
✓ Pour que Kibana puisse être connecté avec Elasticsearch, on a indiqué l’adresse où se
trouve ce dernier.
✓ On a aussi configuré l’URL avec lequel on pourra accéder à l’interface web de Kibana.
Après configuration, nous allons redémarrer Kibana et activer le démarrage automatique
du service avec les commandes qu’on a vues lors de son installation.
• Configuration de Logstash
La configuration de Logstash comprend trois sections :
- Les inputs (entrées)
- Les filter (filtres)
- Les outputs (sorties)
Ces trois composantes sont appelées un pipeline. Et le fichier de configuration est au format
JSON et stocké dans /etc/logstash/con.d.
Tout d’abord, nous allons commencer par configurer la sortie vers Elasticsearch. Il nous
faut donc créer le fichier de configuration, pour notre cas nous avons créé le fichier : 30-
[Link].
5
Pour la configuration, il nous faut créer un output qui tourne vers l’host d’Elasticsearch.
Figure 7 : Configuration output Logstash
Nous avons configuré des instructions indiquant à Logstash d’envoyer les logs après
filtrage à Elasticsearch sur l’adresse localhost :9200 et nous avons indiqué l’index à instruire dans
Elasticsearch. Après que l’input et l’output de logstash sont bien configurés, nous pouvons créer
des filtres pour personnaliser la structure des logs selon nos besoins.
Ensuite nous pouvons démarrer Logstash et activer à son tour l’autodémarrage avec la
commande : « sudo systemctl start logstash » / « sudo systemctl enable logstash »
Nous avons terminé toutes les installations ainsi que les configurations de tout ELK Stack.
Il est maintenant temps de les tester.
II - RESULTAT
En premier lieu, on va tester si notre Elasticsearch reçoit correctement les logs provenant
de Logstash et si Kibana peut les visualiser correctement.
Installation d’apache2 :
Pour ce faire, nous allons installer et configurer un serveur web, qui est apache, dans le
serveur se trouvant Elasticsearch. On peut simplement l’installer avec la commande suivante :
« sudo apt-get install apache2 »
Et pour démarrer le service, on exécute la commande : « sudo systemctl start apache2 »
6
Figure 8 : Status apache active
Configuration d’apache .conf :
Ensuite, nous allons envoyer les logs de ce dernier à Elasticsearch à partir de Logstash,
pour ce faire, nous allons créer un fichier [Link] contenant l’input, l’output et le filter pour
récupérer et mieux structurer les logs avant de les envoyer :
Teste au niveau de Kibana :
7
Du côté de Kibana, nous allons créer un index pour apache et vérifier si Kibana affiche les
logs :
Tout d’abord, nous allons rechercher une correspondance entre notre index pattern et les
index trouvés par notre serveur ELK :
Figure 9 : Création d'index pour apache sur Kibana
Dans la deuxième étape, nous allons choisir @timestamp pour que notre graphique nous
montre les différents logs reçus pas notre serveur en fonction du temps :
8
Figure 10 : Index apache filtre en fonction du temps
Et enfin, dans l’onglet Discover nous pouvons apercevoir notre graphique. Ici nous
pouvons voir qu’il y a déjà deux logs reçus. Ce qui signifie que notre serveur fonctionne
correctement en interne.
Figure 11 : Interface Discovery montrant les logs d'apache