Installation Elastic · 14 min read · Nov 25, 2025

Comment installer Elastic Stack sur Ubuntu 18.04 LTS

Elasticsearch est un moteur de recherche open source basé sur Lucene, développé en Java. Il fournit un moteur de recherche en texte intégral distribué et multitenant avec une interface web de tableau de bord HTTP (Kibana). Les données sont interrogées, récupérées et stockées dans un schéma de document JSON. Elasticsearch est un moteur de recherche évolutif qui peut être utilisé pour rechercher tous types de documents texte, y compris des fichiers journaux. Elasticsearch est le cœur de l ‘Elastic Stack’ ou ELK Stack.

Logstash est un outil open source pour la gestion des événements et des journaux. Il fournit un pipeline en temps réel pour la collecte de données. Logstash collectera vos données de journal, convertira les données en documents JSON et les stockera dans Elasticsearch.

Kibana est un outil de visualisation de données open source pour Elasticsearch. Kibana fournit une belle interface web de tableau de bord. Il vous permet de gérer et de visualiser les données d’Elasticsearch. Ce n’est pas seulement beau, mais aussi puissant.

Dans ce tutoriel, je vais vous montrer comment installer et configurer Elastic Stack sur un serveur Ubuntu 18.04 pour la surveillance des journaux du serveur. Ensuite, je vous montrerai comment installer et configurer ‘Elastic beats’ sur un serveur client Ubuntu 18.04 et CentOS 7.

Prérequis

  • 3 serveurs - Ubuntu 18.04 avec 4 Go de RAM/mémoire en tant que ‘elk-master’ - 10.0.15.10
  • Ubuntu 18.04 avec 512 Mo/1 Go de RAM/mémoire en tant que ‘elk-client01’ - 10.0.15.21
  • CentOS 7.5 avec 512 Mo/1 Go de RAM/mémoire en tant que ‘elk-client02’ - 10.0.15.22
  • Privilèges root

Que allons-nous faire ?

  1. Installer Elastic Stack 1. Installer Java
  2. Installer et configurer ElasticSearch
  3. Installer et configurer Kibana
  4. Installer et configurer Nginx en tant que proxy inverse pour Kibana
  5. Installer et configurer Logstash
  6. Installer et configurer Filebeat sur Ubuntu 18.04
  7. Installer et configurer Filebeat sur CentOS 7.5
  8. Tester

Étape 1 - Installer Elastic Stack

Dans cette première étape, nous allons installer et configurer l ‘Elastic Stack’ sur le serveur ‘elk-master’, donc exécutez toutes les commandes et étapes pour cette étape uniquement sur le serveur ‘elk-master’. Nous allons installer et configurer chaque composant de l’elastic stack, y compris Elasticsearch, le transporteur Logstash et le tableau de bord Kibana avec le serveur web Nginx.

Installer Java

Java est requis pour le déploiement de l’Elastic stack. Elasticsearch nécessite Java 8. Il est recommandé d’utiliser l’Oracle JDK 1.8, et nous allons installer Java 8 à partir d’un dépôt PPA.

Installez les paquets ‘software-properties-common’ et ‘apt-transport-https’, puis ajoutez le dépôt Java ‘webupd8team’ PPA. Exécutez la commande ‘apt install’ et ‘add-apt-repository’ ci-dessous.

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:webupd8team/java -y

Maintenant, installez le java8-installer.

sudo apt install oracle-java8-installer -y

Après l’installation, vérifiez la version de Java.

java -version

Java 1.8 installé sur le système.

Ensuite, nous allons configurer l’environnement Java. Vérifiez le fichier binaire Java en utilisant la commande ci-dessous.

update-alternatives --config java

Et vous obtiendrez le fichier binaire Java dans le répertoire ‘/usr/lib/jvm/java-8-oracle‘.

Maintenant, créez le fichier de profil ‘java.sh’ sous le répertoire ‘profile.d’.

vim /etc/profile.d/java.sh

