Installation · 11 min read · Nov 11, 2025

Comment installer Elastic Stack sur Ubuntu 20.04 LTS

Elastic Stack (anciennement ELK Stack) est un ensemble de logiciels open source développé par Elastic pour collecter des données provenant de diverses sources. Il vous permet de collecter, stocker, traiter, analyser et visualiser des données provenant de diverses sources dans n’importe quel format sur la plateforme centrale Elastic Stack.

L’Elastic Stack se compose de plusieurs paquets logiciels : “Elasticsearch” pour stocker vos données, “Kibana” comme tableau de bord pour accéder et visualiser vos données, le pipeline de collecte de données dynamique “Logstash” avec des plugins extensibles pour traiter n’importe quelle donnée, et “Beats” comme plateforme légère d’expédition de données qui envoie des données depuis des machines périphériques.

L’Elastic Stack peut être déployé sur des promesses sur votre serveur ou vous pouvez acheter le SaaS (Software as a Service) officiel Elastic Cloud.

Dans ce tutoriel, nous vous montrerons comment installer Elastic Stack sur un serveur Ubuntu 20.04. Nous installerons Elasticsearch et Kibana sur le même serveur, puis installerons et configurerons “Filebeat” sur l’autre serveur pour envoyer des journaux directement au serveur Elasticsearch.

Exigences

Pour ce tutoriel, nous utiliserons deux serveurs exécutant Ubuntu 20.04. Le logiciel Elastic Stack sera installé sur le serveur avec 4 Go de RAM, et nous utiliserons un autre serveur avec 1 Go comme client pour Filebeat.

Que ferons-nous ?

  • Ajouter le dépôt Elastic Stack
  • Installer et configurer Elasticsearch
  • Installer et configurer Kibana
  • Configurer Nginx comme proxy inverse pour Kibana
  • Installer et configurer Filebeat
  • Configurer un nouveau rôle pour l’utilisateur Kibana
  • Créer un nouveau modèle d’index Filebeat

Étape 1 - Ajouter le dépôt Elastic Stack

Tout d’abord, nous allons ajouter la clé GPG et le dépôt du logiciel Elastic Stack aux deux serveurs Ubuntu.

Avant d’aller plus loin, installez ‘apt-transport-https’ pour sécuriser votre installation de logiciel via une connexion sécurisée HTTPS.

sudo apt install apt-transport-https

Ensuite, ajoutez la clé GPG et le dépôt de l’Elastic Stack en utilisant la commande suivante.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Maintenant, mettez à jour tous les dépôts disponibles sur le système Ubuntu.

sudo apt update

Et vous êtes prêt à installer tous les logiciels Elastic Stack sur les deux serveurs.

ajouter le dépôt elastic

Étape 2 - Installer et configurer Elasticsearch

Dans cette étape, nous allons installer et configurer Elasticsearch sur le serveur à nœud unique ‘ELK20’ avec l’adresse IP interne ‘172.16.0.3’.

Avant d’installer Elasticsearch, éditez le fichier ‘/etc/hosts’ en utilisant l’éditeur vim.

vim /etc/hosts

Maintenant, tapez votre nom d’hôte avec l’adresse IP interne comme ci-dessous.

172.16.0.3    ELK20

Enregistrez et fermez.

Ensuite, installez le paquet Elasticsearch en utilisant la commande apt ci-dessous.

sudo apt install elasticsearch

Une fois toute l’installation terminée, allez dans le répertoire ‘/etc/elasticsearch’ et éditez le fichier de configuration ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Décommentez ‘node.name’ et tapez le nom d’hôte de votre serveur.

node.name: ELK20

Sur la ligne ‘network.host’, tapez l’adresse IP du serveur sur laquelle le service Elasticsearch sera exécuté, et il est recommandé d’utiliser uniquement l’adresse IP interne.

network.host: 172.16.0.3

Décommentez la ligne ‘http.port’ et laissez-la par défaut, le service Elasticsearch sera exécuté sur le port par défaut ‘9200’.

http.port: 9200

Décommentez la ligne ‘cluster.initial_master_nodes’ et tapez le nom d’hôte de votre serveur.

cluster.initial_master_nodes: ["ELK20"]

Et enfin, activez la sécurité d’Elasticsearch en ajoutant la configuration suivante au bas de la ligne.

xpack.security.enabled: true

Enregistrez et fermez.

Ensuite, rechargez le gestionnaire de services systemd, puis démarrez le service Elasticsearch et ajoutez-le au démarrage du système.

