GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer la pile ELK sur Debian 8

Présentation

La pile ELK est un ensemble d'outils populaires composé d'Elasticsearch, Logstash et Kibana. Ces trois outils forment une pile logicielle qui peut fonctionner comme un outil extrêmement puissant d'analyse centralisée des données réseau et de visualisation des journaux de serveur. La pile ELK est également conçue pour être très capable d'évoluer sur plusieurs serveurs pour l'équilibrage de charge. Dans ce tutoriel, nous allons installer tous les composants de la pile ELK sur un seul serveur.

Prérequis

  • Un serveur exécutant Debian 8. Si vous n'avez pas encore de serveur, Atlantic.net propose des serveurs d'hébergement VPS fiables que vous pouvez lancer en moins de 30 secondes.

D'autres systèmes d'exploitation sont pris en charge, mais cet article se concentre sur Debian 8.

Installation de la pile ELK sur Debian 8

Sudo

Travailler en tant qu'utilisateur root est généralement déconseillé du point de vue de la sécurité. Utilisation de sudo vous permet d'exécuter des commandes nécessitant des privilèges root d'un utilisateur non root. Par défaut, Debian n'inclut pas le sudo package, nous allons donc l'installer.

apt-get install sudo

Vous devrez ensuite ajouter le compte utilisateur standard au sudo groupe que vous souhaitez pouvoir exécuter des commandes de privilège root. Remplacez <username> avec le nom d'utilisateur du compte.

adduser  sudo

Déconnectez-vous et reconnectez-vous avec votre nouvel utilisateur, et nous pourrons continuer.

La première fois que vous utilisez sudo dans une session vous demandera le mot de passe de l'utilisateur actuel.

Installer Elasticsearch

Commençons le processus en installant Java sur notre serveur.

Elasticsearch, le composant d'indexation et de recherche de données de la pile ELK, nécessite l'exécution de Java. Nous allons installer la version OpenJDK 7, mais vous pouvez installer n'importe quel JRE répertorié dans la matrice de prise en charge d'Elasticsearch.

Tout d'abord, nous devrons mettre à jour les listes de packages sur notre serveur.

sudo apt-get update

Nous pouvons maintenant installer le JRE.

sudo apt-get install openjdk-7-jre

Cette installation peut prendre un certain temps car il y a beaucoup de dépendances à trier par APT.

Une fois cela terminé, nous pouvons installer Elasticsearch. La version d'Elasticsearch dans les dépôts officiels de Debian est très ancienne et n'est pas prise en charge par les nouvelles versions de Kibana, nous allons donc ajouter le dépôt elastic.co à notre serveur et installer Elasticsearch à partir de là.

Téléchargez et installez la clé de signature du référentiel pour elastic.co.

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key ajouter -

Ensuite, nous pouvons ajouter le référentiel au /etc/apt/sources.list.d/ répertoire.

echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/Elasticsearch-2.x.list

À ce stade, nous devons à nouveau mettre à jour les listes de packages, ce qui ajoutera la nouvelle version d'Elasticsearch du référentiel elastic.co aux listes de packages.

sudo apt-get update

Maintenant, nous pouvons installer Elasticsearch.

sudo apt-get install elasticsearch

Nous devrons également configurer le service Elasticsearch pour qu'il se lance au démarrage du système.

sudo systemctl daemon-reloadsudo systemctl enable elasticsearch.service

C'est ça! Vous pouvez maintenant démarrer le service Elasticsearch.

sudo systemctl démarrer elasticsearch.service

Et assurez-vous qu'il est actif.

statut systemctl elasticsearch.service

Configuration d'Elasticsearch

Dans notre cas, ce n'est pas nécessaire, mais si Kibana et Elasticsearch s'exécutent sur différents serveurs (comme le font de nombreux déploiements ELK), vous devrez modifier le fichier de configuration Elasticsearch, /etc/elasticsearch/elasticsearch.yml sur le serveur Elasticsearch, et ajoutez les deux lignes suivantes n'importe où dans le fichier :