Collez la configuration de l’environnement Java ci-dessous.

#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

Enregistrez et quittez.

Rendez le fichier exécutable et chargez le fichier de configuration.

chmod +x /etc/profile.d/java.sh  
source /etc/profile.d/java.sh

Maintenant, vérifiez l’environnement Java en utilisant la commande ci-dessous.

echo $JAVA_HOME

Et vous obtiendrez que le répertoire Java est situé dans le répertoire ‘/usr/lib/jvm/java-8-oracle‘.

Configurer Java

Installer Elasticsearch

Après avoir installé Java, nous allons installer le premier composant de l’Elastic Stack, nous allons installer l’elasticsearch.

Ajoutez la clé de l’elastic stack et ajoutez le dépôt elastic au système.

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

Maintenant, mettez à jour le dépôt et installez le paquet elasticsearch en utilisant la commande ci-dessous.

sudo apt update  
sudo apt install elasticsearch -y

Après l’installation, allez dans le répertoire ‘/etc/elasticsearch’ et éditez le fichier de configuration ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Décommentez la ligne ‘network.host’ et changez la valeur en ‘localhost’, et décommentez la ligne ‘http.port’ pour la configuration du port elasticsearch.

network.host: localhost
http.port: 9200

Enregistrez et quittez.

Maintenant, démarrez le service elasticsearch et activez-le pour qu’il se lance à chaque démarrage du système.

systemctl start elasticsearch  
systemctl enable elasticsearch

L’elasticsearch est maintenant en cours d’exécution, vérifiez-le en utilisant la commande netstat et les commandes curl ci-dessous.

netstat -plntu  
curl -XGET 'localhost:9200/?pretty'

Maintenant, vous obtiendrez que la version elasticsearch ‘6.2.4’ est en cours d’exécution sur le port par défaut ‘9200’.

Vérifier le port elasticsearch

L’installation d’elasticsearch est terminée.

Installer et configurer le tableau de bord Kibana

Le deuxième composant est un tableau de bord kibana. Nous allons installer le tableau de bord Kibana à partir du dépôt elastic, et configurer le service kibana pour qu’il fonctionne sur l’adresse localhost.

Installez le tableau de bord Kibana en utilisant la commande apt ci-dessous.

sudo apt install kibana -y

Maintenant, allez dans le répertoire ‘/etc/kibana’ et éditez le fichier de configuration ‘kibana.yml’.

cd /etc/kibana/  
vim kibana.yml

Décommentez ces lignes ‘server.port’, ‘server.host’ et ‘elasticsearch.url’.

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Enregistrez et quittez.

Maintenant, démarrez le service kibana et activez-le pour qu’il se lance à chaque démarrage du système.

sudo systemctl enable kibana  
sudo systemctl start kibana

Le tableau de bord kibana est maintenant en cours d’exécution sur l’adresse ‘localhost’ et le port par défaut ‘5601’. Vérifiez-le en utilisant la commande netstat ci-dessous.

netstat -plntu

Installer Kibana

L’installation du tableau de bord Kibana est terminée.

Installer et configurer Nginx en tant que proxy inverse pour Kibana

Dans ce tutoriel, nous allons utiliser le serveur web Nginx comme proxy inverse pour le tableau de bord Kibana.

Installez Nginx et les paquets ‘apache2-utils’ sur le système.

sudo apt install nginx apache2-utils -y

Après l’installation, allez dans le répertoire de configuration ‘/etc/nginx’ et créez un nouveau fichier d’hôte virtuel nommé ‘kibana’.

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

Collez la configuration de l’hôte virtuel Nginx ci-dessous.

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Accès restreint";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://localhost: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 quittez.

Ensuite, nous allons créer un nouveau serveur web d’authentification de base pour accéder au tableau de bord Kibana. Nous allons créer l’authentification de base en utilisant la commande htpasswd comme ci-dessous.

sudo htpasswd -c /etc/nginx/.kibana-user elastic  
Tapez le mot de passe de l'utilisateur elastic