systemctl daemon-reload  
  
systemctl start elasticsearch  
systemctl enable elasticsearch

Le service Elasticsearch est en cours d’exécution sur le serveur Ubuntu 20.04.

installer et configurer elasticsearch

Ensuite, nous allons générer le mot de passe pour l’utilisateur intégré sur Elasticsearch.

Allez dans le répertoire ‘/usr/share/elasticsearch’ et exécutez la commande utilitaire Elasticsearch ‘elasticsearch-setup-passwords’ comme ci-dessous.

cd /usr/share/elasticsearch/  
bin/elasticsearch-setup-passwords auto -u "http://172.16.0.3:9200"

Tapez ‘y’ pour confirmer et générer le mot de passe.

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.  
The passwords will be randomly generated and printed to the console.  
Please confirm that you would like to continue [y/N] y

Voici le résultat que vous obtiendrez.

Changed password for user apm_system  
PASSWORD apm_system = DP5RpFfbCyL6UpIFO8Q3  
  
Changed password for user kibana_system  
PASSWORD kibana_system = U6gDLoJCqqChqcbD1IYV  
  
Changed password for user kibana  
PASSWORD kibana = U6gDLoJCqqChqcbD1IYV  
  
Changed password for user logstash_system  
PASSWORD logstash_system = KrHaGvHGfkAz12dcSeWo  
  
Changed password for user beats_system  
PASSWORD beats_system = VnUUOtShQoFAGEZ62G7m  
  
Changed password for user remote_monitoring_user  
PASSWORD remote_monitoring_user = xgaLXw6jp3Ses6CZ2hEB  
  
Changed password for user elastic  
PASSWORD elastic = elu2ZlMm4mOkM7fgCeUM

Comme vous pouvez le voir, le mot de passe pour certains utilisateurs intégrés sur Elasticsearch a été généré.

Gambar

Pour tester notre installation d’Elasticsearch, exécutez la commande curl avec l’utilisateur par défaut ‘ elastic ‘ comme ci-dessous.

curl -X GET -u elastic "http://172.16.0.3:9200/?pretty"

Tapez le mot de passe pour l’utilisateur ‘ elastic ‘, et voici le résultat que vous obtiendrez.

tester l'authentification elasticsearch

En conséquence, le serveur Elasticsearch est en cours d’exécution avec l’authentification activée.

Étape 3 - Installer et configurer Kibana

Dans cette étape, nous allons installer et configurer Kibana sur le même serveur qu’Elasticsearch. Nous allons connecter Kibana au serveur Elasticsearch avec l’utilisateur par défaut ‘kibana_system’ et le mot de passe généré ci-dessus.

Installez Kibana en utilisant la commande apt ci-dessous.

sudo apt install kibana

Une fois toute l’installation terminée, allez dans le répertoire ‘/etc/kibana’ et éditez le fichier de configuration ‘kibana.yml’ en utilisant l’éditeur vim.

cd /etc/kibana/  
vim kibana.yml

Décommentez les lignes suivantes et changez les valeurs avec les vôtres. Il est recommandé d’exécuter Kibana sur le réseau local car nous allons utiliser Nginx comme proxy inverse pour Kibana.

server.port: 5601  
server.host: "172.16.0.3"  
server.name: "ELK20"

Après cela, changez ‘elasticsearch.url’ avec l’adresse IP de votre Elasticsearch.

elasticsearch.url: "http://172.16.0.3:9200"

Décommentez les lignes “elasticsearch.username” et ‘elasticsearch.password’, et changez les détails avec l’utilisateur et le mot de passe que vous avez générés.

elasticsearch.username: "kibana_system"  
elasticsearch.password: "N88VBkkelfSV3mBfO6Vh"

Enregistrez et fermez.

Ensuite, rechargez le gestionnaire systemd en utilisant la commande suivante.

systemctl daemon-reload

Après cela, démarrez le service Kibana et ajoutez-le au démarrage du système.

systemctl start kibana  
systemctl enable kibana

Et le service Kibana est en cours d’exécution sur le système Ubuntu 20.04.

installer et configurer kibana

Ensuite, nous allons créer un nouvel utilisateur qui sera utilisé pour se connecter au tableau de bord Kibana.

Créez un nouvel utilisateur nommé ‘hakase’ et le mot de passe ‘hakasepasskibana’ avec le rôle ‘kibana_admin’ comme ci-dessous.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin" ]  
}  
'