http.cors.allow-origin :"/.*/"http.cors.enabled :vrai

Dans le même fichier, ajoutez une ligne pour nommer le cluster Elasticsearch. Le nom par défaut est elasticsearch.

cluster.name :elasticcluster

Modification du fichier de configuration Elasticsearch

Assurez-vous de ne pas ajouter de lignes vides ou d'espaces au fichier de configuration, car les fichiers YAML sont sensibles aux espaces.

Et puis redémarrez le démon Elasticsearch.

sudo systemctl redémarre elasticsearch.service

Encore une fois, assurez-vous que le démon s'exécute correctement.

statut systemctl elasticsearch.service

État du service Elasticsearch

Installer Logstash

Nous pouvons installer Logstash, le composant d'envoi et de transformation des journaux de la pile ELK, à peu près de la même manière qu'Elasticsearch.

Si vous avez suivi ce tutoriel, vous aurez déjà ajouté la clé de signature du package Elastic.co. Ainsi, nous pouvons ignorer cette partie et ajouter immédiatement le référentiel logstash Elastic.co à notre /etc/apt/sources.list.d/ .

echo "deb http://packages.elastic.co/logstash/2.0/debian stable main" | sudo tee -a /etc/apt/sources.list

Et, bien sûr, mettez à jour les listes de packages.

sudo apt-get update

Ensuite, nous pouvons installer Logstash.

sudo apt-get install logstash

Comme avec Elasticsearch, nous devrons activer Logstash au démarrage du système.

sudo systemctl daemon-reloadsudo systemctl enable logstash.service

Nous pouvons maintenant démarrer Logstash.

sudo systemctl démarrer logstash.service

Et assurez-vous qu'il est en cours d'exécution.

statut systemctl logstash.service

Nous pouvons maintenant passer à sa configuration !

Configuration Logstash

Logstash utilise des fichiers de configuration situés dans /etc/logstash/conf.d . Nous devrons créer trois nouveaux fichiers dans ce répertoire car il n'y a pas de configuration par défaut.

cd /etc/logstash/conf.dsudo touch 01-input.conf 10-syslog.conf 30-lumberjack-output.conf

Nous allons utiliser le premier fichier, 01-input.conf , pour spécifier comment Lumberjack écoutera les journaux entrants.

Ouvrez le fichier pour le modifier (en remplaçant l'éditeur de texte que vous préférez, si vous avez une préférence).

éditeur sudo 01-input.conf

Ajoutez le bloc suivant :

input { bûcheron { port => 5000 type => "logs" ssl_certificate => "/etc/ssl/certs/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" } } 

Enregistrez et fermez le fichier.

Ne vous inquiétez pas encore des certificats SSL. Nous les générerons sous peu.

Ensuite, nous devons ajouter une configuration de filtre à 10-syslog.conf . Un filtre peut correspondre aux messages entrants (logs) et appliquer des transformations aux données avant de les indexer dans Elasticsearch.

Ouvrez le fichier dans votre éditeur,

éditeur sudo 10-syslog.conf

et ajoutez ce qui suit :

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}" ] } syslog_pri { } date { match => [ "syslog_timestamp", "MMM j HH:mm:ss", "MMM jj HH:mm:ss" ] } }}

Ce filtre intercepte tous les journaux entrants qui correspondent au format syslog standard, puis ajoute un champ d'horodatage et de nom d'hôte à chaque message. Il extrait également certaines informations du message de journal, telles que le PID syslog, le programme qui a généré le message, et le message syslog lui-même.

Un nouveau filtre devra être écrit pour chaque nouveau type de journal que vous souhaitez utiliser avec Logstash/Elasticsearch.

Enfin, nous pouvons accéder à notre fichier de configuration de sortie, 30-lumberjack-output.conf . Ce fichier contiendra un simple bloc de sortie spécifiant que les messages indexés doivent être envoyés à Elasticsearch, ainsi que le nom du cluster.