Activez l’hôte virtuel kibana et testez toute la configuration nginx.

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

Assurez-vous qu’il n’y a pas d’erreur, maintenant démarrez le service Nginx et activez-le pour qu’il se lance à chaque démarrage du système.

systemctl enable nginx  
systemctl restart nginx

L’installation et la configuration de Nginx en tant que proxy inverse pour le tableau de bord Kibana sont terminées.

Configurer Nginx

Installer et configurer Logstash

Le dernier composant pour l’Elastic Stack pour ce guide est le ‘Logstash’. Nous allons installer et configurer Logstash pour centraliser les journaux du serveur à partir des sources clientes avec filebeat, puis filtrer et transformer toutes les données (Syslog) et les transporter vers le stash (Elasticsearch).

Avant d’installer logstash, assurez-vous de vérifier la version d’OpenSSL de votre serveur.

openssl version -a

Pour ce guide, nous allons utiliser l’OpenSSL ‘1.0.2o’. Si vous utilisez encore la version OpenSSL 1.1.2, vous obtiendrez une erreur lors de la connexion SSL de logstash et filebeat.

Installez logstash en utilisant la commande apt ci-dessous.

sudo apt install logstash -y

Après l’installation, nous allons générer la clé de certificat SSL pour sécuriser le transfert de données de journal du client filebeat au serveur logstash.

Éditez le fichier ‘/etc/hosts’ en utilisant vim.

vim /etc/hosts

Ajoutez la configuration ci-dessous.

10.0.15.10  elk-master  elk-master

Enregistrez et quittez.

Maintenant, créez un nouveau répertoire SSL sous le répertoire de configuration logstash ‘/etc/logstash’ et allez dans ce répertoire.

mkdir -p /etc/logstash/ssl  
cd /etc/logstash/

Générez le certificat SSL pour Logstash en utilisant la commande openssl comme ci-dessous.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Les fichiers de certificat SSL pour Logstash ont été créés dans le répertoire ‘/etc/logstash/ssl’.

Ensuite, nous allons créer de nouveaux fichiers de configuration pour logstash. Nous allons créer un fichier de configuration ‘filebeat-input.conf’ comme fichier d’entrée de filebeat, ‘syslog-filter.conf’ pour le traitement syslog, puis un fichier ‘output-elasticsearch.conf’ pour définir la sortie Elasticsearch.

Allez dans le répertoire de configuration logstash et créez les nouveaux fichiers de configuration ‘filebeat-input.conf’ dans le répertoire ‘conf.d’.

cd /etc/logstash/  
vim conf.d/filebeat-input.conf

Collez la configuration suivante là-bas.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Enregistrez et quittez.

Pour le traitement des données de journal syslog, nous utilisons le plugin de filtre nommé ‘grok’ pour analyser les fichiers syslog.

Créez une nouvelle configuration ‘syslog-filter.conf’.

vim conf.d/syslog-filter.conf

Collez la configuration suivante là-bas.

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Enregistrez et quittez.

Et pour la sortie elasticsearch, nous allons créer le fichier de configuration nommé ‘output-elasticsearch.conf’.

vim conf.d/output-elasticsearch.conf

Collez la configuration suivante là-bas.

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Enregistrez et quittez.

Lorsque cela est fait, démarrez le service logstash et activez-le pour qu’il se lance à chaque démarrage du système.

sudo systemctl enable logstash  
sudo systemctl start logstash

Activer et démarrer logstash

Vérifiez le service logstash en utilisant les commandes netstat et systemctl ci-dessous.

netstat -plntu  
systemctl status logstash

Et le service logstash est maintenant en cours d’exécution. Fonctionnant sur l’adresse IP publique avec le port ‘5443’.

Vérifier les ports

L’installation de l’Elastic Stack est terminée.

Étape 2 - Installer et configurer Filebeat sur Ubuntu 18.04

