# Documentation Pile ELK ELK est une pile de logiciels open source qui permet de collecter, stocker et analyser des données de journalisation. ELK est composé de trois composants principaux : Elasticsearch, Logstash et Kibana. Dans ce guide, nous allons vous montrer comment installer et configurer ELK sur un serveur Linux. ## Étape 1 : Prérequis Avant de commencer à installer ELK, vous devez vous assurer que votre serveur répond aux exigences minimales suivantes : - Système d'exploitation : Ubuntu 18.04 LTS ou supérieur - Au moins 4 Go de RAM - Au moins 2 CPU - Espace disque disponible : 50 Go ou plus ## Étape 2 : Installation de Java Elasticsearch et Logstash nécessitent Java pour fonctionner. Vous pouvez vérifier si Java est déjà installé sur votre serveur en exécutant la commande suivante : ``` java -version ``` Si Java n'est pas installé, vous pouvez l'installer en exécutant la commande suivante : ``` sudo apt-get update sudo apt-get install default-jre ``` ## Étape 3 : Installation d'Elasticsearch Elasticsearch est un moteur de recherche distribué qui stocke et indexe les données. Voici comment installer Elasticsearch : Ajouter elastic au repositories ``` sudo apt-get install apt-transport-https sudo apt-get install gnupg 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 ``` Installer ElasticSearch ``` sudo apt-get update && sudo apt-get install elasticsearch ``` Configurez Elasticsearch pour qu'il démarre automatiquement au démarrage du système : ``` sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service ``` Démarrez Elasticsearch : ``` sudo systemctl start elasticsearch.service ``` Vérifiez que Elasticsearch est en cours d'exécution : ``` curl http://localhost:9200 ``` La sortie devrait ressembler à ceci : ``` { "name" : "node-1", "cluster_name" : "elasticsearch", "cluster_uuid" : "d7pXOGOpS8a8t0m8T3tIig", "version" : { "number" : "7.13.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "4d960a0733be83dd2543ca018aa4ddc42e956800", "build_date" : "2021-06-10T21:01:55.251515791Z", "build_snapshot" : false, "lucene_version" : "8.8.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } ``` ## Étape 4 : Installation de Logstash Logstash est un outil de traitement de données qui collecte, transforme et envoie des données à Elasticsearch. Voici comment installer Logstash : Ajouter le repo Logstash ``` sudo apt-get install apt-transport-https sudo apt-get install gnupg 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 ``` Installer Logstash ``` sudo apt-get update && sudo apt-get install logstash ``` Configurez Logstash pour qu'il démarre automatiquement au démarrage du système : ``` sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable logstash.service ``` Créez un fichier de configuration Logstash pour collecter les données de journalisation : ``` sudo nano /etc/logstash/conf.d/logstash.conf ``` Ajoutez le contenu suivant au fichier de configuration : ``` input { file { type => "syslog" path => "/var/log/syslog" } } output { elasticsearch { hosts => ["localhost:9200"] index => "syslog-%{+YYYY.MM.dd}" } } ``` Cela configure Logstash pour collecter les données de journalisation à partir du fichier `/var/log/syslog` et les envoyer à Elasticsearch. Démarrez Logstash : ``` sudo systemctl start logstash.service ``` Vérifiez que Logstash est en cours d'exécution : ``` sudo systemctl status logstash.service ``` ## Étape 5 : Installation de Kibana Kibana est une interface utilisateur pour Elasticsearch qui permet de visualiser et d'analyser les données de journalisation. Voici comment installer Kibana : AJouter le repos ``` sudo apt-get install apt-transport-https sudo apt-get install gnupg 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 ``` Installer Kibana ``` sudo apt-get update && sudo apt-get install kibana ``` Configurez Kibana pour qu'il démarre automatiquement au démarrage du système : ``` sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable kibana.service ``` Ouvrez le fichier de configuration Kibana : ``` sudo nano /etc/kibana/kibana.yml ``` Recherchez la ligne `server.host` et remplacez-la par : ``` server.host: "0.0.0.0" ``` Cela permet à Kibana d'être accessible depuis n'importe quelle adresse IP. Démarrez Kibana : ``` sudo systemctl start kibana.service ``` Vérifiez que Kibana est en cours d'exécution en accédant à l'URL suivante depuis un navigateur web : http://192.168.135.134:5601 ## Conclusion Vous avez maintenant installé et configuré avec succès la pile ELK sur votre serveur Linux. Vous pouvez maintenant commencer à collecter, stocker et analyser vos données de journalisation à l'aide d'Elasticsearch, Logstash et Kibana. ## Installer FileBeat L’Elastic Stack utilise plusieurs expéditeurs de données légers appelés Beats pour collecter des données de diverses sources et les transporter vers Logstash ou Elasticsearch. Voici les Beats qui sont actuellement disponibles chez Elastic : Installez Filebeat en utilisant apt : ```bash sudo apt install filebeat ``` Ensuite, configurez Filebeat pour vous connecter à Logstash. Ici, nous allons modifier l’exemple de fichier de configuration fourni avec Filebeat. Ouvrez le fichier de configuration Filebeat : ```bash sudo nano /etc/filebeat/filebeat.yml ``` Ensuite décommettez ces deux lignes pour éviter l'écoute sur le port 9200 : ```bash #output.elasticsearch: # Array of hosts to connect to. #hosts: ["localhost:9200"] ``` Ensuite configurer la section `output.logstash`. En décommenttans ces deux lignes : ```bash output.logstash: # The Logstash hosts hosts: ["localhost:5044"] ``` Ensuite enregistrer le fichier. La fonctionnalité de Filebeat peut être étendue avec des modules Filebeat. Dans ce tutoriel, nous utiliserons le module system, qui collecte et analyse les journaux créés par le service de journalisation du système des distributions Linux courantes. Activons-le : ```bash sudo filebeat modules enable system ``` Puis consulter la liste des modules : ```bash sudo filebeat modules list ``` Ensuite, nous devons mettre en place les pipelines d’ingestion de Filebeat, qui analysent les données du journal avant de les envoyer à Elasticsearch via Logstash. Pour charger le pipeline d’ingestion pour le module system, entrez la commande suivante : ```bash sudo filebeat setup --pipelines --modules system ``` Ensuite, chargez le modèle d’index dans Elasticsearch. Un [_index Elasticsearch_](https://www.elastic.co/blog/what-is-an-elasticsearch-index) est une collection de documents qui présentent des caractéristiques similaires. Les index sont identifiés par un nom, qui est utilisé pour se référer à l’index lors de l’exécution de diverses opérations en son sein. Le modèle d’index sera automatiquement appliqué lors de la création d’un nouvel index. Pour charger le modèle, utilisez la commande suivante : ```bash sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]' ``` Filebeat contient des exemples de tableaux de bord Kibana qui vous permettent de visualiser les données Filebeat dans Kibana. Avant de pouvoir utiliser les tableaux de bord, vous devez créer le modèle d’index et charger les tableaux de bord dans Kibana. Lors du chargement des tableaux de bord, Filebeat se connecte à Elasticsearch pour vérifier les informations de version. Pour charger des tableaux de bord lorsque Logstash est activé, vous devez désactiver la sortie Logstash et activer la sortie Elasticsearch : ```bash sudo filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601 ``` Vous pouvez maintenant démarrer et activer Filebeat : ```bash sudo systemctl start filebeat sudo systemctl enable filebeat ``` Pour vérifier que Elasticsearch reçoit bel et bien ces données, interrogez l’index Filebeat avec cette commande : ```bash curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty' ```