Tapez le mot de passe pour l’utilisateur ‘elastic’, et vous obtiendrez le résultat ci-dessous.

créer un utilisateur kibana avec le rôle kibana_admin

En conséquence, le nouvel utilisateur ‘hakase’ a été créé et pourra se connecter au tableau de bord Kibana.

Étape 4 - Configurer Nginx comme proxy inverse pour Kibana

Dans cette étape, nous allons installer et configurer Nginx comme proxy inverse pour Kibana.

Installez les paquets Nginx en utilisant la commande apt ci-dessous.

sudo apt install nginx -y

Une fois toute l’installation terminée, allez dans le répertoire ‘/etc/nginx/sites-available/‘ et créez un nouveau fichier d’hôte virtuel ‘kibana’ en utilisant l’éditeur vim.

cd /etc/nginx/sites-available/  
vim kibana

Changez le nom de domaine et l’adresse IP ‘proxy_pass’ avec les vôtres, puis collez-le.

server {  
    listen 80;  
   
    server_name elk.hakase-labs.io;  
   
    location / {  
        proxy_pass http://172.16.0.3:5601;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection 'upgrade';  
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}

Enregistrez et fermez.

Ensuite, activez l’hôte virtuel Nginx pour Kibana et vérifiez la configuration de Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/  
nginx -t

Assurez-vous qu’il n’y a pas d’erreur, puis redémarrez le service Nginx.

systemctl restart nginx

En conséquence, l’installation et la configuration de Nginx en tant que proxy inverse pour Kibana ont été complétées. Et le tableau de bord Kibana est maintenant accessible via le nom de domaine ‘elk.hakase-labs.io’.

configurer nginx comme proxy inverse pour kibana

Ouvrez votre navigateur web et tapez le nom de domaine de votre installation Kibana dans la barre d’adresse.

http://elk.hakase-labs.io/

Et vous obtiendrez la page de connexion Kibana comme ci-dessous.

page de connexion kibana

Tapez l’utilisateur ‘hakase’ avec le mot de passe ‘hakasepass’ et cliquez sur le bouton ‘ Connexion ‘.

Une fois que vous êtes connecté, vous serez invité à importer les données d’exemple ou à explorer vos données.

kibana sélectionner l'option pour explorer les données

Cliquez sur le bouton ‘ Explorer mes propres données ‘.

Maintenant, vous obtiendrez le tableau de bord Kibana comme ci-dessous.

Tableau de bord Kibana

En conséquence, l’installation de Kibana et de Nginx a été complétée.

Étape 4 - Installer et configurer Filebeat

Dans cette étape, nous allons installer “Filebeat” sur la machine cliente avec le nom d’hôte “client01” et l’adresse IP “xxx.xxx.xxx.xxx”. Le Filebeat enverra des journaux directement au serveur Elasticsearch.

Avant d’installer le “Filebeat”, assurez-vous que le dépôt Elastic Stack a été ajouté à votre système.

Maintenant, installez le paquet filebeat en utilisant la commande apt ci-dessous.

sudo apt install filebeat

Une fois toute l’installation terminée, allez dans le répertoire ‘/etc/filebeat’ et éditez le fichier de configuration ‘filebeat.yml’ en utilisant l’éditeur vim.

cd /etc/filebeat/  
vim filebeat.yml

En haut de la configuration ‘filebeat.inputs’, changez ‘enabled: false’ en ‘enabled: true’ comme ci-dessous.

filebeat.inputs:  
- type: log  
  enabled: true  
  paths:  
    - /var/log/*.log

Ensuite, passez à la configuration de Kibana et changez l’hôte avec l’adresse IP et le port de Kibana, changez le nom d’utilisateur avec l’utilisateur par défaut ‘kibana’, et le mot de passe généré ci-dessus.

setup.kibana:  
  host: "172.16.0.3:5601"  
  username: "kibana"    
  password: "U6gDLoJCqqChqcbD1IYV"

Après cela, passez à la configuration ‘output.elasticsearch’ et changez les détails avec les vôtres.

output.elasticsearch:  
  hosts: ["172.16.0.3:9200"]  
  username: "elastic"  
  password: "elu2ZlMm4mOkM7fgCeUM"

Enregistrez et fermez.

Maintenant, rechargez le gestionnaire systemd, démarrez le service filebeat et ajoutez-le au démarrage du système.

systemctl daemon-reload  
  
systemctl start filebeat  
systemctl enable filebeat

Le service filebeat est en cours d’exécution sur la machine “ client01 “.

Installer et configurer Filebeat

Ensuite, nous devons charger le modèle d’index filebeat sur le serveur Elasticsearch en utilisant la commande suivante.

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["http://172.16.0.3:9200"]'

Voici le résultat que vous obtiendrez.

En conséquence, le modèle d’index filebeat est chargé sur le serveur Elasticsearch, et il sera disponible sur le tableau de bord Kibana en tant que modèle d’index ‘filebeat-*’.

Étape 5 - Configurer un nouveau rôle pour l’utilisateur Kibana

Dans cette étape, nous allons créer un nouveau rôle Elasticsearch qui permet à notre utilisateur ‘hakase’ d’accéder et de gérer tous les indices sur le serveur Elasticsearch via l’API Elasticsearch.

Créez un nouveau rôle nommé ‘ events_index ‘ qui permet aux utilisateurs de gérer uniquement les indices sur le serveur Elasticsearch en utilisant la commande suivante.

curl -XPOST -u elastic 'http://172.16.0.3:9200/_security/role/events_index' -H "Content-Type: application/json" -d '{  
  "indices" : [  
    {  
      "names" : [ "*" ],  
      "privileges" : [ "all" ]  
    }  
  ]  
}'

Créer un nouveau rôle elasticsearch

Après cela, vérifiez le rôle ‘ events_index ‘ en utilisant la commande ci-dessous.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"

Voici le résultat que vous obtiendrez.

vérifier le rôle elasticsearch

Comme vous pouvez le voir, le rôle ‘events_index’ n’aura que des privilèges pour gérer les indices.

Ensuite, ajoutez le rôle ‘events_index’ à notre utilisateur ‘hakase’ en utilisant la commande ci-dessous.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin", "events_index" ]  
}  
'

Tapez le mot de passe pour l’utilisateur ‘ elastic ‘, et le rôle ‘ events_index ‘ a été attribué à l’utilisateur ‘ hakase ‘.

Vérifiez tous les rôles disponibles sous l’utilisateur ‘hakase’ en utilisant la commande suivante.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty"

Voici le résultat que vous obtiendrez.

attribuer un rôle à l'utilisateur elasticsearch

En conséquence, nous avons créé un nouveau rôle pour gérer les indices sur le serveur Elasticsearch.

Étape 6 - Créer un nouveau modèle d’index Filebeat

Après avoir créé un nouveau rôle nommé ‘events_index’, nous allons créer un nouveau modèle d’index pour Filebeat via l’utilisateur ‘ hakase ‘.

- Créer un modèle d’index

Sur le tableau de bord Kibana, cliquez sur l’option de menu à gauche, passez à la section “ Gestion “, et cliquez sur “ Gestion de la pile “.

Dans la section “ Kibana “, cliquez sur “ Modèle d’index “.

Créer un modèle d'index Kibana

Cliquez sur le bouton “Créer un modèle d’index” pour créer un nouveau modèle d’index.

Dans le champ “modèle d’index”, tapez “ filebeat-* “ et cliquez sur le bouton “ Étape suivante “.

Créer un modèle d'index Filebeat sur kibana

Dans le champ “Nom du filtre temporel”, choisissez “ @timestamp “ et cliquez sur le bouton “ Créer un modèle d’index “.

Configurer le timestamp comme filtre par défaut

Et le modèle d’index “ filebeat-* “ a été créé, et il est sélectionné comme modèle d’index par défaut (si vous n’avez pas de modèle d’index auparavant).

Le modèle d'index Filebeat a été créé

- Afficher les données sur Kibana

Pour afficher les données collectées par filebeat, cliquez sur le menu d’options en haut à gauche, puis cliquez sur “ Découvrir “.

Et vous obtiendrez toutes les données collectées par filebeat depuis la machine “ client01 “.

Données sur la machine client01 affichées sur le tableau de bord Kibana

Pour afficher les données en fonction de votre filtre, vous pouvez utiliser le “ KQL “ ou le langage de requête Kibana.

Tapez la requête suivante dans le champ “ KQL “.

host.name : client01 and log.file.path: "/var/log/auth.log"

Et vous obtiendrez toutes les informations sur l’authentification SSH sur la machine “client01”.

Utilisation de KQL Kibana Query Language

En conséquence, l’installation de l’Elastic Stack avec la sécurité activée sur Ubuntu 20.04 a été complétée avec succès.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.