Dans cette étape, nous allons configurer le client Ubuntu 18.04 ‘elk-client01’ en installant les expéditeurs de données Elastic Beats ‘Filebeat’ dessus.

Avant d’installer le filebeat sur le système, nous devons éditer le fichier ‘/etc/hosts’ et télécharger le fichier de certificat logstash ‘logstash-forwarder.crt’ sur le serveur ‘elk-client01’.

Éditez le fichier ‘/etc/hosts’ en utilisant l’éditeur vim.

vim /etc/hosts

Collez la configuration suivante là-bas.

10.0.15.10      elk-master      elk-master

Enregistrez et quittez.

Copiez le fichier de certificat logstash ‘logstash-forwarder.crt’ en utilisant la commande scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Installer Filebeat

Ensuite, installez les Elastic Beats ‘Filebeat’ en ajoutant la clé elastic et en ajoutant le dépôt elastic.

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

Mettez à jour le dépôt et installez le paquet ‘filebeat’ en utilisant la commande apt ci-dessous.

sudo apt update  
sudo apt install filebeat -y

Après l’installation, allez dans le répertoire ‘/etc/filebeat’ et éditez le fichier de configuration ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Maintenant, activez les prospecteurs filebeat en changeant la valeur de la ligne ‘enabled’ en ‘true’.

  enabled: true

Définissez les fichiers journaux système à envoyer au serveur logstash. Pour ce guide, nous allons ajouter le fichier de journal ssh ‘auth.log’ et le fichier syslog.

  paths:
    - /var/log/auth.log
    - /var/log/syslog

Configurez la sortie vers logstash en commentant la sortie ‘elasticsearch’ par défaut et en décommentant la ligne de sortie logstash ci-dessous.

output.logstash:
  # Les hôtes Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Enregistrez et quittez.

Ensuite, nous devons éditer le fichier ‘filebeat.reference.yml’ pour activer les modules filebeat, et nous allons activer le module ‘syslog’.

vim filebeat.reference.yml

Activez le module système syslog pour filebeat comme ci-dessous.

- module: system
  # Syslog
  syslog:
    enabled: true

Enregistrez et quittez.

Copiez le fichier de certificat logstash ‘logstash-forwarder.crt’ dans le répertoire ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

L’installation et la configuration de Filebeat sont terminées. Maintenant, démarrez le service filebeat et activez-le pour qu’il se lance à chaque démarrage du système.

systemctl start filebeat  
systemctl enable filebeat

Vérifiez le service filebeat en utilisant les commandes ci-dessous.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

Les expéditeurs filebeat sont en cours d’exécution sur le serveur Ubuntu 18.04.

Filebeat est en cours d'exécution

Étape 3 - Installer et configurer Filebeat sur CentOS 7.5

Dans cette étape, nous allons configurer le client CentOS 7.5 ‘elk-client02’ en installant les expéditeurs de données Elastic Beats ‘Filebeat’ dessus.

Avant d’installer le Filebeat sur le système, nous devons éditer le fichier ‘/etc/hosts’ et télécharger le fichier de certificat logstash ‘logstash-forwarder.crt’ sur le serveur ‘elk-client02’.

Éditez le fichier ‘/etc/hosts’ en utilisant vim.

vim /etc/hosts

Collez la configuration ci-dessous.

10.0.15.10      elk-master      elk-master

Enregistrez et quittez.

Copiez le fichier de certificat logstash ‘logstash-forwarder.crt’ en utilisant la commande scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Installer Filebeat sur CentOS

Ensuite, installez les Elastic Beats ‘Filebeat’ en ajoutant la clé elastic et en ajoutant le dépôt elastic.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch  
   
cat < /etc/yum.repos.d/elastic.repo  
[elasticsearch-6.x]  
name=Elasticsearch repository for 6.x packages  
baseurl=https://artifacts.elastic.co/packages/6.x/yum  
gpgcheck=1  
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch  
enabled=1  
autorefresh=1  
type=rpm-md  
EOF

