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

Comment configurer un cluster de pile élastique multi-nœuds sur RHEL 8 / CentOS 8

Pile élastique largement connue sous le nom de pile ELK , c'est un groupe de produits open source comme Elasticsearch , Logstash et Kibana . Elastic Stack est développé et maintenu par la société Elastic. En utilisant la pile élastique, on peut alimenter les journaux du système vers Logstash, c'est un moteur de collecte de données qui accepte les journaux ou les données de toutes les sources et normalise les journaux, puis il transmet les journaux à Elasticsearch pour analyser , indexation , recherche et stocker et enfin, en utilisant Kibana, on peut représenter les données visualisées. En utilisant Kibana, nous pouvons également créer des graphiques et des diagrammes interactifs basés sur les requêtes de l'utilisateur.

Dans cet article, nous allons montrer comment configurer un cluster de pile élastique multi-nœuds (ELK Stack) sur des serveurs RHEL 8/CentOS 8. Voici les détails de mon cluster Elastic Stack :

Elasticsearch :
  • Trois serveurs avec un minimum de RHEL 8/CentOS 8
  • IP et nom d'hôte :192.168.56.40 (elasticsearch1.linuxtechi. local), 192.168.56.50 (elasticsearch2.linuxtechi. local), 192.168.56.60 (elasticsearch3.linuxtechi. local)
Logstash :
  • Deux serveurs avec un minimum de RHEL 8/CentOS 8
  • IP et nom d'hôte - 192.168.56.20 (logstash1.linuxtechi. local) , 192.168.56.30 (logstash2.linuxtechi. local)
Kibana :
  • Un serveur avec un minimum de RHEL 8/CentOS 8
  • Nom d'hôte :kibana.linuxtechi.local
  • IP - 192.168.56.10
Filebeat :
  • Un serveur avec un minimum de CentOS 7
  • IP et nom d'hôte – 192.168.56.70 (serveur Web)

Commençons par la configuration du cluster Elasticsearch,

Configurer un cluster Elasticsearch à 3 nœuds

Comme je l'ai déjà dit, j'ai conservé des nœuds pour le cluster Elasticsearch, connectez-vous à chaque nœud, définissez le nom d'hôte et configurez les référentiels yum/dnf.

Utilisez la commande hostnamectl ci-dessous pour définir le nom d'hôte sur les nœuds respectifs,

[[email protected] ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "elasticsearch2.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"[[email protected] ] ~]# exec bash[[email protected] ~]#

Pour le système CentOS 8, nous n'avons pas besoin de configurer de référentiel de packages de système d'exploitation et pour RHEL 8 Server, si vous avez un abonnement valide, puis que vous l'avez souscrit auprès de Red Hat pour obtenir le référentiel de packages. Si vous souhaitez configurer le référentiel yum/dnf local pour les packages de système d'exploitation, reportez-vous à l'URL ci-dessous :

Comment configurer le référentiel Yum/DNF local sur le serveur RHEL 8 à l'aide d'un DVD ou d'un fichier ISO

Configurez le référentiel de packages Elasticsearch sur tous les nœuds, créez un fichier elastic.repo  file sous /etc/yum.repos.d/ dossier avec le contenu suivant

~]# vi /etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=Référentiel Elasticsearch pour 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

enregistrer et quitter le fichier

Utilisez la commande rpm ci-dessous sur les trois nœuds pour importer la clé de signature publique d'Elastic

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

Ajoutez les lignes suivantes dans le fichier /etc/hosts sur les trois nœuds,

192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60             elasticsearch3.linuxtechi.local

Installez Java sur les trois nœuds à l'aide de la commande yum / dnf,

[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y 

Installez Elasticsearch en utilisant sous la commande dnf sur les trois nœuds,

[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y

Remarque : Si le pare-feu du système d'exploitation est activé et en cours d'exécution dans chaque nœud Elasticsearch, autorisez les ports suivants à l'aide de la commande ci-dessous firewall-cmd,

~]# firewall-cmd --permanent --add-port=9300/tcp~]# firewall-cmd --permanent --add-port=9200/tcp~]# firewall-cmd --reload 

Configurez Elasticsearch, éditez le fichier « /etc/elasticsearch/elasticsearch.yml ” sur les trois nœuds et ajoutez les éléments suivants,

~]# vim /etc/elasticsearch/elasticsearch.yml…………………………………………cluster.name :opn-clusternode.name :elasticsearch1.linuxtechi.localnetwork.host :192.168 .56.40http.port :9200discovery.seed_hosts :["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]cluster.initial_master_nodes :["elasticsearch1.linuxtechi.local", "elasticsearch2 .linuxtechi.local", "elasticsearch3.linuxtechi.local"]……………………………………………

Remarque : sur chaque nœud, ajoutez le nom d'hôte correct dans le paramètre node.name et l'adresse IP dans le paramètre network.host et les autres paramètres resteront les mêmes.

Maintenant, démarrez et activez le service Elasticsearch sur les trois nœuds à l'aide de la commande systemctl suivante,

