GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Elastic Stack sur Ubuntu 18.04 LTS

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 dans un schéma de document JSON. Elasticsearch est un moteur de recherche évolutif qui peut être utilisé pour rechercher tous les types 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 tutoriel, je vais vous montrer comment installer et configurer Elastic Stack sur un serveur Ubuntu 18.04 pour surveiller les journaux du serveur. Ensuite, je vous montrerai comment installer et configurer 'Elastic beats' sur un serveur client Ubuntu 18.04 et CentOS 7.

Prérequis

  • 3 serveurs
    • Ubuntu 18.04 avec 4 Go de RAM/mémoire en tant que "elk-master" – 10.0.15.10
    • Ubuntu 18.04 avec 512 Mo/1 Go de RAM/mémoire en tant que "elk-client01" – 10.0.15.21
    • CentOS 7.5 avec 512 Mo/1 Go de RAM/mémoire en tant que "elk-client02" – 10.0.15.22
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer la Suite Elastic
    1. Installer Java
    2. Installer et configurer ElasticSearch
    3. Installer et configurer Kibana
    4. Installer et configurer Nginx en tant que proxy inverse pour Kibana
    5. Installer et configurer Logstash
  2. Installer et configurer Filebeat sur Ubuntu 18.04
  3. Installer et configurer Filebeat sur CentOS 7.5
  4. Test

Étape 1 - Installer Elastic Stack

Dans cette première étape, nous allons installer et configurer la "pile élastique" sur le serveur "elk-master", donc exécutez toutes les commandes et étapes pour cette étape sur le serveur "elk-master" uniquement. Nous installerons et configurerons chaque composant de la pile élastique, y compris Elasticsearch, l'expéditeur Logstash et Kibana Dashboard avec le serveur Web Nginx.

Installer Java

Java est requis pour le déploiement de la pile élastique. Elasticsearch nécessite Java 8. Il est recommandé d'utiliser le JDK Oracle 1.8, et nous installerons Java 8 à partir d'un référentiel PPA.

Installez les packages 'software-properties-common' et 'apt-transport-https', puis ajoutez le référentiel Java PPA 'webupd8team'. Exécutez les commandes 'apt install' et 'add-apt-repository' ci-dessous.

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y

Installez maintenant le programme d'installation java8.

sudo apt install oracle-java8-installer -y

Une fois l'installation terminée, vérifiez la version Java.

version Java

Java 1.8 installé sur le système.

Ensuite, nous allons configurer l'environnement Java. Vérifiez le fichier binaire Java à l'aide de la commande ci-dessous.

update-alternatives --config java

Et vous obtiendrez le fichier binaire java sur le '/usr/lib/jvm/java-8-oracle ' répertoire.

Créez maintenant le fichier de profil 'java.sh' sous le répertoire 'profile.d'.

vim /etc/profile.d/java.sh

Collez la configuration de l'environnement Java ci-dessous.

#Set JAVA_HOMEJAVA_HOME="/usr/lib/jvm/java-8-oracle"export JAVA_HOMEPATH=$PATH:$JAVA_HOMEexport PATH

Enregistrez et quittez.

Rendez le fichier exécutable et chargez le fichier de configuration.

chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Vérifiez maintenant l'environnement Java à l'aide de la commande ci-dessous.

écho $JAVA_HOME

Et vous obtiendrez le répertoire java situé dans '/usr/lib/jvm/java-8-oracle ' répertoire.

Installer Elasticsearch

Après avoir installé Java, nous installerons le premier composant de la Suite Elastic, nous installerons l'elasticsearch.

Ajoutez la clé de pile élastique et ajoutez le référentiel élastique au système.

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

Maintenant, mettez à jour le référentiel et installez le package elasticsearch à l'aide de la commande ci-dessous.

sudo apt update
sudo apt install elasticsearch -y

Une fois l'installation terminée, accédez au répertoire '/etc/elasticsearch' et modifiez le fichier de configuration 'elasticsearch.yml'.

cd /etc/elasticsearch/
vim elasticsearch.yml

Décommentez la ligne 'network.host' et changez la valeur en 'localhost', et décommentez la ligne 'http.port' pour la configuration du port elasticsearch.

network.host :localhosthttp.port :9200

Enregistrez et quittez.

Démarrez maintenant le service elasticsearch et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl démarrer elasticsearch
systemctl activer elasticsearch

Elasticsearch est maintenant opérationnel, vérifiez-le à l'aide de la commande netstat netstat et des commandes curl ci-dessous.

netstat -plntu
curl -XGET 'localhost:9200/?pretty'

