GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurer ELK Stack sur Ubuntu 16.04 - Installer ElasticSearch, Logstash et Kibana sur Ubuntu 16.04

ELK est une pile d'analyse de données complète, composée d'Elasticsearch , Logstash et Kibana qui vous aide à stocker et à gérer les journaux de manière centralisée et offre la possibilité d'analyser les problèmes en corrélant les événements à un moment donné.

Ce guide vous aide à installer la pile ELK sur Ubuntu 16.04.

Composants

Logstash - Il effectue le traitement (collecte, enrichissement et envoi à Elasticsearch) des journaux entrants envoyés par beats (forwarder).

Elasticsearch - Il stocke les journaux entrants de Logstash et offre la possibilité de rechercher les journaux/données en temps réel

Kibana – Fournit une visualisation des journaux.

Beats – Installé sur les machines clientes, envoyez les journaux à Logstash via le protocole beats.

Prérequis

Basculez vers l'utilisateur root.

su -

OU

sudo su -

Comme Elasticsearch est basé sur Java, vous devez avoir OpenJDK ou Oracle JDK installé sur votre machine.

LIRE  :Comment installer Oracle Java 8 sur Ubuntu 16.04 / LinuxMint 18

Ici, je choisis d'installer OpenJ D K .

apt-get updateapt-get install -y openjdk-8-jdk wget

Vérifiez la version de JAVA.

version Java

Sortie :

openjdk version "1.8.0_131"Environnement d'exécution OpenJDK (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)OpenJDK 64-Bit Server VM (build 25.131-b11, mode mixte)

Installer Elasticsearch

Elasticsearch est un serveur de recherche open source, offre une recherche et des analyses distribuées en temps réel avec l'interface Web RESTful.

Elasticsearch stocke toutes les données envoyées par le logstash et les affiche via le kibana à la demande des utilisateurs.

Cette rubrique couvre les paramètres de configuration requis pour ELK. Vous pouvez également consulter  Installer Elasticsearch sur CentOS 7/Ubuntu 16.04/Linux Mint 18 pour plus d'instructions.

Configurez le référentiel Elasticsearch.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list

Installez Elasticsearch.

apt-get updateapt-get install -y elasticsearch

Configurez Elasticsearch pour qu'il démarre au démarrage du système.

systemctl activer elasticsearchsystemctl démarrer elasticsearch

Elastisearch devrait maintenant écouter sur 9200 pour traiter la requête HTTP ; nous pouvons utiliser CURL pour obtenir la réponse.

curl -X GET http://localhost:9200

Sortie :

{ "name" :"gf5QYAn", "cluster_name" :"elasticsearch", "cluster_uuid" :"S6gZNkMERpSr-MGXqEFUJw", "version" :{ "number" :"5.5.2", "build_hash" :" b2f0c09", "build_date" :"2017-08-14T12:33:14.154Z", "build_snapshot" : false, "lucene_version" :"6.6.0" }, "tagline" :"Vous savez, pour la recherche"} 

Installer Logstash

Logstash est un outil open source, il collecte les journaux, les analyse et les stocke sur Elasticsearch pour la recherche. Plus de 160 plugins sont disponibles pour Logstash, ce qui permet de traiter un type d'événement différent sans travail supplémentaire.

Installez Logstash à l'aide de la commande apt-get.

apt-get install -y logstash

Créer un certificat SSL

Le redirecteur (filebeat) qui sera installé sur les serveurs clients utilise un certificat SSL pour valider l'identité du serveur Logstash pour une communication sécurisée.

Créez un certificat SSL avec le nom d'hôte ou le SAN IP.

