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

Comment installer Elastic Stack (Elasticsearch, Logstash et Kibana) sur CentOS 8

Elasticsearch est un moteur de recherche open source basé sur Lucene, développé en Java. Il fournit un moteur de recherche en texte intégral distribué et mutualisé avec une interface Web HTTP Dashboard (Kibana). Les données sont interrogées, récupérées et stockées avec un schéma de document JSON. Elasticsearch est un moteur de recherche évolutif qui peut être utilisé pour rechercher toutes sortes de documents texte, y compris les fichiers journaux. Elasticsearch est le cœur de la "pile élastique" ou pile ELK.

Logstash est un outil open source pour la gestion des événements et des journaux. Il fournit un pipeline en temps réel pour les collectes de données. Logstash collectera vos données de journal, convertira les données en documents JSON et les stockera dans Elasticsearch.

Kibana est un outil de visualisation de données open source pour Elasticsearch. Kibana fournit une jolie interface Web de tableau de bord. Il vous permet de gérer et de visualiser les données d'Elasticsearch. Ce n'est pas seulement beau, mais aussi puissant.

Dans ce didacticiel, nous vous montrerons étape par étape l'installation et la configuration de la "pile élastique" sur le serveur CentOS 8. Nous allons installer et configurer Elasticsearch, Logstash et Kibana. Et puis configurez le Beats 'filebeat' sur les systèmes clients Ubuntu et CentOS.

Prérequis

  • CentOS 8 64 bits avec 4 Go de RAM – elk-master
  • CentOS 8 64 bits avec 1 Go de RAM - client01
  • Ubuntu 18.04 64 bits avec 1 Go de RAM - client02

Ce que nous allons faire :

  • Ajouter un référentiel élastique au serveur CentOS 8
  • Installer et configurer Elasticsearch
  • Installer et configurer le tableau de bord Kibana
  • Configurer Nginx en tant que proxy inverse pour Kibana
  • Installer et configurer Logstash
  • Installer et configurer Filebeat
  • Test

Étape 1 - Ajouter un référentiel élastique

Tout d'abord, nous allons ajouter la clé et le référentiel Elasticsearc au serveur CentOS 8. Avec le référentiel elasticsearch fourni par elastic.co, nous sommes en mesure d'installer des produits élastiques, notamment Elasticsearch, Logstash, Kibana et Beats.

Ajoutez la clé élastique au système à l'aide de la commande suivante.

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

Après cela, allez dans le répertoire '/etc/yum.repos.d' et créez un nouveau fichier de référentiel 'elasticsearch.repo'.

cd /etc/yum.repos.d/
vim elasticsearch.repo

Collez le référentiel elasticsearch ci-dessous.

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

Enregistrez et fermez.

Vérifiez maintenant tous les référentiels disponibles sur le système à l'aide de la commande dnf ci-dessous.

dnf repolist

Et vous obtiendrez le référentiel elasticsearch qui a été ajouté au serveur CentOS 8.

En conséquence, vous pouvez installer des produits Elastic tels que Elasticsearch, Logstash et Kibana, etc.

Étape 2 - Installer et configurer Elasticsearch

Dans cette étape, nous allons installer et configurer Elasticsearch.

Installez le package Elasticsearch à l'aide de la commande dnf ci-dessous.

sudo dnf install elasticsearch -y

Une fois l'installation terminée, allez dans le répertoire '/etc/elasticsearch' et modifiez le fichier de configuration 'elasticsearch.yml' à l'aide de l'éditeur vim.

cd /etc/elasticsearch/
vim elasticsearch.yml

Décommentez les lignes suivantes et modifiez la valeur de chaque ligne comme ci-dessous.

network.host: 127.0.0.1
http.port: 9200

Enregistrez et fermez.

Facultatif :

Vous pouvez régler elasticsearch en modifiant le fichier de configuration JVM "jvm.options" et configurer la taille du tas en fonction de la quantité de mémoire dont vous disposez.

Modifiez la configuration JVM 'jvm.options' à l'aide de l'éditeur vim.

vim jvm.options

Modifiez la taille de tas min/max via la configuration Xms et Xmx comme ci-dessous.

-Xms512m
-Xmx512m

Enregistrez et fermez.

Ensuite, rechargez la configuration du gestionnaire systemd et ajoutez le service elasticsearch au démarrage.

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

Démarrez ensuite le service elasticsearch.

sudo systemctl start elasticsearch

Par conséquent, elasticsearch est opérationnel derrière l'adresse IP locale "127.0.0.1" avec le port par défaut "9200" sur le serveur CentOS 8.

Vous pouvez vérifier elasticsearch en utilisant la commande curl ci-dessous.

curl -XGET 'http://127.0.0.1:9200/?pretty'

Et ci-dessous, le résultat que vous obtiendrez.

