Présentation
La pile ELK est un groupe de progiciels open source utilisés pour gérer les journaux. Il est généralement utilisé pour les journaux de serveur, mais il est également flexible (élastique) pour tout projet générant de grands ensembles de données.
Ce guide vous montre comment installer la pile ELK (Elasticsearch, Logstash et Kibana) sur le serveur CentOS 8.
Prérequis
- Un système avec CentOS 8 installé
- 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)
Que signifie la pile ELK ?
ELK signifie Elasticsearch, Logstash et Kibana. Ce sont les trois composants de la pile ELK.
Elasticsearch (données d'index) - C'est le cœur du logiciel Elastic. Elasticsearch est un moteur de recherche et d'analyse utilisé pour trier les données.
Logstash (collecte des données) – Ce package se connecte à diverses sources de données, les rassemble et les dirige vers le stockage. Comme son nom l'indique, il collecte et "stocke" vos fichiers journaux.
Kibana (visualise les données) – Kibana est un outil graphique de visualisation des données. Utilisez-le pour générer des tableaux et des graphiques afin de donner un sens aux données brutes de vos bases de données.
Étape 1 :Installez OpenJDK 8 Java
Si Java 8 (ou 11) est déjà installé sur votre système, vous pouvez ignorer cette étape.
Sinon, ouvrez une fenêtre de terminal et saisissez ce qui suit :
sudo yum install java-1.8.0-openjdk
Le système vérifiera les référentiels, puis vous demandera de confirmer l'installation. Tapez Y
puis Entrée . Laissez le processus se terminer.
Étape 2 :Ajouter des référentiels Elasticsearch
La pile ELK peut être téléchargée et installée à l'aide du gestionnaire de packages YUM. Cependant, le logiciel n'est pas inclus dans les référentiels par défaut.
Importer la clé PGP Elasticsearch
Ouvrez une fenêtre de terminal, puis saisissez le code suivant :
sudo rpm ––import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Cela ajoutera la clé de signature publique Elasticsearch à votre système. Cette clé validera le logiciel Elasticsearch lorsque vous le téléchargerez.
Ajouter le référentiel RPM Elasticsearch
Vous devez créer le fichier de configuration du référentiel dans /etc/yum.repos.d/ . Commencez par vous déplacer dans le répertoire :
cd /etc/yum.repos.d/
Ensuite, créez le fichier de configuration dans un éditeur de texte de votre choix (nous utilisons Vim) :
sudo vim elasticsearch.repo
Saisissez ou copiez les lignes suivantes :
[elasticstack]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Si vous utilisez Vim, appuyez sur Échap puis tapez :wq
et appuyez sur Entrée .
Enfin, mettez à jour les listes de packages de vos référentiels :
dnf update
Étape 3 :Installer et configurer Elasticsearch
L'ordre d'installation est important. Commencez par installer Elasticsearch.
Dans une fenêtre de terminal, tapez la commande :
sudo dnf install elasticsearch
Cela analysera tous vos référentiels pour le package Elasticsearch.
Le système calculera la taille du téléchargement, puis vous demandera de confirmer l'installation. Tapez Y
puis Entrée .
Configurer Elasticsearch
Une fois l'installation terminée, ouvrez et modifiez le fichier /etc/elasticsearch/elasticsearch.yml
fichier de configuration à l'aide d'un éditeur de texte :
sudo vim /etc/elasticsearch/elasticsearch.yml
Faites défiler jusqu'à la section intitulée NETWORK
. Sous cette entrée, vous devriez voir les lignes suivantes :
# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 192.168.0.1
#
# Set a custom port for HTTP:
#
#http.port: 9200
Ajustez le network.host
à l'adresse IP de votre serveur ou définissez-le sur localhost si vous configurez un seul nœud localement. Ajustez le http.port
aussi.
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
#
# Set a custom port for HTTP:
#
http.port: 9200
Pour plus de détails, voir l'image ci-dessous :
Si vous utilisez Vim, appuyez sur ESC
, saisissez :wq
et appuyez sur Enter
pour enregistrer les modifications et quitter.
Démarrer Elasticsearch
Redémarrez le système pour que les modifications prennent effet :
sudo reboot
Une fois le système redémarré, lancez elasticsearch service :
sudo systemctl start elasticsearch
Il n'y aura pas de sortie si la commande a été exécutée correctement.
Maintenant, configurez le service pour qu'il se lance au démarrage :
sudo systemctl enable elasticsearch
Tester Elasticsearch
Testez le logiciel pour vous assurer qu'il répond à une connexion :
curl -X GET "localhost:9200"
Le système devrait afficher toute une liste d'informations. Sur la deuxième ligne, vous devriez voir que le cluster_name
est défini sur elasticsearch
. Cela confirme qu'Elasticsearch est en cours d'exécution et écoute sur le port 9200 .
Étape 4 :Installer et configurer Kibana
Kibana est une interface graphique pour l'analyse et l'interprétation des fichiers journaux.
Kibana utilise la même clé GPG qu'Elasticsearch, vous n'avez donc pas besoin de réimporter la clé. De plus, le package Kibana se trouve dans le même référentiel de pile ELK qu'Elasticsearch. Par conséquent, il n'est pas nécessaire de créer un autre fichier de configuration de référentiel.
Pour installer Kibanra, ouvrez une fenêtre de terminal, saisissez ce qui suit :
sudo dnf install kibana
Le système analysera les référentiels, puis demandera une confirmation. Tapez y
puis Entrée et laissez le processus se terminer.
Configurer Kibana
Comme Elasticsearch, vous devrez modifier le .yml fichier de configuration pour Kibana.
Ouvrez le kibana.yml fichier à éditer :
sudo vim /etc/kibana/kibana.yml
Recherchez les lignes suivantes et supprimez le # signe depuis le début de la ligne :
#server.port: 5601
#server.host: "localhost"
#elasticsearch.hosts: ["http://localhost:9200"]
Les lignes doivent maintenant ressembler à ceci :
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
Pour plus de détails, voir l'image ci-dessous.
Pour attribuer un nom personnalisé, modifiez le server.name
ligne.
Effectuez toutes les autres modifications souhaitées. Enregistrez le fichier et quittez (appuyez sur Échap , saisissez :wq
et appuyez sur Entrée ).
Démarrer et activer Kibana
Ensuite, démarrez et activez le service Kibana :
sudo systemctl start kibana
sudo systemctl enable kibana
Autoriser le trafic sur le port 5601
Si firewalld est activé sur votre système CentOS, vous devez autoriser le trafic sur le port 5601 . Dans une fenêtre de terminal, exécutez la commande suivante :
firewall-cmd --add-port=5601/tcp --permanent
Ensuite, rechargez le service firewalld :
firewall-cmd --reload
L'action ci-dessus est une condition préalable si vous avez l'intention d'accéder au tableau de bord Kibana à partir de machines externes.
Tester Kibana
Ouvrez un navigateur Web et saisissez l'adresse suivante :
http://localhost:5601
Le système devrait commencer à charger le tableau de bord Kibana.
Étape 5 :Installer et configurer 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.
Comme les autres parties de la pile ELK, Logstash utilise la même clé et le même référentiel Elastic GPG.
Pour installer logstash sur CentOS 8, dans une fenêtre de terminal, entrez la commande :
sudo dnf install logstash
Tapez Y
et appuyez sur Entrée pour confirmer l'installation.
Configurer Logstash
Stockez tous les fichiers de configuration personnalisés dans /etc/logstash/conf.d/ annuaire. La configuration dépend en grande partie de votre cas d'utilisation et des plugins utilisés.
Pour des exemples de configurations personnalisées, reportez-vous à Exemples de configuration Logstash.
Démarrer Logstash
Démarrez et activez le service Logstash :
sudo systemctl start logstash
sudo systemctl enable logstash
Vous devriez maintenant avoir une installation fonctionnelle d'Elasticsearch, ainsi que le tableau de bord Kibana et le pipeline de collecte de données Logstash.
Étape 6 :Installer Filebeat
Pour simplifier la journalisation, installez un module léger appelé Filebeat . Filebeat est un expéditeur de journaux qui centralise le flux de données.
Pour installer Filebeat, ouvrez une fenêtre de terminal et exécutez la commande :
sudo yum install filebeat
Ensuite, ajoutez le système module, qui examinera les journaux du système local :
sudo filebeat modules enable system
Ensuite, exécutez la configuration de Filebeat :
sudo filebeat setup
Le système effectuera un certain travail, en analysant votre système et en se connectant à votre tableau de bord Kibana.
Démarrez le service Filebeat :
sudo service filebeat start
Lancez votre tableau de bord Kibana dans un navigateur en visitant l'adresse suivante :
http://localhost:5601
Dans la colonne de gauche, cliquez sur Journaux languette. Recherchez et cliquez sur Streamer en direct lien. Vous devriez maintenant voir un flux de données en direct pour vos fichiers journaux locaux.