ELK (Elasticsearch, Logstash, Kibana) est une solution puissante et flexible pour la supervision des systèmes informatiques. Elle permet de centraliser, analyser et visualiser en temps réel des données provenant de diverses sources, comme les logs ou les métriques, grâce à Elasticsearch pour le stockage et la recherche rapide, Logstash pour le traitement des données, et Kibana pour des visualisations interactives. Son évolutivité et sa communauté active en font une solution adaptée aux besoins des entreprises modernes.
Prérequis :
- 1 VM Debian 12 – 2x2vCPU, 8Go RAM, 50Go d’espace disque
Étape 1 : Mettre à jour les paquets et ajoutez les dépôts :
apt update
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free
apt update && apt upgrade -y
Étape 2 : Installez les différents paquets :
apt install gpg apt-transport-https curl zip unzip default-jre sudo
Étape 3 : Téléchargez les clés du dépôt ElasticSearch
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o/usr/share/keyrings/elasticsearch-keyring.gpg
Étape 4 : Ajoutez le dépôt signez :
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.10.4.list
Étape 5 : Installez ElasticSearch
sudo apt-get update && sudo apt-get install elasticsearch
Étape 6 : copiez le fichiez le conf :
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.original
Étape 7 : Ajoutez cette ligne à la fin du fichier précédent et modifiez l’ip d’écoute :
nano /etc/elasticsearch/elasticsearch.yml
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
network.host: 0.0.0.0
Étape 8 : Redémarrez le service ElasticSerach
systemctl restart elasticsearch
systemctl enable --now elasticsearch
Étape 9 : Généré le mot de passe de l’utilisateur elastic créé automatiquement par le paquets d’installation
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
ATTENTION : NOTEZ BIEN CE MOT DE PASSE

Étape 10 : Vérifiez la connexion avec cette utilisateur au serveur ElasticSearch :
curl -u "elastic:[mot_de_passe]" https://localhost:9200 -k

Étape 11 : Installez Kibana :
apt update
apt install kibana
Étape 12 : donnez accès à kibana au serveur ElasticSearch
nano /etc/kibana/kibana.yml
server.host: ip_du_serveur_elastic
Étape 13 : activez le démarrage automatique de kibana
systemctl enable --now kibana
Étape 14 : création du token d’authentification de kibana
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Étape 15 : Rendez-vous sur http://[ip_de_la_vm]:5601

Renseignez le token précédemment créé dans l’encadré :

Puis, exécutez /usr/share/kibana/bin/kibana-verification-code

Et voilà !
ElasticSearch termine la configuration :

À la fin du chargement, connectez-vous :

Login : elastic
Mp : mp généré plutot dans le tuto
Une fois connecté, cliquez sur Add integrations

Dans la barre de recherche, cherchez Fleet :

Cliquez sur Add Fleet Server :

Donnez lui un nom, pour l’url saisissez :
https://[ip_serveur_fleet]:8220
Une fois fait, installez le serveur fleet. Pour cela, copiez-collez le code ci-dessous sur le serveur ELK :

Une fois l’agent installé, il remonte automatiquement dans la console Fleet :

Sur ce panel, tous les hôtes s’affichent :

Il ne nous reste plus qu’à déployer l’agent elk, pour monitorer de nouvelle machine/service :
Cliquez sur Add agent, donnez lui un nom :

Cliquez sur Create policy.
Allez directement à l’étape 3 :

Copiez-collez le script d’installation de l’agent, dans la machine cliente. Une fois installé l’agent remonte automatiquement.
ATTENTION : à la fin du script ajoutez –insecure

À chaque installation de l’agent, il vous demandera si vous souhaitez installer l’agent comme un service, répondez « y ».
L’hôte s’affiche :

En cliquant sur l’hôte -> View metrics, vous verrez toutes les métriques remontées par l’agent :

Si vous souhaitez monitorer un service en particulier, voici comment faire :
Cherchez un service dans la barre de recherche : (ex : apache)

Cliquez sur Add Apache HTTP Server.
À l’étape 2, soit vous créez une nouvelle règle ou bien vous affectez apache à un hôte déjà présent. Et enfin, cliquez sur Save and continue : (pour l’exemple, j’ai créé la règle sur un nouvel hôte).

Ensuite, cliquez sur Add agent :

Copiez-collez de nouveau le script d’installation de l’agent sur un nouvel hôte ! N’oubliez pas –insecure 😉
Et voilà ! vous savez comment installer et configurer ELK 🙂
Voici quelques commandes utiles :
Reset le mot de passe elatic | /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic |
Générer un token d’enrôlement pour une nouvelle instance de kibana | /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana |
Générer un token d’enrôlement pour ElasticSerach et les nodes | /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node |
Joindre un nouveau node au cluster ELK | /usr/share/elasticsearch/bin/elasticsearch-reconfigure-node –enrollment-token |