Présentation
La pile ELK est un ensemble d'applications permettant de récupérer et de gérer les fichiers journaux.
Il s'agit d'une collection de trois outils open source, Elasticsearch , Kibana , et Logstash . La pile peut être encore améliorée avec Beats , un plugin léger pour agréger les données de différents flux de données.
Dans ce didacticiel, découvrez comment installer la pile logicielle ELK sur Ubuntu 18.04 / 20.04.
Prérequis
- Un système Linux exécutant Ubuntu 20.04 ou 18.04
- Accès à une fenêtre de terminal/ligne de commande (Rechercher> Terminal )
- Un compte utilisateur avec sudo ou racine privilèges
- Java version 8 ou 11 (nécessaire pour Logstash)
Étape 1 :Installer les dépendances
Installer Java
La pile ELK nécessite l'installation de Java 8. Certains composants sont compatibles avec Java 9, mais pas Logstash.
Si vous avez déjà installé Java 8, passez à Installer Nginx.
1. Si vous n'avez pas installé Java 8, installez-le en ouvrant une fenêtre de terminal et en saisissant ce qui suit :
sudo apt-get install openjdk-8-jdk
2. Si vous y êtes invité, saisissez y
et appuyez sur Entrée pour que le processus se termine.
Installer Nginx
Nginx fonctionne comme un serveur Web et un serveur proxy. Il est utilisé pour configurer l'accès contrôlé par mot de passe au tableau de bord Kibana.
1. Installez Nginx en saisissant ce qui suit :
sudo apt-get install nginx
2. Si vous y êtes invité, saisissez y
et appuyez sur Entrée pour que le processus se termine.
Étape 2 :Ajouter un référentiel élastique
Les référentiels élastiques permettent d'accéder à tous les logiciels open source de la pile ELK. Pour les ajouter, commencez par importer la clé GPG.
1. Saisissez ce qui suit dans une fenêtre de terminal pour importer la clé PGP pour Elastic :
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2. Le système doit répondre par OK , comme le montre l'image ci-dessous.
3. Ensuite, installez le apt-transport-https paquet :
sudo apt-get install apt-transport-https
4. Ajoutez le référentiel Elastic à la liste des référentiels de votre système :
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
Étape 3 :Installez Elasticsearch
1. Avant d'installer Elasticsearch, mettez à jour les référentiels en saisissant :
sudo apt-get update
2. Installez Elasticsearch avec la commande suivante :
sudo apt-get install elasticsearch
Configurer Elasticsearch
1. Elasticsearch utilise un fichier de configuration pour contrôler son comportement. Ouvrez le fichier de configuration pour le modifier dans un éditeur de texte de votre choix. Nous utiliserons nano :
sudo nano /etc/elasticsearch/elasticsearch.yml
2. Vous devriez voir un fichier de configuration avec plusieurs entrées et descriptions différentes. Faites défiler vers le bas pour trouver les entrées suivantes :
#network.host: 192.168.0.1
#http.port: 9200
3. Décommentez les lignes en supprimant le hash (#
) signer au début des deux lignes et remplacez 192.168.0.1
avec localhost
.
Il devrait se lire :
network.host: localhost
http.port: 9200
4. Juste en dessous, retrouvez la Découverte section. Nous ajoutons une ligne supplémentaire, car nous configurons un cluster à nœud unique :
discovery.type: single-node
Pour plus de détails, voir l'image ci-dessous.
5. Par défaut, taille du tas JVM est fixé à 1 Go. Nous vous recommandons de ne pas le régler sur plus de la moitié de la taille de votre mémoire totale. Ouvrez le fichier suivant pour le modifier :
sudo nano /etc/elasticsearch/jvm.options
6. Trouvez les lignes commençant par -Xms
et -Xmx
. Dans l'exemple ci-dessous, le maximum (-Xmx
) et minimum (-Xms
) la taille est définie sur 512 Mo.
Démarrer Elasticsearch
1. Démarrez le service Elasticsearch en exécutant un systemctl
commande :
sudo systemctl start elasticsearch.service
Le démarrage du service par le système peut prendre un certain temps. Il n'y aura pas de sortie en cas de succès.
2. Activez Elasticsearch pour qu'il démarre au démarrage :
sudo systemctl enable elasticsearch.service
Tester Elasticsearch
Utilisez la curl
commande pour tester votre configuration. Saisissez ce qui suit :
curl -X GET "localhost:9200"
Le nom de votre système doit s'afficher, et elasticsearch pour le nom du cluster. Cela indique qu'Elasticsearch est fonctionnel et écoute sur le port 9200 .
Étape 4 :Installer Kibana
Il est recommandé d'installer Kibana ensuite. Kibana est une interface utilisateur graphique permettant d'analyser et d'interpréter les fichiers journaux collectés.
1. Exécutez la commande suivante pour installer Kibana :
sudo apt-get install kibana
2. Laissez le processus se terminer. Une fois terminé, il est temps de configurer Kibana.
Configurer Kibana
1. Ensuite, ouvrez le kibana.yml fichier de configuration pour l'édition :
sudo nano /etc/kibana/kibana.yml
2. Supprimez le #
signez au début des lignes suivantes pour les activer :
#server.port: 5601
#server.host: "your-hostname"
#elasticsearch.hosts: ["http://localhost:9200"]
Les lignes mentionnées ci-dessus doivent ressembler à ceci :
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
3. Enregistrez le fichier (Ctrl+o
) et quitter (Ctrl+ x
).
Démarrer et activer Kibana
1. Démarrez le service Kibana :
sudo systemctl start kibana
Il n'y a pas de sortie si le service démarre avec succès.
2. Ensuite, configurez Kibana pour qu'il se lance au démarrage :
sudo systemctl enable kibana
Autoriser le trafic sur le port 5601
Si le pare-feu UFW est activé sur votre système Ubuntu, vous devez autoriser le trafic sur le port 5601 pour accéder au tableau de bord Kibana.
Dans une fenêtre de terminal, exécutez la commande suivante :
sudo ufw allow 5601/tcp
La sortie suivante devrait s'afficher :
Tester Kibana
Pour accéder à Kibana, ouvrez un navigateur Web et accédez à l'adresse suivante :
http://localhost:5601
Le tableau de bord Kibana se charge.
Si vous recevez un message "Le serveur Kibana n'est pas encore prêt" erreur, vérifiez si les services Elasticsearch et Kibana sont actifs.
Étape 5 :Installer Logstash
Logstash est un outil qui collecte des données à partir de différentes sources. Les données qu'il collecte sont analysées par Kibana et stockées dans Elasticsearch.
Installez Logstash en exécutant la commande suivante :
sudo apt-get install logstash
Démarrer et activer Logstash
1. Démarrez le service Logstash :
sudo systemctl start logstash
2. Activez le service Logstash :
sudo systemctl enable logstash
3. Pour vérifier l'état du service, exécutez la commande suivante :
sudo systemctl status logstash
Configurer Logstash
Logstash est une partie hautement personnalisable de la pile ELK. Une fois installé, configurez son INPUT , FILTRES , et SORTIE pipelines en fonction de votre propre cas d'utilisation.
Tous les fichiers de configuration Logstash personnalisés sont stockés dans /etc/logstash/conf.d/ .
Étape 6 :Installer Filebeat
Filebeat est un plugin léger utilisé pour collecter et envoyer des fichiers journaux. C'est le module Beats le plus couramment utilisé. L'un des principaux avantages de Filebeat est qu'il ralentit son rythme si le service Logstash est submergé de données.
Installez Filebeat en exécutant la commande suivante :
sudo apt-get install filebeat
Laissez l'installation se terminer.
Configurer Filebeat
Filebeat, par défaut, envoie des données à Elasticsearch. Filebeat peut également être configuré pour envoyer des données d'événement à Logstash.
1. Pour configurer cela, modifiez le filebeat.yml fichier de configuration :
sudo nano /etc/filebeat/filebeat.yml
2. Sous Elasticsearch osortie section, commentez les lignes suivantes :
# output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
3. Sous la sortie Logstash section,supprimez le signe dièse (#
) dans les deux lignes suivantes :
# output.logstash
# hosts: ["localhost:5044"]
Cela devrait ressembler à ceci :
output.logstash
hosts: ["localhost:5044"]
Pour plus de détails, voir l'image ci-dessous.
4. Ensuite, activez le système Filebeat module, qui examinera les journaux système locaux :
sudo filebeat modules enable system
La sortie doit indiquer Enabled system
.
5. Ensuite, chargez le modèle d'index :
sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Le système effectuera un certain travail, en analysant votre système et en se connectant à votre tableau de bord Kibana.
Démarrer et activer Filebeat
Démarrez et activez le service Filebeat :
sudo systemctl start filebeat
sudo systemctl enable filebeat
Vérifier la réception des données par Elasticsearch
Enfin, vérifiez si Filebeat envoie les fichiers journaux à Logstash pour traitement. Une fois traitées, les données sont envoyées à Elasticsearch.
curl -XGET http://localhost:9200/_cat/indices?v