Vous obtiendrez maintenant la version '6.2.4' d'elasticsearch qui s'exécute sur le port par défaut '9200'.

L'installation d'elasticsearch est terminée.

Installer et configurer le tableau de bord Kibana

Le deuxième composant est un tableau de bord kibana. Nous allons installer le tableau de bord Kibana à partir du référentiel élastique et configurer le service kibana pour qu'il s'exécute sur l'adresse localhost.

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

sudo apt install kibana -y

Allez maintenant dans le répertoire '/etc/kibana' et éditez le fichier de configuration 'kibana.yml'.

cd /etc/kibana/
vim kibana.yml

Décommentez ces lignes 'server.port', 'server.host' et 'elasticsearch.url'.

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

Enregistrez et quittez.

Démarrez maintenant le service kibana et activez-le pour qu'il se lance à chaque démarrage du système.

sudo systemctl enable kibana
sudo systemctl start kibana

Le tableau de bord kibana est maintenant opérationnel sur l'adresse 'localhost' et le port par défaut '5601'. Vérifiez-le en utilisant la commande netstat ci-dessous.

netstat -plntu

L'installation du tableau de bord Kibana est terminée.

Installer et configurer Nginx en tant que proxy inverse pour Kibana

Dans ce didacticiel, nous utiliserons le serveur Web Nginx comme proxy inverse pour le tableau de bord Kibana.

Installez Nginx et les packages "apache2-utils" sur le système.

sudo apt install nginx apache2-utils -y

Une fois l'installation terminée, accédez au répertoire de configuration '/etc/nginx' et créez un nouveau fichier d'hôte virtuel nommé 'kibana'.

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

Collez la configuration de l'hôte virtuel Nginx ci-dessous.