~]# systemctl daemon-reload~]# systemctl enable elasticsearch.service~]# systemctl start elasticsearch.service

Utilisez la commande 'ss' ci-dessous pour vérifier si le nœud elasticsearch commence à écouter sur le port 9200,

[[email protected] ~]# ss -tunlp | grep 9200tcp   ÉCOUTER  0       128       [::ffff:192.168.56.40]:9200              * :*    utilisateurs :(("java",pid=2734,fd=256))                           [[email #preprotected] 

Utilisez les commandes curl suivantes pour vérifier l'état du cluster Elasticsearch

[[email protected] ~]# curl  http://elasticsearch1.linuxtechi.local:9200[[email protected] ~]# curl -X GET  http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?joli

La sortie ci-dessus serait quelque chose comme ci-dessous,

La sortie ci-dessus confirme que nous avons créé avec succès un cluster Elasticsearch à 3 nœuds et que l'état du cluster est également vert.

Remarque : Si vous souhaitez modifier la taille du tas JVM, vous devez modifier le fichier "/etc/elasticsearch/jvm.options ” et modifiez les paramètres ci-dessous en fonction de votre environnement,

  • -Xms1g
  • -Xmx1g

Passons maintenant aux nœuds Logstash,

Installer et configurer Logstash

Effectuez les étapes suivantes sur les deux nœuds Logstash,

Connectez-vous aux deux nœuds et définissez le nom d'hôte à l'aide de la commande hostnamectl suivante,

[[email protected] ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -nom d'hôte "logstash2.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#

Ajoutez les entrées suivantes dans le fichier /etc/hosts dans les deux nœuds logstash

~]# vi /etc/hosts192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60             elasticsearch3.linuxtechi.local

Enregistrez et quittez le fichier

Configurez le référentiel Logstash sur les deux nœuds, créez un fichierlogstash.repo sous le dossier /ete/yum.repos.d/ avec le contenu suivant,

~]# vi /etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=Référentiel Elasticsearch pour 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Enregistrez et quittez le fichier, exécutez la commande rpm suivante pour importer la clé de signature

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

Installez Java OpenJDK sur les deux nœuds à l'aide de la commande dnf suivante,

~]# dnf install java-openjdk -y

Exécutez la commande dnf suivante à partir des deux nœuds pour installer logstash,

[[email protected] ~]# dnf install logstash -y[[email protected] ~]# dnf install logstash -y

Configurez maintenant logstash, effectuez les étapes ci-dessous sur les deux nœuds logstash,

Créez un fichier de configuration logstash, pour cela, nous avons d'abord un exemple de copie de fichier logstash sous '/etc/logstash/conf.d/'

# cd /etc/logstash/# cp logstash-sample.conf conf.d/logstash.conf

Modifiez le fichier de configuration et mettez à jour le contenu suivant,

# vi conf.d/logstash.confinput {  beats {    port => 5044  }}output {  elasticsearch {    hosts => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2. linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+ AAAA.MM.jj}"    #user => "elastic"    #password => "changeme"  }}

Sous la section de sortie, dans le paramètre hosts, spécifiez le nom de domaine complet des trois nœuds Elasticsearch, les autres paramètres restent tels quels.

Autoriser le port logstash "5044" dans le pare-feu du système d'exploitation à l'aide de la commande firewall-cmd suivante,

~ # firewall-cmd --permanent --add-port=5044/tcp~ # firewall-cmd –reload

Maintenant, démarrez et activez le service Logstash, exécutez les commandes systemctl suivantes sur les deux nœuds

~]# systemctl start logstash~]# systemctl eanble logstash

Utilisez la commande ss ci-dessous pour vérifier si le service logstash commence à écouter sur 5044,

[[email protected] ~]# ss -tunlp | grep 5044tcp   LISTEN  0       128                       *:5044                * :*      utilisateurs :(("java",pid=2416,fd=96))                    [] # préprotégé 

La sortie ci-dessus confirme que logstash a été installé et configuré avec succès. Passons à l'installation de Kibana.

Installer et configurer Kibana

Connectez-vous au nœud Kibana, définissez le nom d'hôte avec hostnamectl commande,

[[email protected] ~]# hostnamectl set-hostname "kibana.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#

Modifiez le fichier /etc/hosts et ajoutez les lignes suivantes

192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60             elasticsearch3.linuxtechi.local

Configurez le référentiel Kibana en utilisant ce qui suit,