Étape 3 - Installer et configurer le tableau de bord Kibana

Après avoir installé elasticsearch, nous allons installer et configurer le tableau de bord Kibana sur le serveur CentOS 8.

Installez le tableau de bord Kibana à l'aide de la commande dnf ci-dessous.

sudo dnf install kibana

Une fois l'installation terminée, allez dans le répertoire '/etc/kibana' et éditez le fichier de configuration 'kibana.yml'.

cd /etc/kibana/
vim kibana.yml

Décommentez et modifiez la configuration de certaines lignes comme ci-dessous.

server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"

Enregistrez et fermez.

Ensuite, ajoutez le service kibana au démarrage du système et démarrez le service kibana.

sudo systemctl enable kibana
sudo systemctl start kibana

Le service Kibana est opérationnel sur le serveur CentOS 8, vérifiez-le à l'aide des commandes suivantes.

systemctl status kibana
netstat -plntu

Et vous obtiendrez le résultat ci-dessous.

Par conséquent, le service Kibana est opérationnel et exécute le port TCP par défaut '5601'.

Étape 4 - Configurer Nginx en tant que proxy inverse pour Kibana

Dans cette étape, nous allons installer le serveur Web Nginx et le configurer en tant que proxy inverse pour le tableau de bord Kibana.

Installez Nginx et httpd-tools à l'aide de la commande dnf ci-dessous.

sudo dnf install nginx httpd-tools

Une fois l'installation terminée, allez dans le répertoire '/etc/nginx/conf.d' et créez un nouveau fichier de configuration 'kibana.conf'.

cd /etc/nginx/conf.d/
vim kibana.conf

Collez la configuration suivante.