serveur { écoute 80 ; nom_serveur elastic-stack.io ; auth_basic "Accès restreint" ; auth_basic_user_file /etc/nginx/.kibana-user ; emplacement / { proxy_pass http://localhost:5601; proxy_http_version 1.1 ; proxy_set_header Mettre à jour $http_upgrade ; proxy_set_header Connexion 'mise à niveau' ; proxy_set_header Hôte $hôte ; proxy_cache_bypass $http_upgrade ; }}

Enregistrez et quittez.

Ensuite, nous allons créer un nouveau serveur Web d'authentification de base pour accéder au tableau de bord Kibana. Nous allons créer l'authentification de base en utilisant la commande htpasswd comme ci-dessous.

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Tapez le mot de passe de l'utilisateur élastique

Activez l'hôte virtuel kibana et testez toute la configuration nginx.

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

Assurez-vous qu'il n'y a pas d'erreur, démarrez maintenant le service Nginx et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl activer nginx
systemctl redémarrer nginx

L'installation et la configuration de Nginx en tant que proxy inverse pour le tableau de bord Kibana sont terminées.

Installer et configurer Logstash

Le dernier composant de la Suite Elastic pour ce guide est le « Logstash ». Nous allons installer et configurer Logsatash pour centraliser les journaux du serveur à partir des sources client avec filebeat, puis filtrer et transformer toutes les données (Syslog) et les transporter vers la réserve (Elasticsearch).

Avant d'installer logstash, assurez-vous de vérifier la version OpenSSL de votre serveur.

openssl version -a

Pour ce guide, nous utiliserons OpenSSL '1.0.2o'. Si vous utilisez toujours la version 1.1.2 d'OpenSSL, vous obtiendrez une erreur lors de la connexion SSL logstash et filebeat.

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

sudo apt install logstash -y

Une fois l'installation terminée, nous générerons la clé de certificat SSL pour sécuriser le transfert des données de journal du filebeat client vers le serveur logstash.

Modifiez le fichier '/etc/hosts' à l'aide de vim.

vim /etc/hosts

Ajoutez la configuration ci-dessous.

10.0.15.10 elk-master elk-master

Enregistrez et quittez.

Créez maintenant un nouveau répertoire SSL sous le répertoire de configuration logstash '/etc/logstash' et accédez à ce répertoire.

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

Générez le certificat SSL pour Logstash à l'aide de la commande openssl comme 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 

Les fichiers de certificat SSL pour Logstash ont été créés dans le répertoire '/etc/logstash/ssl'.

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, puis un fichier 'output-elasticsearch.conf' pour définir la sortie Elasticsearch.

Allez dans le répertoire de configuration logstash et créez les nouveaux fichiers de configuration 'filebeat-input.conf' dans le répertoire 'conf.d'.

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

Collez-y 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.

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

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

vim conf.d/syslog-filter.conf

Collez-y 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 j HH:mm:ss", "MMM jj HH:mm:ss" ] } }}

Enregistrez et quittez.

Et pour la sortie elasticsearch, nous allons créer le fichier de configuration nommé 'output-elasticsearch.conf'.

vim conf.d/output-elasticsearch.conf

Collez-y la configuration suivante.

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

Enregistrez et quittez.

Lorsque cela est fait, démarrez le service logstash et activez-le pour qu'il se lance à chaque démarrage du système.

sudo systemctl enable logstash
sudo systemctl start logstash

Vérifiez le service logstash à l'aide des commandes netstat et systemctl ci-dessous.

netstat -plntu
logstash d'état systemctl

Et le service logstash est maintenant opérationnel. Exécuté sur l'adresse IP publique avec le port '5443'.

L'installation d'Elastic Stack est terminée.

Étape 2 - Installer et configurer Filebeat sur Ubuntu 18.04

Dans cette étape, nous allons configurer le client Ubuntu 18.04 'elk-client01' en y installant les expéditeurs de données Elastic Beats 'Filebeat'.

Avant d'installer le filebeat sur le système, nous devons modifier le fichier '/etc/hosts' et télécharger le fichier de certificat logstash 'logstash-forwarder.crt' sur le serveur 'elk-client01'.

Modifiez le fichier '/etc/hosts' à l'aide de l'éditeur vim.

vim /etc/hosts

Collez-y la configuration suivante.

10.0.15.10 elk-master elk-master

Enregistrez et quittez.

Copiez le fichier de certificat logstash 'logstash-forwarder.crt' à l'aide de la commande scp.

scp [protégé par e-mail] :/etc/logstash/ssl/logstash-forwarder.crt .

Ensuite, installez Elastic Beats 'Filebeat' en ajoutant la clé élastique et ajoutez le référentiel élastique.

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

Mettez à jour le référentiel et installez le package 'filebeat' à l'aide de la commande apt ci-dessous.

sudo apt update
sudo apt install filebeat -y

Une fois l'installation terminée, accédez au répertoire '/etc/filebeat' et modifiez le fichier de configuration 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Activez maintenant les prospecteurs filebeat en changeant la valeur de la ligne 'enabled' en 'true'.

 activé :vrai

Définissez les fichiers journaux système à envoyer au serveur logstash. Pour ce guide, nous ajouterons le fichier journal ssh 'auth.log' et le fichier syslog.

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

Configurez la sortie sur logstash en commentant la sortie "elasticsearch" par défaut et décommentez la ligne de sortie logstash comme ci-dessous.

output.logstash :# Les hôtes Logstash hébergent :["elk-master:5443"] ssl.certificate_authorities :["/etc/filebeat/logstash-forwarder.crt"]

Enregistrez et quittez.

Ensuite, nous devons éditer le fichier 'filebeat.reference.yml' pour activer les modules filebeat, et nous allons activer le module 'syslog'.

vim filebeat.reference.yml

Activez le module système syslog pour filebeat comme ci-dessous.

- module :système # Syslog syslog :activé :vrai

Enregistrez et quittez.

Copiez le fichier de certificat logstash 'logstash-forwarder.crt' dans le répertoire '/etc/filebeat'.

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

L'installation et la configuration de Filebeat sont terminées. Démarrez maintenant le service filebeat et activez-le pour qu'il se lance à chaque fois au démarrage du système.

systemctl start filebeat
systemctl enable filebeat

Vérifiez le service filebeat à l'aide des commandes ci-dessous.

systemctl status filebeat
tail -f /var/log/filebeat/filebeat

Les expéditeurs de filebeat sont opérationnels sous le serveur Ubuntu 18.04.

Étape 3 - Installer et configurer Filebeat sur CentOS 7.5

Dans cette étape, nous allons configurer le client CentOS 7.5 'elk-client02' en y installant les expéditeurs de données Elastic Beats 'Filebeat'.

Avant d'installer Filebeat sur le système, nous devons modifier le fichier '/etc/hosts' et télécharger le fichier de certificat logstash 'logstash-forwarder.crt' sur le serveur 'elk-client02'.

Modifiez le fichier '/etc/hosts' à l'aide de vim.

vim /etc/hosts

Collez la configuration ci-dessous.

10.0.15.10 elk-master elk-master

Enregistrez et quittez.

Copiez le fichier de certificat logstash 'logstash-forwarder.crt' à l'aide de la commande scp.

scp [protégé par e-mail] :/etc/logstash/ssl/logstash-forwarder.crt .

Ensuite, installez Elastic Beats 'Filebeat' en ajoutant la clé élastique et ajoutez le référentiel élastique.

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

cat < /etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Référentiel Elasticsearch pour les packages 6.x
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
EOF

Installez filebeat à l'aide de la commande yum ci-dessous.

yum install filebeat -y

Une fois l'installation terminée, accédez au répertoire '/etc/filebeat' et modifiez le fichier de configuration 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Activez maintenant les prospecteurs filebeat en changeant la valeur de la ligne 'enabled' en 'true'.

 activé :vrai

Définissez les fichiers journaux système à envoyer au serveur logstash. Pour ce guide, nous ajouterons le fichier journal ssh 'auth.log' et le fichier syslog.

 chemins :- /var/log/secure - /var/log/messages

Configurez la sortie sur logstash en commentant la sortie "elasticsearch" par défaut et décommentez la ligne de sortie logstash comme ci-dessous.

output.logstash :# Les hôtes Logstash hébergent :["elk-master:5443"] ssl.certificate_authorities :["/etc/filebeat/logstash-forwarder.crt"]

Enregistrez et quittez.

Ensuite, nous devons éditer le fichier 'filebeat.reference.yml' pour activer les modules filebeat, et nous allons activer le module 'syslog'.

vim filebeat.reference.yml

Activez le module système syslog pour filebeat comme ci-dessous.

- module :système # Syslog syslog :activé :vrai

Enregistrez et quittez.

Copiez le fichier de certificat logstash 'logstash-forwarder.crt' dans le répertoire '/etc/filebeat'.

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

L'installation et la configuration de Filebeat sont terminées. Démarrez maintenant le service filebeat et ajoutez-le au temps de démarrage.

systemctl start filebeat
systemctl enable filebeat

Vérifiez le service filebeat à l'aide des commandes ci-dessous.

systemctl status filebeat
tail -f /var/log/filebeat/filebeat

Les expéditeurs de filebeat sont opérationnels sous le serveur CentOS 7.5.

Étape 4 - Tester

Ouvrez votre navigateur Web et tapez le nom de domaine de la pile élastique, le mien est :'elastic-stack.io'.

Le nom d'utilisateur et le mot de passe de l'authentification de base au tableau de bord Kibana vous seront demandés.

Tapez le nom d'utilisateur 'elastic' avec votre mot de passe.

Maintenant, vous obtiendrez le magnifique tableau de bord kibana, cliquez sur le bouton "Configurer les modèles d'indexation" à droite.

Définissez le modèle d'index 'filebeat-*' et cliquez sur le bouton 'Next step'.

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

Et le modèle d'index filebeat a été créé.

Ensuite, nous essaierons d'obtenir les informations du journal pour l'échec de la connexion SSH sur chaque serveur client 'elk-client01' du système Ubuntu et du système CentOS 'elk-client02'.

Dans le tableau de bord Kibana, cliquez sur le menu "Découvrir" pour obtenir tous les journaux du serveur.

Définissez le 'beat.hostname' sur le serveur 'elk-client01', la 'source' est le fichier '/var/log/auth.log', et vous obtiendrez le résultat comme indiqué ci-dessous.

Et voici l'exemple de détails de journal pour le mot de passe d'échec SSH à partir du fichier 'auth.log'.

Pour le serveur CentOS 'elk-client02', définissez le 'beat.hostname' sur le serveur 'elk-client02', la 'source' est le fichier '/var/log/secure', et vous obtiendrez le résultat comme indiqué ci-dessous.

Et voici l'exemple de détails de journal pour le mot de passe d'échec SSH à partir du fichier "sécurisé".

L'installation et la configuration d'Elastic Stack et d'Elastic Beat 'Filebeat' ont été effectuées avec succès.


Ubuntu
  1. Comment installer Java sur Ubuntu

  2. Comment installer Java sur Ubuntu 18.04

  3. Comment installer Java 17 dans Ubuntu 20.04

  4. Comment installer Apache Hadoop sur Ubuntu 16.04 LTS

  5. Comment installer Java 17 LTS sur Ubuntu 20.04

Comment installer Cassandra sur Ubuntu 16.04 LTS

Comment installer Eclipse IDE sur Ubuntu 16.04 LTS

Comment installer Oracle Java sur Ubuntu 18.04 LTS

Comment installer Go sur Ubuntu 18.04 LTS

Comment installer Go sur Ubuntu 20.04 LTS

Comment installer Java sur Ubuntu 22.04