[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo[elasticsearch-7.x]name=Référentiel Elasticsearch pour 7.x packagesbaseurl=https://artifacts.elastic.co /packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md[[email protected] ~]# rpm --import https:// artefacts.elastic.co/GPG-KEY-elasticsearch

Exécutez la commande dnf ci-dessous pour installer kibana,

[[email protected] ~]# yum install kibana -y

Configurez Kibana en éditant le fichier « /etc/kibana/kibana.yml

[[email protected] ~]# vim /etc/kibana/kibana.yml…………server.host :"kibana.linuxtechi.local"server.name :"kibana.linuxtechi.local"elasticsearch.hosts :["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]…………

Démarrer et activer le service kibana

[[email protected] ~]# systemctl start kibana[[email protected] ~]# systemctl enable kibana

Autoriser le port Kibana "5601" dans le pare-feu du système d'exploitation,

[[email protected] ~]# firewall-cmd --permanent --add-port=5601/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]# 

Accédez au portail Kibana / GUI en utilisant l'URL suivante :

http://kibana.linuxtechi.local:5601

Depuis le tableau de bord, nous pouvons également vérifier l'état de notre cluster Elastic Stack

Cela confirme que nous avons correctement configuré le cluster Elastic Stack multi-nœuds sur RHEL 8 / CentOS 8.

Envoyons maintenant des journaux aux nœuds logstash via filebeat à partir d'autres serveurs Linux. Dans mon cas, j'ai un serveur CentOS 7, je vais pousser tous les journaux importants de ce serveur vers logstash via filebeat.

Connectez-vous au serveur CentOS 7 et installez le package filebeat à l'aide de la commande rpm suivante,

[[email protected] ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpmRécupération https://artifacts.elastic.co/downloads /beats/filebeat/filebeat-7.3.1-x86_64.rpmPréparation...                          ################################# [100 %]Mise à jour/installation...   1:filebeat-7.3.1-1                ############################### ## [100 %][[email protected] ~]#

Modifiez le fichier /etc/hosts et ajoutez les entrées suivantes,

192.168.56.20             logstash1.linuxtechi.local192.168.56.30             logstash2.linuxtechi.local

Configurez maintenant le filebeat afin qu'il puisse envoyer des journaux aux nœuds logstash en utilisant la technique d'équilibrage de charge, modifiez le fichier "/etc/filebeat/filebeat.yml ” et ajoutez les paramètres suivants,

Sous le 'filebeat.inputs : ' changement de section 'activé :faux ' à 'activé :vrai ' et sous les "chemins " Le paramètre spécifie les fichiers journaux d'emplacement que nous pouvons envoyer à logstash, Dans la section de sortie Elasticsearch, commentez "output.elasticsearch ” et hébergeur paramètre. Dans la section de sortie Logstash, supprimez les commentaires pour "output.logstash : " et " hôtes : " et ajoutez les deux nœuds logstash dans les paramètres d'hôtes ainsi que "loadbalance :true ”.

[[email protected] ~]# vi /etc/filebeat/filebeat.yml……………………….filebeat.inputs :- type :log  enabled :true paths :    - /var/log/messages - /var/log/dmesg    - /var/log/maillog    - /var/log/boot.log#output.elasticsearch :  #  hôtes :["localhost:9200"]output.logstash :    hôtes :["logstash1.linuxtechi. local:5044", "logstash2.linuxtechi.local:5044"]    loadbalance :vrai………………………………………

Démarrez et activez le service filebeat à l'aide des commandes systemctl ci-dessous,

[[email protected] ~]# systemctl start filebeat[[email protected] ~]# systemctl enable filebeat

Allez maintenant dans l'interface graphique de Kibana, vérifiez si les nouveaux index sont visibles ou non,

Choisissez l'option Gestion dans la barre latérale gauche, puis cliquez sur Gestion de l'index sous Elasticsearch,

Comme nous pouvons le voir ci-dessus, les index sont visibles maintenant, créons un modèle d'index,

Cliquez sur "Index Patterns" dans la section Kibana, cela nous demandera de créer un nouveau modèle, cliquez sur "Créer un modèle d'index " et spécifiez le nom du modèle comme "filebeat

Cliquez sur Étape suivante

Choisissez "Horodatage " comme filtre temporel pour le modèle d'index, puis cliquez sur "Créer un modèle d'index"

Maintenant, cliquez sur Découvrir pour voir le modèle d'index de filebeat en temps réel,

Cela confirme que l'agent Filebeat a été configuré avec succès et nous pouvons voir les journaux en temps réel sur le tableau de bord Kibana.

C'est tout de cet article, n'hésitez pas à partager vos commentaires et commentaires au cas où ces étapes vous aideraient à configurer Elastic Stack Cluster multi-nœuds sur le système RHEL 8 / CentOS 8.


Cent OS
  1. Comment installer node.js sur RHEL 8 / CentOS 8 Linux

  2. Comment configurer le serveur SysLog sur CentOS 7 / RHEL 7

  3. Comment configurer le serveur NFS sur CentOS 7 / RHEL 7

  4. Comment configurer Icinga Web 2 sur CentOS 7 / RHEL 7

  5. Comment configurer mutt dans CentOS/RHEL

Comment configurer un cluster haute disponibilité sur CentOS 8 / RHEL 8

Comment configurer Icinga Web 2 sur CentOS 8 / RHEL 8

Comment configurer un cluster haute disponibilité sur CentOS 7 / RHEL 7

Comment configurer un Chef 12 sur CentOS 7 / RHEL 7

Comment configurer le serveur SysLog centralisé sur CentOS 8 / RHEL 8

Comment configurer un cluster Redis dans CentOS 8 - Partie 3