GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Pile ELK est une plate-forme d'analyse de données complète, composée de trois outils open source Elasticsearch , Logstash , et Kibana . Cette pile vous aide à stocker et à gérer les journaux de manière centralisée et vous permet d'analyser les problèmes en corrélant les événements à un moment donné.

Cet article vous guide pour installer la pile ELK sur Ubuntu 18.04 / Ubuntu 16.04 .

Composants

Elasticsearch – Stocke les journaux entrants de Logstash et offre la possibilité de rechercher les journaux/données en temps réel

Logstash – Traitement (Collecter, enrichir et envoyer à Elasticsearch) des logs entrants envoyés par beats (forwarder).

Kibana – Fournit une visualisation des événements et des journaux.

Battements – Installé sur les machines clientes et il envoie les journaux à Logstash ou Elasticsearch via le protocole beats.

Prérequis

Installer Java

Elasticsearch nécessite soit OpenJDK ou Oracle JDK disponible sur votre machine.

Ici, pour cette démo, j'utilise OpenJDK. Installez Java à l'aide de la commande ci-dessous avec le package de support wget et HTTPS pour APT.

sudo apt update
sudo apt install -y openjdk-8-jdk wget apt-transport-https

Vérifiez la version Java.

java -version

Sortie :

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

Si vous souhaitez utiliser Oracle Java JDK, lisez.

LIRE  :Installer Oracle Java JDK 10/8 sur Ubuntu 18.04

LIRE  :Installez Oracle Java JDK 8 sur Ubuntu 16.04

Configurer le référentiel ELK

Les packages de pile ELK peuvent être facilement obtenus auprès d'Elastic CO en configurant son dépôt officiel .

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

Installer Elasticsearch

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.

Installez Elasticsearch à l'aide de la commande suivante, v6.4 au moment de la rédaction de cet article.

sudo apt update
sudo apt install -y elasticsearch

Démarrez le service Elasticsearch.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Attendez quelques minutes et exécutez la commande ci-dessous pour voir l'état de l'interface Elasticsearch REST.

curl -X GET http://localhost:9200

Sortie :

{
  "name" : "nqS7TFZ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "vERyh1VpR46G9T21H_3gKQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "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"
}

La sortie ci-dessus confirme qu'Elasticsearch fonctionne correctement.

Installer 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, ce qui permet de traiter différents types d'événements sans travail supplémentaire.

sudo apt install -y logstash

Créer un certificat SSL pour Logstash (facultatif)

Il est facultatif de configurer le redirecteur (Filebeat) que nous installons sur les machines clientes pour utiliser le certificat SSL pour la transmission sécurisée des journaux.

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