Installez filebeat en utilisant la commande yum ci-dessous.

yum install filebeat -y

Après l’installation, allez dans le répertoire ‘/etc/filebeat’ et éditez le fichier de configuration ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Maintenant, activez les prospecteurs filebeat en changeant la valeur de la ligne ‘enabled’ en ‘true’.

  enabled: true

Définissez les fichiers journaux système à envoyer au serveur logstash. Pour ce guide, nous allons ajouter le fichier de journal ssh ‘auth.log’ et le fichier syslog.

  paths:
    - /var/log/secure
    - /var/log/messages

Configurez la sortie vers logstash en commentant la sortie ‘elasticsearch’ par défaut et en décommentant la ligne de sortie logstash ci-dessous.

output.logstash:
  # Les hôtes Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Enregistrez et quittez.

Ensuite, nous devons éditer le fichier ‘filebeat.reference.yml’ pour activer les modules filebeat, et nous allons activer le module ‘syslog’.

vim filebeat.reference.yml

Activez le module système syslog pour filebeat comme ci-dessous.

- module: system
  # Syslog
  syslog:
    enabled: true

Enregistrez et quittez.

Copiez le fichier de certificat logstash ‘logstash-forwarder.crt’ dans le répertoire ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

L’installation et la configuration de Filebeat sont terminées. Maintenant, démarrez le service filebeat et ajoutez-le au démarrage.

systemctl start filebeat  
systemctl enable filebeat

Vérifiez le service filebeat en utilisant les commandes ci-dessous.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

Les expéditeurs filebeat sont en cours d’exécution sur le serveur CentOS 7.5.

Filebeat est en cours d'exécution

Étape 4 - Tester

Ouvrez votre navigateur web et tapez le nom de domaine de la pile élastique, le mien est : ‘elastic-stack.io’.

Vous serez invité à entrer le nom d’utilisateur et le mot de passe de l’authentification de base pour le tableau de bord Kibana.

Tapez le nom d’utilisateur ‘elastic’ avec votre mot de passe.

Maintenant, vous obtiendrez le beau tableau de bord kibana, cliquez sur le bouton ‘Configurer les modèles d’index’ à droite.

Tableau de bord Kibana

Définissez le modèle d’index ‘filebeat-*’ et cliquez sur le bouton ‘Étape suivante’.

Définir un filebeat

Pour le ‘nom du champ de filtre temporel’, choisissez le ‘@timestamp’ et cliquez sur ‘Créer le modèle d’index’.

Créer un index

Et le modèle d’index filebeat a été créé.

Modèle d'index Filebeat créé

Ensuite, nous allons essayer d’obtenir les informations de journal pour les échecs de connexion SSH sur chaque serveur client ‘elk-client01’ système Ubuntu et ‘elk-client02’ système CentOS.

Dans le tableau de bord Kibana, cliquez sur le menu ‘Découvrir’ pour obtenir tous les journaux du serveur.

Définissez ‘beat.hostname’ sur le serveur ‘elk-client01’, la ‘source’ est le fichier ‘/var/log/auth.log’, et vous obtiendrez le résultat comme indiqué ci-dessous.

Résultat du journal

Et voici les détails d’exemple du journal pour le mot de passe SSH échoué à partir du fichier ‘auth.log’.

Échec de la connexion SSH

Pour le serveur ‘elk-client02’ CentOS, définissez ‘beat.hostname’ sur le serveur ‘elk-client02’, la ‘source’ est le fichier ‘/var/log/secure’, et vous obtiendrez le résultat comme indiqué ci-dessous.

Rapport pour le serveur 2

Et voici les détails d’exemple du journal pour le mot de passe SSH échoué à partir du fichier ‘secure’.

Rapport de connexion

L’installation et la configuration de l’Elastic Stack et de l’Elastic Beat ‘Filebeat’ ont été complétées avec succès.

Référence

Share: X/Twitter LinkedIn

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

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