GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Elasticsearch, Logstash et Kibana (ELK Stack) sur CentOS 7 / RHEL 7

La pile ELK est également connue sous le nom de pile Elastic et comprend Elasticsearch, Logstash et Kibana. Il vous aide à stocker tous vos journaux au même endroit et à analyser les problèmes en corrélant les événements à un moment donné.

Ce guide vous aide à installer la pile ELK sur CentOS 7 / RHEL 7 .

Composants

Logstash – Il effectue le traitement (Collecte, enrichit et envoie à Elasticsearch) des logs 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.

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

Environnement

Pour disposer d'une pile ELK complète, nous aurions besoin de deux machines pour tester la collecte des journaux.

Pile ELK

Operating system : CentOS 7 Minimal
IP Address       : 192.168.1.10
HostName         : server.itzgeek.local

Filebeat

Operating System : CentOS 7 Minimal
IP Address       : 192.168.1.20
HostName         : client.itzgeek.local

Prérequis

Installer Java

Étant donné qu'Elasticsearch est basé sur Java, assurez-vous que OpenJDK ou Oracle JDK est installé sur votre machine.

LIRE  :Comment installer Oracle Java 8 sur CentOS 7 / RHEL 7

Ici, j'utilise OpenJDK 1.8.

yum -y install java-1.8.0 wget

Vérifiez la version Java.

java -version

Sortie :

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Configurer le référentiel ELK

Importez la clé de signature Elastic.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Configurez le référentiel Elasticsearch et installez-le.

vi /etc/yum.repos.d/elk.repo

Ajoutez le contenu ci-dessous au elk.repo fichier.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Installer Elasticsearch

Elasticsearch est un moteur 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 l'interface Web (Kibana) à la demande des utilisateurs.

Installez Elasticsearch.

yum install -y elasticsearch

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

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

Utilisez CURL pour vérifier si Elasticsearch répond ou non aux requêtes.

curl -X GET http://localhost:9200

