La pile ELK est une plate-forme d'analyse de données complète, composée d'Elasticsearch, Logstash et de l'outil open source Kibana. Il vous aide à stocker et à gérer les journaux de manière centralisée et vous permet d'analyser les problèmes.
Cet article vous aide à installer la pile ELK sur Debian 10 / Debian 9.
Installer la pile ELK
Elasticsearch - Il stocke les journaux entrants de Logstash et offre la possibilité de rechercher les journaux/données en temps réel
Logstash – Traitement (collecte, enrichissement et envoi à Elasticsearch) des journaux entrants envoyés par beats (forwarder).
Kibana – Fournit une visualisation des événements et des journaux.
Beats :installé sur les machines clientes, et il envoie les journaux à Logstash ou Elasticsearch via le protocole beats.
Installer Java
Elasticsearch nécessite OpenJDK ou Oracle JDK disponible sur votre machine. Ici, pour cette démo, j'utilise OpenJDK.
sudo apt update sudo apt install -y openjdk-11-jre
Vérifiez la version Java.
java -version
Sortie :
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)
Si vous souhaitez utiliser OracleJDK, lisez :
LIRE :Comment installer Oracle Java sur Debian 10 / Debian 9
Ajouter un référentiel élastique
Installez le support wget et HTTPS pour apt.
sudo apt install -y wget apt-transport-https curl
Les packages ELK peuvent être obtenus à partir du référentiel Elastic.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Installer et configurer Elasticsearch
Pour commencer, nous allons maintenant installer le serveur Elasticsearch, un moteur de recherche open source basé sur Lucene. Il fournit un moteur de recherche en texte intégral distribué en temps réel et multi-locataire avec une interface Web HTTP et des documents JSON sans schéma.
Elasticsearch stocke les données envoyées par Logstash et les affiche via Kibana à la demande des utilisateurs.
Installez Elasticsearch à l'aide de la commande suivante.
sudo apt update sudo apt install -y elasticsearch-oss
Démarrez le service Elasticsearch.
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
Attendez quelques minutes et exécutez la commande suivante pour voir l'état de l'interface Elasticsearch REST.
curl -X GET http://localhost:9200
Sortie :
{ "name" : "debian10", "cluster_name" : "elasticsearch", "cluster_uuid" : "6y4OcEnYS3qkN_AetQAYMQ", "version" : { "number" : "7.8.0", "build_flavor" : "oss", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
La sortie ci-dessus confirme qu'Elasticsearch fonctionne correctement.
Installer et configurer Logstash
Logstash est un moteur open source de collecte de données et d'analyse de journaux. Il collecte les journaux, les analyse et les stocke sur Elasticsearch pour la recherche. Plus de 160 plugins sont disponibles pour Logstash, qui offre la possibilité de traiter différents types d'événements sans travail supplémentaire.
sudo apt install -y logstash-oss
Le fichier de configuration Logstash se compose de trois sections, à savoir l'entrée, le filtre et la sortie. Vous pouvez mettre les trois sections dans un seul fichier, ou un fichier séparé pour chaque section, se terminant par .conf.
Ici, nous utilisons un seul fichier pour placer les sections d'entrée, de filtre et de sortie. Créez un fichier de configuration sous le répertoire /etc/logstash/conf.d/.
sudo nano /etc/logstash/conf.d/beats-syslog.conf
Dans la section d'entrée, nous allons configurer Logstash pour qu'il écoute sur le port 5044 les journaux entrants, à partir des beats (transmetteur) qui se trouvent sur les machines clientes.
input { beats { port => 5044 ssl => false } }
Dans la section des filtres, nous utiliserons Grok pour analyser les journaux avant de les envoyer à Elasticsearch, pour les stocker.
Le filtre grok suivant recherchera les journaux étiquetés syslog et essaiera de les analyser pour créer un index structuré.
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Pour plus de modèles de filtres GROK, jetez un œil ici.
Dans la section de sortie, nous définirons où les journaux doivent être stockés, évidemment Elasticsearch en cas de pile ELK.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Maintenant, démarrez et activez le service Logstash.
sudo systemctl start logstash sudo systemctl enable logstash
Si vous rencontrez un problème, consultez le fichier Logstash.
sudo cat /var/log/logstash/logstash-plain.log
Installer et configurer Kibana
Kibana fournit une visualisation des données stockées sur Elasticsearch. Installez Kibana à l'aide de la commande suivante.
sudo apt install -y kibana-oss
Par défaut, Kibana écoute sur l'hôte local, ce qui signifie que vous ne pouvez pas accéder à l'interface Web de Kibana depuis une autre machine. Modifiez le fichier /etc/kibana/kibana.yml.
sudo nano /etc/kibana/kibana.yml
Modifiez la ligne ci-dessous avec l'adresse IP de votre serveur.
server.host: "192.168.0.10"
Démarrez et activez Kibana au démarrage de la machine.
sudo systemctl start kibana sudo systemctl enable kibana
Installer Filebeat
Filebeat est un logiciel qui s'exécute sur la machine cliente. Il envoie les journaux au serveur Logstash pour l'analyse ou à Elasticsearch pour le stockage dépend de la configuration.
Installez le support wget et HTTPS pour apt.
sudo apt install -y wget apt-transport-https curl
Les packages ELK peuvent être obtenus à partir du référentiel Elastic.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Installez Filebeat à l'aide de la commande suivante.
sudo apt update sudo apt install -y filebeat-oss
Le fichier de configuration principal de filebeat est /etc/filebeat/filebeat.yml.
sudo nano /etc/filebeat/filebeat.yml
Nous devons modifier ce fichier pour envoyer les journaux au serveur Logstash.
Les configurations ci-dessous envoient syslog (/var/log/syslog) au serveur Logstash. Pour cette démo, j'ai commenté /var/log/*.log pour éviter d'envoyer tous les journaux au serveur Logstash.
. . . filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /var/log/syslog . . .
Dans la section Outputs, commentez la section output.elasticsearch :car nous n'allons pas stocker les journaux sur Elasticsearch.
Maintenant, allez à la ligne output.logstash :et modifiez les entrées pour envoyer les journaux au Logstash et mentionnez le chemin vers le fichier SSL copié.
Remarque : Remplacez "192.168.0.10" par l'adresse IP du serveur Logstash.
. . . #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["192.168.0.10:5044"] . . .
Redémarrez le service Filebeat.
sudo systemctl restart filebeat
Accéder à Kibana
Vous pouvez accéder à l'interface Web de Kibana à l'aide de l'URL suivante.
http://votre-adresse-ip:5601/OU
http://votre-nom-de-serveur:5601Lors de votre première connexion, vous devez mapper l'index filebeat. Cliquez sur Explorer par moi-même pour créer un modèle d'index.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711024345.png)
Cliquez sur le Menu (Icône Hamburger)>> Gestion de la pile>>Modèles d'index>> Créer un modèle d'index .
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711024360.png)
Tapez ce qui suit dans la zone Modèle d'index et cliquez sur l'étape suivante.
filebeat-*
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711024498.png)
Sélectionnez @timestamp puis cliquez sur Créer un modèle d'index.
@timestamp
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711024498.png)
Parcourez les champs de l'index et leur type de noyau enregistré par Elasticsearch.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711024502.png)
Cliquez sur Découvrir dans la navigation de gauche pour afficher les journaux entrants d'une machine cliente.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711024589.png)
Conclusion
C'est tout. J'espère que vous avez appris à installer la pile ELK sur Debian 10 / Debian 9. Veuillez partager vos commentaires dans la section des commentaires.