Ouvrez le fichier dans votre éditeur.

éditeur sudo 30-lumberjack-output.conf

Ajoutez le bloc suivant :

sortie { elasticsearch { hosts => ["localhost"] }}

Nous allons maintenant générer les certificats SSL pour votre pile ELK.

Générer des certificats SSL

Le protocole Lumberjack utilisé par Logstash pour communiquer les messages de journal est conçu pour être sécurisé de bout en bout, et SSL est une exigence stricte. Ne vous inquiétez pas, cependant, il est assez simple de générer les certificats.

Parce que nous utilisons une adresse IP plutôt qu'un nom d'hôte pour les servers directive dans /etc/logstash-forwarder.conf , nous devrons ajouter un champ IP SAN au certificat SSL généré. Incluez-en un en ajoutant un subjectAltName ligne vers le fichier de configuration OpenSSL, /etc/ssl/openssl.cnf .

éditeur sudo /etc/ssl/openssl.cnf

Localisez la ligne contenant [ v3_ca ] , et insérez la ligne suivante en dessous. (Remplacez le 127.0.0.1 avec l'adresse IP de votre serveur Logstash, si Logstash est installé sur un serveur séparé.)

[ v3_ca ]subjectAltName =IP:127.0.0.1

Enregistrez et fermez le fichier. Nous pouvons maintenant générer le certificat SSL.

sudo openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout /etc/ssl/logstash-forwarder.key -out /etc/ssl/certs/logstash-forwarder.crtsudo chown logstash:logstash /etc/ ssl/logstash-forwarder.keysudo chmod 600 /etc/ssl/logstash-forwarder.key

Maintenant, redémarrez logstash et vérifiez s'il a démarré correctement.

sudo systemctl redémarre logstash.servicesystemctl status logstash.service

État du service Logstash

Même s'il a démarré, vérifiez les fichiers journaux dans /var/log/logstash/logstash.* et assurez-vous qu'il n'y a pas d'erreurs au démarrage.

Installation de Logstash-Forwarder

Maintenant que nous avons installé le composant côté serveur de Logstash, nous devons installer le client Logstash-Forwarder sur chaque serveur dont vous souhaitez surveiller les journaux.

Dans ce didacticiel, nous installerons Logstash-Forwarder sur le même serveur exécutant le reste d'ELK, mais normalement Logstash-Forwarder fonctionnerait sur d'autres serveurs.

Tout d'abord, nous devrons à nouveau ajouter un nouveau référentiel au système.

echo "deb http://packages.elasticsearch.org/logstashforwarder/debian stable main" | sudo tee -a /etc/apt/sources.list.d/logstash-forwarder.list

Et, encore une fois, mettez à jour les listes de packages.

sudo apt-get update

Maintenant, nous pouvons installer Logstash-Forwarder.

sudo apt-get install logstash-forwarder

Une fois l'installation terminée, ouvrez le fichier de configuration de Logstash-Forwarder.

éditeur sudo /etc/logstash-forwarder.conf

Effacez la configuration par défaut existante et ajoutez le bloc suivant :

{ "network":{ "servers":[ "127.0.0.1:5000" ], "timeout":15, "ssl ca":"/etc/ssl/certs/logstash-forwarder.crt" }, "files":[ { "paths":[ "/var/log/syslog", "/var/log/auth.log" ], "fields":{ "type":"syslog" } } ]} 

Cette configuration vérifiera /var/log/syslog et /var/log/auth.log pour les nouvelles entrées, puis marquera chaque message sortant de ces fichiers avec syslog dans le type champ.

Si vous installez Logstash-Forwarder sur un hôte séparé, assurez-vous de changer les servers directive pour inclure l'adresse IP du serveur distant. Assurez-vous également de copier le fichier de certificat SSL à l'emplacement correct sur le serveur distant.

Maintenant, nous allons activer Logstash-Forwarder au démarrage.

sudo systemctl daemon-reloadsudo systemctl enable logstash-forwarder.service

Enfin, nous pouvons redémarrer le service Logstash-Forwarder pour appliquer les modifications de configuration.

sudo systemctl redémarrer logstash-forwarder.service

Si le démon démarre correctement, nous pouvons passer à la configuration de Kibana et à la mise en place et à l'exécution de la pile ELK complète.

statut systemctl logstash-forwarder.service

État du service Logstash-forwarder

Pour vérifier si logstash-forwarder fonctionne, regardez le fichier journal pour les événements en cours de traitement.

tail -f /var/log/logstash-forwarder/*

Fichiers journaux Logstash-Forwarder

Installer Kibana

Malheureusement, au moment de la rédaction de cet article, elastic.co ne propose aucune version packagée de Kibana, laissant la gestion du démon à l'utilisateur. Nous devrons créer un fichier de service systemd et installer manuellement Kibana.

Accédez au /opt répertoire et téléchargez Kibana.

cd /optwget -qO - https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz | sudo tar -xzf -

Nous devrons créer un nouvel utilisateur pour que Kibana s'exécute et définir la propriété du répertoire du programme.

sudo useradd kibanasudo chown kibana:kibana kibana-4.3.0-linux-x64/ -R

Suite à cette étape, nous pouvons créer le fichier de service systemd.

sudo touch /usr/lib/systemd/system/kibana.service

Ajoutez la définition de service au fichier.

éditeur sudo /usr/lib/systemd/system/kibana.service[Unit]Description=kibanaDocumentation=http://www.elastic.coWants=network-online.targetAfter=network-online.target[Service]User=kibanaGroup=kibanaExecStart=/opt/kibana-4.3.0-linux-x64/bin/kibanaRestart=alwaysStandardOutput=null# Connecte l'erreur standard à journalStandardError=journal[Install]WantedBy=multi-user.target

Nous devons maintenant recharger toutes les unités systemd, puis activer le service Kibana.

sudo systemctl daemon-reloadsudo systemctl enable kibana.service

Maintenant, nous pouvons démarrer Kibana.

sudo systemctl start kibana.service

Revérifiez pour vous assurer qu'il fonctionne, et c'est parti !

statut systemctl kibana.service

État du service Kibana

Configuration Kibana

Le fichier de configuration principal de Kibana sera situé dans /opt/kibana-4.3.0-linux-x64/config/kibana.yml . Les options par défaut devraient suffire pour ce tutoriel, mais vous pouvez modifier les paramètres selon les besoins de votre configuration.

Accédez à l'adresse IP de votre serveur dans un navigateur Web, au port 5601, pour accéder à la page d'initialisation de Kibana. Kibana vous demandera de configurer un modèle d'index ; sélectionnez received_at pour le nom du champ horaire et appuyez sur Create .

Créer un modèle d'index dans Kibana

C'est ça! Les composants de votre pile ELK (Elasticsearch, Logstash et Kibana) sont installés et opérationnels.

Où aller ensuite

Merci d'avoir suivi ce didacticiel sur l'installation de la pile ELK sur Debian 8. Veuillez revenir avec nous pour consulter des articles connexes et tester l'un de nos serveurs VPS ultra-rapides.


Linux
  1. Comment installer Elasticsearch sur Debian 9

  2. Comment installer Elasticsearch sur Debian 10

  3. Comment installer la pile ELK sur RHEL 8

  4. Comment installer ELK Stack sur Ubuntu 16.04

  5. Comment installer MongoDB sur Debian 11

Comment installer la pile LEMP sur Debian 11

Comment installer la pile LAMP sur Debian 11

Comment installer Go sur Debian 11

Comment installer la pile ELK sur CentOS 7

Comment installer la pile ELK sur CentOS 8

Comment installer ELK Stack sur Ubuntu 20.04