Sortie :

 {
  "name" : "1DwGO86",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "xboS_6K5Q2OO1XA-QJ9GIQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Installer Logstash

Logstash est un outil open source pour gérer les événements et les journaux, 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 les différents types d'événements sans travail supplémentaire.

Installez le package Logstash.

yum -y install logstash

Créer un certificat SSL (facultatif)

Filebeat (Logstash Forwarder) est normalement installé sur les serveurs clients et 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 du serveur Logstash dans la configuration beats (transitaire), assurez-vous d'avoir un enregistrement A pour le serveur Logstash et assurez-vous également que la machine cliente peut résoudre le nom d'hôte du serveur Logstash.

Accédez au répertoire OpenSSL.

cd /etc/pki/tls/

Maintenant, créez le certificat SSL. Remplacer vert un avec le nom d'hôte de votre vrai serveur Logstash.

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

Option 2 :(Adresse IP)

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

Pour créer un certificat IP SAN, vous devez ajouter une adresse IP du serveur Logstash au SubjectAltName dans le fichier de configuration OpenSSL.

vi /etc/pki/tls/openssl.cnf

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

subjectAltName = IP:192.168.1.10

Allez dans le répertoire OpenSSL.

cd /etc/pki/tls/

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

openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
Ce fichierlogstash-forwarder.crt doivent être copiés sur toutes les machines clientes celles qui envoient des journaux au serveur Logstash.

Configurer Logstash

La configuration de Logstash se trouve dans /etc/logstash/conf.d/ . 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 dans 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.

vi /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 - Facultatif.

input {
 beats {
   port => 5044
   
   # Set to False if you do not use SSL 
   ssl => true

   # Delete below linesif you do not use SSL
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
   }
}

Dans la section filtre. Nous utiliserons Grok pour analyser les journaux avant de les envoyer à Elasticsearch. Le filtre grok suivant recherchera le syslog journaux étiquetés et essaie 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, 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.

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

Maintenant, démarrez et activez le service Logstash.

systemctl start logstash
systemctl enable logstash

Vous pouvez résoudre tous les problèmes en consultant les journaux Logstash.

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

Installer et configurer Kibana

Kibana fournit une visualisation des journaux stockés sur Elasticsearch. Installez le Kibana à l'aide de la commande suivante.

yum -y install kibana

Modifiez le fichier kibana.yml.

vi /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 externes. Pour l'autoriser, modifiez la ligne ci-dessous avec l'adresse IP de votre machine.

server.host: "192.168.1.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 start kibana
systemctl enable kibana

Pare-feu

Configurez un pare-feu sur le nœud de la pile ELK pour recevoir les journaux des machines clientes.

5044 – Pour que Logstash reçoive les logs

5061 – Pour accéder à l'interface Kibana depuis la machine externe.

firewall-cmd --permanent --add-port=5044/tcp
firewall-cmd --permanent --add-port=5601/tcp
firewall-cmd --reload

Ensuite, nous allons configurer beats pour envoyer les journaux au serveur Logstash.

Installer et configurer Filebeat

Quatre clients Beats sont disponibles

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

Pour analyser les journaux système de la machine cliente (Ex. client.itzgeek.local), nous devons installer filebeat . Créez le fichier beats.repo.

vi /etc/yum.repos.d/beats.repo

Ajoutez le contenu ci-dessous au fichier de dépôt ci-dessus.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Maintenant, installez Filebeat en utilisant la commande suivante.

yum -y install filebeat

Configurez une entrée d'hôte sur la machine cliente au cas où votre environnement n'aurait pas de serveur DNS .

vi /etc/hosts

Créez une entrée d'hôte comme ci-dessous sur la machine cliente.

 192.168.1.10 server.itzgeek.local server

Filebeat (beats) utilise un certificat SSL pour valider l'identité du serveur Logstash, alors copiez le logstash-forwarder.crt du serveur Logstash au client.

Ignorez cette étape, au cas où vous n'utiliseriez pas SSL dans Logstash.

scp -pr [email protected]:/etc/pki/tls/certs/logstash-forwarder.crt /etc/ssl/certs/

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.

vi /etc/filebeat/filebeat.yml

En haut, vous verriez la section des prospecteurs. Ici, vous devez spécifier quels journaux 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/messages au serveur Logstash. Pour cela, modifiez le prospecteur existant sous paths rubrique.

Commentez le – /var/log/*.log pour éviter d'envoyer tous les .log fichiers présents dans ce répertoire vers Logstash.

filebeat.inputs:
- type: log
 
      # Change to true to enable this input configuration. 
      enabled: true

      # Paths that should be crawled and fetched.
      paths:

        - /var/log/messages
        # - /var/log/*.log

.  .  .

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é

Remplacez server.itzgeek.local par l'adresse IP si vous utilisez un SAN IP .

.   .   .

output.logstash:
  # The Logstash Server
  hosts: ["server.itzgeek.local:5044"]


  # Comment out this line if Logstash is not using SSL
  ssl.certificate_authorities: ["/etc/ssl/certs/logstash-forwarder.crt"]

.   .   .

Redémarrez le service.

systemctl restart filebeat

Les journaux Beats se trouvent généralement dans le fichier syslog.

cat /var/log/filebeat/filebeat

Accéder à Kibana

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

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

Vous obtiendriez la page d'accueil de Kibana.

Lors de votre première connexion, vous devez mapper l'index filebeat. Accédez à Gestion>> Modèles d'index .

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

filebeat-*

Vous devriez voir au moins un index filebeat comme ci-dessus. Cliquez sur Étape suivante.

Sélectionnez @timestamp puis cliquez sur Créer .

@timestamp

Vérifiez vos modèles d'index et ses mappages.

Maintenant, cliquez sur Découvrir pour afficher les journaux entrants et effectuer des requêtes de recherche.

C'est tout.


Cent OS
  1. Comment installer Elasticsearch, Logstash et Kibana 4 sur CentOS 7 / RHEL 7

  2. Comment installer Graylog2 sur CentOS 7 / RHEL 7

  3. Comment installer Elasticsearch sur CentOS 8 / RHEL 8

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

  5. Comment installer la pile ELK sur CentOS 7

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

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

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

Comment installer la pile ELK sur CentOS 7

Comment installer la pile ELK sur CentOS 8

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