Option 1 :(Nom d'hôte ou FQDN)

Accédez au répertoire OpenSSL.

cd /etc/ssl/

Maintenant, créez le certificat SSL à l'aide d'OpenSSL. Remplacez server.itzgeek.local avec le nom d'hôte de votre serveur Logstash.

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

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

Option 2 :(Adresse IP)

Suivez les étapes ci-dessous pour créer un certificat SSL pour IP SAN.

Au préalable, ajoutez l'adresse IP du serveur Logstash à SubjectAltName dans le fichier de configuration OpenSSL.

sudo nano /etc/ssl/openssl.cnf

Recherchez [ v3_ca ] section et mettez à jour subjectAltName avec l'adresse IP de votre serveur Logstash.

subjectAltName = IP:192.168.1.10

Allez dans le répertoire OpenSSL.

cd /etc/ssl/

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

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

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

Convertir SSL

Convertissez la clé actuelle au format PKCS8 pour que Logstash fonctionne correctement.

sudo openssl pkcs8 -in logstash-forwarder.key  -topk8 -nocrypt -out logstash-forwarder.key.pem

Modifiez l'autorisation du fichier en lisible par tout le monde.

sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem

Configurer Logstash

La configuration de Logstash se compose de trois sections, à savoir l'entrée, le filtre et la sortie. Vous pouvez mettre toutes les sections dans un seul fichier ou un fichier séparé pour chaque section, finissez par .conf .

Ici, nous utiliserons un seul fichier pour placer les sections d'entrée, de filtre et de sortie. Créez un fichier de configuration sous /etc/logstash/conf.d/ répertoire.

sudo nano /etc/logstash/conf.d/logstash.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.

Ajoutez également les détails du certificat SSL dans la section d'entrée pour une communication sécurisée.

input {
 beats {
   port => 5044
   
   # Set to False if you do not SSL
   ssl => true
  
   # Delete below lines if no SSL is used
   ssl_certificate => "/etc/ssl/logstash-forwarder.crt"
   ssl_key => "/etc/ssl/logstash-forwarder.key.pem"
   }
}

Dans la section filtre. 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 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 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 restart logstash
sudo systemctl enable logstash

Journaux 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
Par défaut, Kibana écoute sur localhost, ce qui signifie que vous ne pouvez pas accéder à l'interface Web de Kibana à partir de machines externes.

Pour activer l'accès, modifiez /etc/kibana/kibana.yml fichier.

sudo nano /etc/kibana/kibana.yml

Modifiez la ligne ci-dessous avec l'adresse IP de votre serveur.

server.host: "192.168.1.10"

En outre, certains cas, Elasticsearch et Kibana s'exécutent sur des machines différentes , alors mettez à jour la ligne ci-dessous avec l'adresse IP du serveur Elasticsearch.

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

Démarrez et activez Kibana au démarrage de la machine.

sudo systemctl restart kibana
sudo systemctl enable kibana

Installer Beats

Quatre clients Beat sont disponibles.

Battement de paquets – Analyser les données des paquets réseau.
Filebeat – Un aperçu en temps réel des données de journal.
Meilleur rythme – Obtenez des informations à partir des données d'infrastructure.
Metricbeat – Envoyer les métriques à Elasticsearch.

Assurez-vous que les machines clientes peuvent résoudre le nom d'hôte du serveur Logstash. Si votre environnement n'a pas de serveur DNS , vous devrez alors ajouter une entrée d'hôte pour le serveur Logstash sur la machine cliente.

sudo nano /etc/hosts

Faites une entrée comme ci-dessous.

192.168.1.10 server.itzgeek.local

Installer Filebeat

Filebeat est un agent logiciel qui s'exécute sur la machine cliente distante et envoie les journaux au serveur Logstash pour analyse ou à Elasticsearch pour stockage en fonction de la configuration.

Installez le support HTTPS pour apt.

sudo apt update
sudo apt install -y apt-transport-https

Filebeat est disponible sur le référentiel Elastic, vous devez donc le configurer pour l'installation de Filebeat.

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

Installez Filebeat à l'aide de la commande suivante.

sudo apt update
sudo apt install -y filebeat

Configurer Filebeat

Tout d'abord, copiez le fichier logstash-forwarder.crt sur la machine cliente distante.

Ignorez cette étape si vous n'utilisez pas SSL dans Logstash pour une communication sécurisée.
scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl

Modifiez le fichier de configuration de filebeat /etc/filebeat/filebeat.yml pour envoyer les journaux au serveur Logstash.

sudo nano /etc/filebeat/filebeat.yml

La configuration ci-dessous consiste à envoyer les journaux système (/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
    #- /var/log/*.log
.  .  .
Dans la section Sorties, commentez la section output.elasticsearch : car nous n'allons pas stocker les journaux sur Elasticsearch.

Maintenant, trouvez la ligne output.logstash : et modifiez les entrées pour envoyer les journaux système à Logstash et mentionnez également l'emplacement du certificat SSL.

Remplacez server.itzgeek.local avec adresse IP du serveur Logstash si vous utilisez un SAN IP.
.   .   .

output.logstash:

    hosts: ["server.itzgeek.local:5044"]
    
    # Comment out this line if you are not using SSL on Logstash server
    ssl.certificate_authorities: ["/etc/ssl/logstash-forwarder.crt"]

.   .   .

Redémarrez le service Filebeat.

sudo systemctl restart filebeat

Le journal de Filebeat se trouve généralement dans son fichier journal.

sudo cat /var/log/filebeat/filebeat

Accéder à l'interface Kibana

Accédez à l'interface Web de Kibana en accédant à l'URL suivante.

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

OU

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

Vous obtiendriez la page d'accueil de Kibana.

Lors de votre premier accès, 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 filebeat index quelque chose comme ci-dessus. Cliquez sur Étape suivante .

Sélectionnez @horodatage puis cliquez sur Créer un modèle d'index .

@timestamp

Découvrez les modèles d'index et son mappage.

Cliquez sur Découvrir dans la navigation de gauche pour afficher les journaux entrants des machines clientes.

C'est tout.


Ubuntu
  1. Comment installer et utiliser Elasticsearch sur Ubuntu 20.04

  2. Comment installer Elasticsearch, Logstash et Kibana 4 sur CentOS 7 / RHEL 7

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

  4. Comment installer et configurer Elasticsearch sur Ubuntu 20.04

  5. Installez Elasticsearch, Logstash et Kibana sur Ubuntu 20.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 ELK Stack sur Ubuntu 20.04 LTS

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

Comment installer ELK Stack sur Ubuntu 20.04