GNU/Linux >> Tutoriels Linux >  >> Linux

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

Dans ce guide, vous apprendrez à installer la pile Elastic sur Ubuntu 18.04. Pile élastique , anciennement connu sous le nom de pile ELK est une collection ou une pile de logiciels gratuits et open source d'Elastic Company conçus pour la journalisation centralisée.

Il permet la recherche, l'analyse et la visualisation de journaux provenant de différentes sources dans une myriade de formats. La journalisation centralisée aide à identifier les problèmes de serveur ou d'application à partir d'un point commun.

Composants de pile élastique

Elastic Stack comprend 4 composants principaux.

  1. Elasticsearch  :Il s'agit d'un moteur de recherche RESTful qui stocke ou conserve toutes les données collectées
  2. Logstash  :Il s'agit du composant qui traite les données et les analyse en recherche élastique
  3. Kibana :Il s'agit d'une interface web qui visualise les logs
  4. Battements  :Ce sont des expéditeurs de données légers qui expédient les journaux de centaines/milliers de serveurs au serveur central sur lequel ELK est configuré.

Voyons maintenant comment installer la pile Elastic sur Ubuntu 18.04.

Prérequis

Avant de commencer l'installation, assurez-vous que vous disposez de l'infrastructure suivante.

  1. Serveur Ubuntu 18.04 LTS avec accès root et un utilisateur non root plus pare-feu ufw. Ce qui suit devrait être la configuration minimale requise pour le serveur.
    • Ubuntu 18.04 LTS
    • 4 Go de RAM
    • 2 processeurs
  2. Java 8 installé sur votre système qui sera requis par Elasticsearch et Logstash.
  3. NGINX installé sur votre serveur qui sera ultérieurement configuré pour gérer Kibana. Lecture recommandée :Installer Nginx sur Ubuntu 18.04

Cela dit, plongeons et commençons l'installation de la pile Elastic sur Ubuntu.

1. Installer Elasticsearch sur Ubuntu

Tout d'abord, nous allons importer la clé GPG publique d'Elasticsearch dans APT. Les packages de pile élastique sont généralement signés avec la clé de signature Elasticsearch pour protéger votre système contre l'usurpation de package. De plus, les packages authentifiés sont considérés comme approuvés par le gestionnaire de packages.

Pour importer la clé GPG, procédez comme suit :

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Ensuite, ajoutez le référentiel Elastic au sources.list.d répertoire à l'aide de la commande ci-dessous.

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Le résultat des deux commandes est le suivant :

Sortie

Maintenant, mettez à jour le référentiel du système à l'aide de la commande ci-dessous.

sudo apt update

Exemple de sortie

Maintenant, installez Elasticsearch en utilisant la commande ci-dessous.

sudo apt install elasticsearch

Sortie

2. Configurer Elasticsearch sur Ubuntu

Elasticsearch écoute sur le port 9200. Cependant, nous allons limiter l'accès extérieur afin que les parties extérieures ne puissent pas accéder aux données et arrêter le cluster élastique. Cela dit, nous allons apporter quelques modifications au fichier de configuration d'Elasticsearch comme indiqué ci-dessous

sudo nano /etc/elasticsearch/elasticsearch.yml

Trouvez le network.host attribut et décommentez-le et ajoutez localhost comme sa valeur. Décommentez également le http.port attribut.

Sortie


network.host: localhost
http.port: 9200

Ensuite, démarrez et activez le service Elasticsearch comme indiqué.


sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Sortie

À ce stade, Elasticsearch devrait être opérationnel. Vous pouvez le vérifier en exécutant la commande ci-dessous.

systemctl status elasticsearch

Sortie

Vous pouvez également utiliser le netstat commande comme indiqué.

netstat -pnltu

En outre, vous pouvez exécuter le curl commande comme indiqué.

curl -X GET "localhost:9200"

Sortie

Super! Nous avons finalisé l'installation et la configuration d'Elasticsearch. Ensuite, nous allons installer et configurer Logstash.

3. Installer et configurer Logstash

Le deuxième composant de la pile élastique que nous allons installer est Logstash. Logstash sera responsable de la collecte et de la centralisation des journaux de divers serveurs à l'aide de l'expéditeur de données filebeat. Il filtrera et relayera ensuite les données syslog vers Elasticsearch.

Tout d'abord, confirmons que OpenSSL est en cours d'exécution. Pour ce faire, courez.

openssl version -a

Sortie

Pour installer Logstash, exécutez la commande ci-dessous.

sudo apt install logstash -y

Sortie

Ensuite, modifiez le /etc/hosts fichier et ajoutez ce qui suit.

18.224.44.11  elk-master

Où 18.224.44.11 est l'adresse IP du serveur masterELk.

Nous allons ensuite générer la clé de certificat SSL pour sécuriser le transfert des données de log du client filebeat vers le serveur logstash.

Pour ce faire, créez d'abord un nouveau répertoire SSL sous le répertoire de configuration de logstash "/etc/logstash" et naviguez dans ce répertoire.


mkdir -p /etc/logstash/ssl
cd /etc/logstash/

Vous pouvez maintenant générer le certificat SSL comme indiqué ci-dessous.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Ensuite, nous allons créer de nouveaux fichiers de configuration pour logstash. Nous allons créer un fichier de configuration 'filebeat-input.conf' comme fichier d'entrée de filebeat, 'syslog-filter.conf' pour le traitement syslog, et enfin un fichier 'output-elasticsearch.conf' pour définir la sortie Elasticsearch.

