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

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

Ce tutoriel concerne une ancienne version d'ELK Stack, certains liens sont rompus et peuvent ne pas fonctionner comme prévu. Une nouvelle version est disponible ici :Mise à jour :Installer ELK Stack sur CentOS 7 / RHEL 7.

Dans cet article, nous verrons comment installer Elasticsearch, Logstash et Kibana 4 sur CentOS 7 / RHEL 7. Cette pile ELK nous aide à stocker et à gérer les journaux dans un emplacement centralisé. La pile ELK se compose de quatre composants essentiels qui constituent une merveilleuse pile pour analyser les problèmes en corrélant les événements à un moment donné.

La centralisation des journaux facilitera la vie d'un administrateur système pour analyser les problèmes et les problèmes sans se rendre sur chaque machine pour les journaux, et visualiser ces journaux à la direction pour les besoins de l'entreprise.

Composants :

Logstash - Il effectue le traitement (collecte, analyse et l'envoie à Elasticsearch) des journaux entrants.

Elasticsearch - Stocke les journaux provenant de Logstash.

Kibana 4 - Interface Web pour visualiser les journaux (a sa propre interface).

Les trois ci-dessus sont installés sur le serveur.

Logstash-forwarder – Installé sur les machines clientes, envoie le journal à Logstash via le protocole bûcheron.

Versions d'application :

Cet article utilise la version ci-dessous des logiciels pour la pile ELK.

Elastisearch 1.5.0

logstash-1.4.2

Kibana 4

logstash-forwarder-0.4.0

Prérequis :

1. Nous aurions besoin d'installer openJDK ou Oracle JDK, il est recommandé d'installer Oracle JDK. Vérifiez la version Java à l'aide de la commande suivante.

# java -versionjava version "1.8.0_11"Java(TM) SE Runtime Environment (build 1.8.0_11-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

2. Configurez le référentiel EPEL sur CentOS 7 / RHEL 7.

3. Installez wget.

# yum -y install wget

Installez Elasticsearch :

Elasticsearch est un serveur de recherche open source, il offre une recherche et une analyse distribuées en temps réel avec une interface Web RESTful. Elasticsearch stocke tous les journaux envoyés par le serveur logstash et affiche les messages lorsque le kibana4 demande un remplissage complet de la demande de l'utilisateur via l'interface Web. Cette rubrique couvre les paramètres de configuration requis pour ELK, vous pouvez également consulter Installer Elasticsearch sur CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1 pour des instructions détaillées.

Installons Elasticsearch, il peut être téléchargé à partir du site officiel. Vous pouvez utiliser la commande suivante pour télécharger via le terminal et l'installer.

# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.0.noarch.rpm# rpm -Uvh elasticsearch-1.5.0.noarch.rpm

Configurez Elasticsearch pour qu'il démarre au démarrage du système.

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

Attendez au moins une minute pour permettre à Elasticsearch de redémarrer complètement, sinon les tests échoueront. Elastisearch devrait maintenant écouter sur 9200 pour traiter la requête HTTP, nous pouvons utiliser CURL pour obtenir la réponse.

# curl -X GET http://localhost:9200{"status" :200,"name" :"Delphi","cluster_name" :"elasticsearch","version" :{"number" :"1.5. 0","build_hash" :"544816042d40151d3ce4ba4f95399d7860dc2e92","build_timestamp" :"2015-03-23T14:30:58Z","build_snapshot" :false,"lucene_version" :"4.10.4"},"tagline" :"Vous Savoir, pour la recherche"}

Installer Logstash :

Logstash est un outil open source, utilisé pour collecter les journaux, les analyser et les stocker en les recherchant. Oui, logstash est livré avec une interface Web (kibana3 est intégré) pour visualiser les journaux dont nous n'allons pas discuter ici à la place, nous utilisons kibana4. Le traitement de différents types d'événements peut être étendu en y ajoutant des plugins, plus de 160 plugins sont disponibles à ce jour. Passons directement à l'installation.

# wget https://download.elasticsearch.org/logstash/logstash/packages/centos/logstash-1.4.2-1_2c0f5a1.noarch.rpm# rpm -Uvh logstash-1.4.2-1_2c0f5a1.noarch.rpm 

Une fois le serveur logstash installé, passons à la section suivante

Créer un certificat SSL :

Logstash-forwarder qui sera installé sur le client-serveur pour expédier les journaux nécessite un certificat SSL pour valider l'identité du serveur logstash. Nous avons deux options pour créer un certificat SSL et cela dépend de la configuration de logstash-forwarder ; si le nom d'hôte ("servers":[ "itzgeek:5050" ]) est utilisé, le nom du sujet de SSL doit correspondre à "itzgeek". Si vous utilisez ( "serveurs":[ "10.0.0.26:5050" ]) une adresse IP, vous devez créer un certificat SSL avec IP SAN avec la valeur 10.0.0.26.

Suivez l'une des méthodes pour créer un certificat SSL.

Option 1 :(nom de domaine complet du nom d'hôte)

Avant de créer un certificat, assurez-vous d'avoir un enregistrement A pour le serveur logstash ; assurez-vous que les serveurs clients sont capables de résoudre le nom d'hôte du serveur logstash. Si vous n'avez pas de DNS, veuillez ajouter l'entrée d'hôte pour le serveur logstash ; où 10.0.0.26 est l'adresse IP du serveur logstash et itzgeek est le nom d'hôte de votre serveur logstash.

# vi /etc/hosts10.0.0.26 itzgeek

Créons un certificat SSL.

Allez dans le répertoire OpenSSL.

# cd /etc/pki/tls

Exécutez la commande suivante pour créer un certificat SSL, remplacez le "rouge" par votre vrai serveur logstash.

# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=itzgeek

Option 2 :(Adresse IP)

Avant de créer un certificat SSL, nous aurions besoin d'ajouter une adresse IP du serveur logstash à SubjectAltName dans le fichier de configuration OpenSSL.

# vi /etc/pki/tls/openssl.cnf

Accédez à la section "[ v3_ca ]" et remplacez la "rouge" par l'adresse IP de votre serveur logstash.

subjectAltName =IP:10.0.0.26

Allez dans le répertoire OpenSSL.

# cd /etc/pki/tls

Exécutez la commande suivante pour créer un certificat SSL.

# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

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

Configurer Logstash :

Les fichiers de configuration Logstash se trouvent dans /etc/logstash/conf.d/, juste un dossier vide. Nous aurions besoin de créer un fichier, les fichiers de configuration logstash se composent de trois sections d'entrée, de filtre et de sortie ; les trois sections peuvent être trouvées soit dans un seul fichier, soit chaque section aura des fichiers séparés se terminant par .conf.

Ici, nous utiliserons un seul fichier pour placer une section d'entrée, de filtre et de sortie.

# vi /etc/logstash/conf.d/logstash_syslogs.conf

Dans la première section, nous mettrons une entrée pour la configuration des entrées. La configuration suivante définit le bûcheron pour qu'il écoute sur le port 5050 les journaux entrants du logstash-forwarder qui se trouve dans les serveurs clients, il utilisera également le certificat SSL que nous avons créé précédemment.

entrée {bûcheron {port => 5050type => "logs"ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"ssl_key => "/etc/pki/tls/private/logstash- forwarder.key"}}

Dans la deuxième section, nous mettrons une entrée pour la configuration du filtre. Grok est un filtre dans logstash, qui analyse les journaux avant de les envoyer à Elasticsearch pour stockage. Le filtre grok suivant recherchera les journaux étiquetés comme "syslog" et essaiera 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 jj HH:mm:ss" ]}  }}

Envisagez de visiter grokdebugger pour les modèles de filtre.

Dans la troisième section, nous mettrons une entrée de configuration de sortie. Cette section définit l'emplacement où les journaux sont stockés ; il devrait évidemment s'agir d'Elasticsearch.

sortie {elasticsearch { host => localhost index => "logstash-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}

Démarrez maintenant le service logstash.

# systemctl démarre logstash.service

Les journaux du serveur Logstash sont stockés dans le fichier suivant, cela nous aidera à résoudre les problèmes.

# cat /var/log/logstash/logstash.log

Ensuite, nous allons configurer un logstash-forwarder pour expédier les journaux au serveur logstash.

Configurer Logstash-forwarder.

Logstash-forwarder est un logiciel client qui envoie les journaux à un serveur logstash, il doit être installé sur tous les serveurs clients. Logstash-forwarder peut être téléchargé depuis le site officiel ou vous pouvez utiliser la commande suivante pour le télécharger dans le terminal et l'installer.

# wget https://download.elasticsearch.org/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm# rpm -Uvh logstash-forwarder-0.4.0-1.x86_64. tr/min

Logstash-forwader utilise un certificat SSL pour valider l'identité du serveur logstash, donc copiez le fichier logstash-forwarder.crt que nous avons créé précédemment du serveur logstash au client. Ouvrez le fichier de configuration.

# vi /etc/logstash-forwarder.conf

Dans la section "réseau", mentionnez le serveur logstash avec le numéro de port et le chemin d'accès au certificat logstash-forwarder que vous avez copié à partir du serveur logstash. Cette section définit le logstash-forwarder pour envoyer un journal au serveur logstash "itzgeek" sur le port 5050 et le client valide l'identité du serveur à l'aide d'un certificat SSL.

Remarque :Remplacez "itzgeek" par l'adresse IP au cas où vous utilisez un SAN IP.

"servers":[ "itzgeek:5050" ],"ssl ca":"/etc/pki/tls/certs/logstash-forwarder.crt","timeout":15

Dans la section "fichiers", configure ce que sont tous les fichiers à expédier. Dans cet article, nous allons configurer un logstash-forwarder pour envoyer un logs (/var/log/messages) au serveur logstash avec "syslog" comme type.

{"paths":["/var/log/messages"],"fields":{ "type":"syslog" }}

Redémarrez le service.

# systemctl démarre logstash-forwarder.service

Vous pouvez consulter un fichier journal en cas de problème.

# cat /var/log/logstash-forwarder/logstash-forwarder.err

Configurer Kibana 4 :

Kidbana fournit une visualisation des journaux, téléchargez-le sur le site officiel. Utilisez la commande suivante pour le télécharger dans le terminal.

wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.2-linux-x64.tar.gz

Extrayez-le et déplacez-le vers /opt/

tar -zxvf kibana-4.0.2-linux-x64.tar.gzmv kibana-4.0.2-linux-x64 /opt/kibana4

Activer le fichier PID pour Kibana, ceci est nécessaire pour créer un fichier init systemd.

# sed -i 's/#pid_file/pid_file/g' /opt/kibana4/config/kibana.yml

Kibana peut être démarré en exécutant /opt/kibana4/bin/kibana, pour exécuter kibana en tant que serveur, nous allons créer un fichier systemd.

# vi /etc/systemd/system/kibana4.service[Unit]Description=Kibana 4 Web InterfaceAfter=elasticsearch.serviceAfter=logstash.service[Service]ExecStartPre=rm -rf /var/run/kibana.pidExecStart=/ opt/kibana4/bin/kibana/ExecReload=kill -9 $(cat /var/run/kibana.pid) &&rm -rf /var/run/kibana.pid &&/opt/kibana4/bin/kibana/ExecStop=kill -9 $(cat /var/run/kibana.pid)[Install]WantedBy=multi-user.target

Démarrez et activez kibana pour qu'il démarre automatiquement au démarrage du système.

# systemctl start kibana4.servicesystemctl enable kibana4.service

Accédez à votre portail kibana en visitant le lien suivant

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

Vous obtiendrez une page suivante où vous devrez mapper l'index logstash pour utiliser kibana. Faites défiler vers le bas le nom du champ d'heure et sélectionnez

@horodatage

Une fois que vous avez sélectionné, il vous redirigera vers la page principale de kibana.

Kibana n'est fourni avec aucun type d'accès protégé par mot de passe au portail. Avec Nginx, nous pouvons configurer de manière à ce que l'utilisateur remplisse le mécanisme d'authentification avant d'entrer sur le portail.

C'est tout, vous avez configuré avec succès la pile ELK pour la gestion centralisée des journaux.

Ce tutoriel concerne une ancienne version d'ELK Stack, certains liens sont rompus et peuvent ne pas fonctionner comme prévu. Une nouvelle version est disponible ici :Comment installer ELK Stack sur CentOS 7 / RHEL 7.
Cent OS
  1. Comment installer Graylog2 sur CentOS 7 / RHEL 7

  2. Comment installer Elasticsearch sur CentOS 8 / RHEL 8

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

  4. Comment installer Python 3.5 sur CentOS/RHEL et Fedora

  5. Comment installer Elasticsearch sur CentOS/RHEL 8

Comment installer Elasticsearch, Logstash et Kibana (ELK Stack) sur CentOS 7 / RHEL 7

Comment installer Graylog 3.0 sur CentOS 7 / RHEL 7

Comment installer et utiliser Firewalld dans CentOS / RHEL

Comment installer Samba sur RHEL et CentOS Stream

Comment installer et configurer Jenkins sur CentOS 8 / RHEL 8

Comment installer Wine 5.0 sur CentOS, RHEL et Fedora