Option 1 :(nom de domaine complet du nom d'hôte)

Si vous utilisez le nom d'hôte dans la configuration beats (transmetteur), assurez-vous d'avoir un enregistrement A pour le serveur logstash ; assurez-vous que la machine cliente peut résoudre le nom d'hôte du serveur logstash.

Si vous n'avez pas de serveur de noms dans votre environnement ; assurez-vous d'ajouter l'entrée d'hôte pour le serveur logstash sur les machines clientes ainsi que sur le serveur logstash.

sudo nano /etc/hosts192.168.12.10 server.itzgeek.local

Accédez au répertoire OpenSSL.

cd /etc/ssl/

Maintenant, créez le certificat SSL. Remplacez "vert ” un avec le nom d'hôte de votre vrai serveur logstash.

openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local 

Option 2 :(Adresse IP)

Si vous envisagez d'utiliser une adresse IP au lieu d'un nom d'hôte, veuillez suivre les étapes de création d'un certificat SSL pour IP SAN.

Comme condition préalable, nous aurions besoin d'ajouter une adresse IP du serveur logstash à SubjectAltName dans le fichier de configuration OpenSSL.

nano /etc/ssl/openssl.cnf

Recherchez la section "[ v3_ca ]" et remplacez "vert ” un avec l'IP de votre serveur logstash.

subjectAltName =IP :192.168.12.10 

Allez dans le répertoire OpenSSL.

cd /etc/ssl/

Maintenant, créez un certificat SSL en exécutant la commande suivante.

openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt

Ce logstash-forwarder.crt doit être copié sur tous les serveurs clients ceux qui envoient des journaux au serveur logstash.

Configurer Logstash

La configuration de Logstash se trouve dans /etc/logstash/conf.d/. Si les fichiers n'existent pas, créez-en un nouveau. Le fichier de configuration logstash se compose de trois sections d'entrée, de filtre et de sortie ; les trois sections peuvent être trouvées soit dans un seul fichier, soit chaque section aura des fichiers séparés se terminant par .conf.

Je vous recommande d'utiliser un seul fichier pour placer les sections d'entrée, de filtre et de sortie.

nano /etc/logstash/conf.d/logstash.conf

Dans la première section, nous mettrons une entrée pour la configuration des entrées. La configuration suivante définit Logstash pour qu'il écoute sur le port 5044 les journaux entrants des beats (transmetteur) qui se trouvent sur les machines clientes. Ajoutez également les détails du certificat SSL dans la section d'entrée pour une communication sécurisée.

input { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40 " }}

Dans la section filtre. Nous utiliserons Grok pour analyser les journaux avant de les envoyer à Elasticsearch. 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 jj HH:mm:ss" ]}  }}

Pour plus de modèles de filtre, consultez la page grokdebugger.

Dans la section de sortie, nous définirons l'emplacement où les journaux seront stockés ; évidemment, ce devrait être Elasticsearch.

sortie { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}

Maintenant, démarrez et activez le logstash.

systemctl démarrer logstashsystemctl activer logstash

Vous pouvez résoudre tous les problèmes en consultant le journal ci-dessous.

cat /var/log/logstash/logstash-plain.log

Ensuite, nous allons configurer beats pour expédier les journaux au serveur logstash.

Installer Filebeat

Quatre clients Beats sont disponibles.

  1. Packetbeat – Analyse des données de paquets du réseau.
  2. Filebeat – Aperçu en temps réel des données de journal.
  3. Topbeat – Obtenez des informations à partir des données d'infrastructure.
  4. Metricbeat – Envoyer les métriques à Elasticsearch.

Sur l'ordinateur client :

Pour analyser les journaux système, nous utiliserons ici filebeat. Vous pouvez télécharger filebeat depuis le site officiel , ou vous pouvez utiliser la commande suivante pour l'installer.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.list

Installez Filebeat.

apt-get update apt-get install -y filebeat

Filebeat (beats) utilise un certificat SSL pour valider l'identité du serveur logstash. Copiez donc logstash-forwarder.crt du serveur logstash vers le client.

$ scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl

Configurer Filebeat

Il est maintenant temps de connecter filebeat à Logstash ; suivez les étapes ci-dessous pour configurer filebeat avec la pile ELK.

Le fichier de configuration Filebeat est au format YAML, ce qui signifie que l'indentation est très importante. Assurez-vous d'utiliser le même nombre d'espaces que dans le guide.

Ouvrez le fichier de configuration filebeat.

nano /etc/filebeat/filebeat.yml

En haut, vous verriez les prospecteurs Filebeat. Ici, vous devez spécifier quels fichiers doivent être envoyés à logstash et comment ils doivent être traités. Chaque prospecteur commence par caractère.

À des fins de test, nous allons configurer filebeat pour envoyer /var/log/syslog au serveur Logstash. Pour cela, modifiez le prospecteur existant sous paths section. Commentez le – /var/log/*.log pour éviter d'envoyer tous les .log fichier présent dans ce répertoire à Logstash.

. . . chemins :        - /var/log/syslog # - /var/log/*.log. . .

Dans la section Sorties , commentez la section output.elasticsearch : car nous n'allons pas stocker les journaux directement dans Elasticsearch.

Maintenant, trouvez la ligne "output.logstash : ” et modifiez les entrées comme ci-dessous. Cette section définit filebeat pour envoyer les journaux au serveur logstash "server.itzgeek.local " sur le port " 5044 ” et mentionnez le chemin où se trouve le certificat SSL copié.

Remarque :Remplacez "server.itzgeek.local " avec l'adresse IP au cas où vous utilisez un SAN IP.

. . .output.logstash :# Les hôtes Logstash hébergent :["server.itzgeek.local:5044 "] # SSL facultatif. Par défaut, désactivé. # Liste des certificats racine pour les vérifications de serveur HTTPS ssl.certificate_authorities :["/etc/ssl/logstash-forwarder.crt "].   .   .

Redémarrez le service.

systemctl restart filebeatsystemctl enable filebeat

Les journaux Beats se trouvent généralement dans son fichier journal.

cat /var/log/filebeat/filebeat

Installer et configurer Kibana

Kibana fournit une visualisation des journaux stockés sur elasticsearch, téléchargez-le depuis le site officiel ou utilisez la commande suivante pour configurer le référentiel.

apt-get install -y kibana

Modifiez le fichier kibana.yml.

nano /etc/kibana/kibana.yml

Par défaut, Kibana écoute sur localhost, ce qui signifie que vous ne pouvez pas accéder à l'interface Kibana à partir de machines extérieures. Pour l'activer, modifiez la ligne ci-dessous avec l'adresse IP de votre machine.

serveur.hôte :"192.168.12.10 "

Décommentez la ligne suivante et mettez-la à jour avec l'URL de l'instance Elasticsearch. Dans mon cas, c'est localhost.

elasticsearch.url :"http://localhost:9200"

Démarrez et activez kibana au démarrage du système.

systemctl démarrer kibanasystemctl activer kibana

Accédez au Kibana en utilisant l'URL suivante.

http://votre-adresse-ip:5601/

OU

http://votre-nom-de-serveur:5601

Lors de votre première connexion, vous devez mapper l'index filebeat.

Tapez ce qui suit dans le nom ou modèle d'index boîte.

filebeat-*

Sélectionnez @horodatage puis cliquez sur créer.

@horodatage

Parcourez les modèles d'index et leur mappage.

Cliquez sur Découvrir dans la navigation de gauche pour afficher les journaux entrants de la machine cliente.

C'est tout. Vous avez configuré avec succès la pile ELK sur Ubuntu 16.04


Ubuntu
  1. Installation de la pile ELK sur Ubuntu 14.04

  2. Comment installer Elasticsearch, Logstash et Kibana 4 sur Ubuntu 14.04 / 15.04

  3. Installation de Filebeat, Logstash, ElasticSearch et Kibana dans Ubuntu 14.04

  4. Comment installer et configurer Elasticsearch sur Ubuntu 20.04

  5. Installez Elasticsearch, Logstash et Kibana sur Ubuntu 20.04

Comment installer Elasticsearch, Logstash et Kibana (ELK Stack) sur Ubuntu 18.04 / Ubuntu 16.04

Comment installer ELK Stack sur Ubuntu 18.04

Comment installer ELK Stack (Elasticsearch, Logstash et Kibana) sur Ubuntu 20.04

Comment installer ELK Stack sur Ubuntu 18.04 LTS

Comment installer Elasticsearch Logstash Kibana (Elastic Stack) sur Ubuntu 18.04

Comment installer ELK Stack sur Ubuntu 20.04