server {
    listen 80;
 
    server_name elk.hakase-labs.io;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://127.0.0.1:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Enregistrez et fermez.

Ensuite, nous devons créer l'authentification de base pour sécuriser l'accès à Kibana. Remplacez l'utilisateur 'hakase' par le vôtre et exécutez la commande htpasspwd comme ci-dessous.

sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD

Tapez votre mot de passe et testez la configuration nginx.

nginx -t

Assurez-vous qu'il n'y a pas d'erreur.

Ajoutez maintenant le service nginx au démarrage du système et démarrez le service nginx.

systemctl enable nginx
systemctl start nginx

En conséquence, l'installation et la configuration de Nginx en tant que proxy inverse pour Kibana Dashboard sont terminées.

Étape 5 - Installer et configurer Logstash

Dans cette étape, nous allons installer et configurer le logstash de l'expéditeur de journaux. Nous allons installer logstash, configurer les battements d'entrée, configurer le filtrage syslog à l'aide du plug-in logstash appelé "grok", puis configurer la sortie vers elasticsearch.

Installez logstash à l'aide de la commande dnf ci-dessous.

sudo dnf install logstash

Une fois l'installation terminée, allez dans le répertoire '/etc/logstash' et modifiez le fichier de configuration JVM 'jvm.options' à l'aide de l'éditeur vim.

cd /etc/logstash/
vim jvm.options

Modifiez la taille de tas min/max via la configuration Xms et Xmx comme ci-dessous.

-Xms512m
-Xmx512m

Enregistrez et fermez.

Ensuite, allez dans le répertoire '/etc/logstash/conf.d' et créez le fichier de configuration pour l'entrée beats appelé 'input-beat.conf'.

cd /etc/logstash/conf.d/
vim input-beat.conf

Collez la configuration suivante.

input {
  beats {
    port => 5044
  }
}

Enregistrez et fermez.

Créez maintenant le fichier de configuration 'syslog-filter.conf'.

vim syslog-filter.conf

Collez la configuration suivante.

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

Enregistrez et fermez.

Et puis créez la configuration de sortie pour elasticsearch 'output-elasticsearch.conf'.

vim output-elasticsearch.conf

Collez la configuration suivante.

output {
  elasticsearch { hosts => ["127.0.0.1:9200"]
    hosts => "127.0.0.1:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Enregistrez et fermez.

Ensuite, ajoutez le service logstash au démarrage du système et démarrez le service logstash.

systemctl enable logstash
systemctl start logstash

Le service logstash est opérationnel, vérifiez à l'aide des commandes suivantes.

systemctl status logstash
netstat -plntu

Et vous obtiendrez le résultat ci-dessous.

Par conséquent, l'expéditeur de journaux logstash est opérationnel sur le serveur CentOS 8 avec le port TCP par défaut '5044'. Et l'installation de base d'Elastic Stack est terminée, et nous sommes prêts à expédier et à surveiller nos journaux sur le serveur Elastic (ELK Stack).

Étape 6 - Installer Filebeat sur le client

Dans cette étape, nous allons vous montrer comment configurer le filebeat sur le système Ubuntu et CentOS. Nous allons installer un filebeat et le configurer pour expédier les journaux des deux serveurs vers le Logstash sur le serveur élastique.

- Installer Filebeat sur CentOS 8

Ajoutez la clé elasticsearch au système CentOS 8 à l'aide de la commande suivante.

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

Allez maintenant dans le répertoire '/etc/yum.repos.d' et créez le fichier 'elasticsearch.repo' à l'aide de l'éditeur vim.

cd /etc/yum.repos.d/
vim elasticsearch.repo

Collez la configuration suivante.

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

Enregistrez et fermez.

Installez maintenant le filebeat en utilisant la commande dnf ci-dessous.

sudo dnf install filebeat

Attendez que l'installation de filebeat soit terminée.

- Installer Filebeat sur Ubuntu 18.04

Tout d'abord, installez les packages apt-transport-https.

sudo apt install apt-transport-https

Après cela, ajoutez la clé elasticsearch et le référentiel à l'aide des commandes suivantes.

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

Maintenant, mettez à jour tous les référentiels et installez filebeat sur le système Ubuntu à l'aide de la commande apt ci-dessous.

sudo apt update
sudo apt install filebeat

Attendez que l'installation de filebeat soit terminée.

- Configurer Filebeat

La configuration de filebeat située dans le répertoire '/etc/filebeat'. Allez dans le répertoire filebeat et modifiez le fichier de configuration 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Désactivez maintenant la sortie elasticsearch par défaut comme ci-dessous.

#output.elasticsearch:
  # Array of hosts to connect to.
  #  hosts: ["127.0.0.1:9200"]

Activez ensuite la sortie logstash et spécifiez l'adresse IP de l'hôte logstash.

output.logstash:
  # The Logstash hosts
  hosts: ["10.5.5.25:5044"]

Enregistrez et fermez.

Ensuite, nous devons activer les modules filebeat. Exécutez la commande filebeat ci-dessous pour obtenir la liste des modules filebeat.

filebeat modules list

Activez le module 'système' à l'aide de la commande suivante.

filebeat modules enable system

Le module filebeat system a été activé avec le fichier de configuration 'modules.d/system.yml'.

Modifiez la configuration du module système à l'aide de l'éditeur vim.

cd /etc/filebeat/
vim modules.d/system.yml

Décommentez le chemin du fichier syslog et du fichier d'autorisation ssh.

Pour le système CentOS :

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/messages"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/secure"]

Pour le système Ubuntu :

  # Syslog
  syslog:
    enabled: true
    var.paths: ["/var/log/syslog"]

  # Authorization logs
  auth:
    enabled: true
    var.paths: ["/var/log/auth.log"]

Enregistrez et fermez.

Ajoutez maintenant le service filebeat au démarrage du système et démarrez le service.

systemctl enable filebeat
systemctl start filebeat

Le service filebeat est opérationnel, vous pouvez le vérifier à l'aide de la commande suivante.

systemctl status filebeat

Et vous verrez le résultat comme ci-dessous.

Ci-dessous le résultat du serveur CentOS 8.

Et ci-dessous provient du serveur Ubuntu 18.04.

En conséquence, la connexion entre filebeat et le service logstash sur l'adresse IP du serveur de pile élastique '10.5.5.12' a été établie.

Étape 7 - Tester

Ouvrez votre navigateur Web et saisissez le nom de domaine d'installation de la Suite Elastic dans la barre d'adresse.

http://elk.hakase-labs.io/

Connectez-vous maintenant au tableau de bord Kibana à l'aide du compte d'authentification de base que vous avez créé.

Et vous obtiendrez le tableau de bord Kibana comme ci-dessous.

Connectez-vous maintenant aux données d'index elasticsearch créées automatiquement après le filebeat connecté au logstash. Cliquez sur 'Se connecter à votre index Elasticsearch ' lien.

Créez le 'filebeat-* ' modèle d'index et cliquez sur 'Étape suivante ' bouton.

Pour le nom du filtre, choisissez '@timestamp ' et cliquez sur 'Créer un modèle d'index '.

Et le 'filebeat-* ' modèle d'index a été créé, cliquez sur le bouton 'Découvrir ' sur la gauche.

Et vous obtiendrez les données de journal des clients filebeat comme ci-dessous.

Journaux pour le système CentOS 8.

Journal pour le système Ubuntu.

En conséquence, les données de journal définies sur le module système filebeat ont été envoyées au serveur de la pile élastique.

Et l'installation et la configuration d'Elastic Stack sur CentOS 8 se sont terminées avec succès.


Cent OS
  1. Comment installer Elasticsearch et Kibana sur Linux

  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 la pile ELK sur CentOS 7

  5. Installez Elasticsearch, Logstash et Kibana sur Ubuntu 20.04

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