Accédez au répertoire Logstash et créez un "filebeat-input.conf" dans le répertoire "conf.d".

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

Collez la configuration suivante.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Enregistrez et quittez l'éditeur de texte.

Pour les données du journal de traitement syslog, nous utilisons le plug-in de filtre nommé « grok » pour l'analyse des fichiers syslog.

Créez une nouvelle configuration "syslog-filter.conf".

vim conf.d/syslog-filter.conf

Collez la configuration ci-dessous.


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 quittez l'éditeur de texte.

Enfin, créez un fichier de configuration nommé "output-elasticsearch.conf" pour la sortie elasticsearch.

vim conf.d/output-elasticsearch.conf

Collez le contenu suivant.


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

Enregistrez et quittez l'éditeur de texte.

Lorsque cela est dit et fait, activez et démarrez le service Logstash.

sudo systemctl enable logstash
sudo systemctl start logstash

Pour vérifier que Logstash est en cours d'exécution, exécutez la commande.

sudo systemctl status logstash

Exemple de sortie

Vous pouvez également utiliser le netstat commande comme indiqué.

netstat -pnltu

4. Installer et configurer Kibana sur Ubuntu

Ensuite, nous allons installer Kibana en utilisant la commande ci-dessous.

sudo apt install kibana -y

Sortie

Ensuite, nous allons apporter quelques modifications au fichier de configuration de kibana.

vim /etc/kibana/kibana.yml

Localisez et décommentez les attributs suivants.


server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"

Enregistrez et quittez l'éditeur de texte.

Ensuite, activez et démarrez le service Kibana :


sudo systemctl enable kibana
sudo systemctl start kibana

Sortie

Vous pouvez confirmer que kibana s'exécute sur son port par défaut 5601 en utilisant le netstat commande comme indiqué.

netstat -pnltu

Sortie

5. Installation et configuration de NGINX en tant que proxy inverse pour Kibana

Nous utilisons NGINX comme proxy inverse pour les tableaux de bord Kibana. Vous devez installer Nginx et "Apache2-utils" comme indiqué ci-dessous.

sudo apt install nginx apache2-utils -y

Sortie

Ensuite, créez un nouveau fichier d'hôte virtuel nommé kibana.

vim /etc/nginx/vim sites-available/kibana

Collez le contenu suivant dans le fichier de l'hôte virtuel


server {
    listen 80;
 
    server_name localhost;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass https://localhost: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 quittez l'éditeur de texte. Lecture recommandée :directive de localisation NGINX.

Ensuite, créez une authentification de base pour le tableau de bord kibana en utilisant le htpasswd commande comme indiqué.

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password

Sortie

Dans l'exemple ci-dessus, le nom d'utilisateur est élastique et le mot de passe sera celui que vous fournirez.

Ensuite, activez la configuration de l'hôte virtuel Kibana et testez la configuration Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t

Sortie

Sans erreur, activez et redémarrez le serveur Nginx.


systemctl enable nginx
systemctl restart nginx

6. Installation et configuration de Filebeat

Dans cette étape, nous allons configurer l'expéditeur de données filebeat sur notre serveur elk-master. Cela relayera tous les messages syslog vers logstash qui seront traités et visualisés par kibana.

Pour installer filebeat, exécutez :

sudo apt install filebeat

Ensuite, ouvrez le fichier de configuration filebeat.

sudo vim /etc/filebeat/filebeat.yml

Nous allons utiliser Logstash pour effectuer des traitements supplémentaires sur les données collectées par Filebeat. Filebeat ne sera pas nécessaire pour envoyer des données directement à Elasticsearch. Par conséquent, localisez et commentez la section elasticsearch comme indiqué.


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

Ensuite, dirigez-vous vers la section Logstash et décommentez comme indiqué.


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

Activez les prospecteurs filebeat en modifiant la valeur de la ligne "enabled" sur "true".

enabled: true

Spécifiez les fichiers journaux système à envoyer au serveur logstash. Dans cet exemple, nous ajouterons le fichier journal ssh "auth.log" et le fichier syslog.

Chemins

  paths:
    - /var/log/auth.log
    - /var/log/syslog

Sauvegardez et quittez.

Enfin, copiez le fichier de certificat logstash – logstash-forwarder.crt – dans /etc/filebeat répertoire.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Maintenant, démarrez et activez filebeat.


systemctl start filebeat
systemctl enable filebeat

Pour vérifier l'état de l'exécution de filebeat :

systemctl status filebeat

Sortie

7. Test de la pile Elasticsearch

Pour tester notre pile Elastic, ouvrez votre navigateur et parcourez l'IP de votre serveur suivi du port 5601 qui est le port que kibana écoute.

ip-address:5601

Entrez le nom d'utilisateur et le mot de passe et plus tard, l'écran suivant s'affichera.

Cliquez sur l'onglet "découvrir" et cliquez sur "Filebeat". L'interface suivante apparaîtra pour vous donner une diffusion en direct des données visualisées.

Toutes nos félicitations! Vous avez installé et configuré avec succès la Suite Elastic et Elastic Beat ‘Filebeat’ sur votre système Ubuntu 18.04.


Linux
  1. Comment installer Elasticsearch et Kibana sur Linux

  2. Comment installer Elasticsearch sur Ubuntu 18.04

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

  4. Installez Elasticsearch, Logstash et Kibana sur Ubuntu 20.04

  5. Comment installer et configurer Elasticsearch sur Ubuntu 18.04

Comment installer Elasticsearch, Logstash et Kibana (ELK Stack) sur CentOS 7 / RHEL 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 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