L'analyse des journaux a toujours été une partie importante de l'administration système, mais c'est l'une des tâches les plus fastidieuses et les plus fastidieuses, en particulier lorsqu'il s'agit de plusieurs systèmes. Heureusement, la pile ELK a facilité la tâche, la pile ELK est maintenant utilisée pour l'inspection/l'analyse des journaux et c'est une combinaison des trois produits open source suivants
- ElasticSearch - Il s'agit d'une base de données No-SQL qui indexe et stocke des informations
- Logstash : il s'agit d'un outil de pipeline de journaux qui collecte et analyse les journaux
- Kibana - Il fournit une interface graphique (GUI) et est utilisé pour la visualisation des données et fonctionne au-dessus d'elasticsearch.
La pile ELK reçoit les journaux du client via le protocole Beats, envoyés à l'aide d'un client Beats. Dans ce didacticiel, nous allons créer une pile ELK sur une machine Centos 7 et installerons également le client Beat nommé "File Beat" sur la machine cliente.
- 192.168.0.180 pile elk (CentOS 7)
- 192.168.0.70 client (CentOS 7)
Pré-requis
La machine sur laquelle nous allons installer ELK doit avoir la version 8 de Java installée dessus en tant que . Assurez-vous donc que la version 1.8.0_* de Java open-jdk est installée et en cours d'exécution et, au cas où elle ne serait pas installée, exécutez la commande sous yum pour l'installer
[[email protected] ~]# yum install java-1.8.0-openjdk
[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode) [[email protected] ~]#
Définissez le nom d'hôte et mettez à jour le fichier /etc/hosts
[[email protected] ~]# hostnamectl set-hostname "elk-stack.example.com"
Mettre à jour le fichier /etc/hosts
192.168.0.180 elk-stack.example.com elk-stack
Étapes d'installation de la pile ELK
Elasticsearch
Nous allons commencer par importer les clés GPG pour elasticsearch, cette clé sera également partagée avec logstash &kibana. Pour installer elasticsearch, exécutez
[[email protected] ~]# rpm –import https://packages.elastic.co/GPG-KEY-elasticsearch
[[email protected] ~]#
Nous allons maintenant créer un référentiel pour le référentiel elastic-search,
[[email protected] ~]# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch] name=Elasticsearch repository baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Une fois le référentiel ajouté, installez elasticsearch en utilisant yum,
[[email protected] ~]# yum install elasticsearch -y
Maintenant, nous démarrons le service et allons également le configurer pour qu'il démarre au démarrage
[[email protected] ~]# systemctl daemon-reload [[email protected] ~]# systemctl start elasticsearch [[email protected] ~]# systemctl enable elasticsearch
Autorisez le port TCP 9200 dans le pare-feu du système d'exploitation. Si le pare-feu est en cours d'exécution
[[email protected] ~]# firewall-cmd --permanent --add-port 9200/tcp
Nous allons maintenant tester elasticsearch pour nous assurer qu'il répond aux requêtes
[[email protected] ~]# curl -X GET http://localhost:9200
La sortie de la commande ci-dessus devrait être quelque chose comme ci-dessous :
Logstash
Nous allons maintenant ajouter le référentiel logstash,
[[email protected] ~]# vi /etc/yum.repos.d/logstash.repo [logstash] name=Logstash baseurl=http://packages.elasticsearch.org/logstash/2.2/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1
Maintenant, installez logstash,
[[email protected] ~]# yum install logstash -y
Kibana
Nous allons maintenant créer un dépôt pour kibana,
[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo [kibana-4.5] name=Kibana repository for 4.5.x packages baseurl=http://packages.elastic.co/kibana/4.5/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Maintenant, installez kibana en utilisant yum,
[[email protected] ~]# yum install kibana -y
Après l'installation, démarrez le service et activez-le au démarrage
[[email protected] ~]# systemctl start kibana [[email protected] ~]# systemctl enable kibana
Autoriser le port 5601 dans le pare-feu du système d'exploitation
[[email protected] ~]# firewall-cmd --permanent --add-port 5601/tcp [[email protected] ~]# firewall-cmd --reload
Ensuite, nous accéderons à la page Web de kibana pour nous assurer qu'elle fonctionne. Pour ce faire, ouvrez le navigateur Web et entrez l'URL suivante
http://IP-Address:5601/
L'installation de la pile ELK est maintenant terminée et nous allons effectuer les configurations nécessaires.
Configuration
Certificat SSL pour logstash
Après l'installation de logstash, nous allons maintenant créer un certificat SSL pour sécuriser la communication entre logstash et filebeat (clients). Puisque nous utiliserons l'adresse IP pour nous connecter au serveur, nous allons créer un certificat SSL pour IP SAN.
Avant de créer un certificat SSL, nous allons faire une entrée de notre IP dans openssl.cnf,
[[email protected] ~]# vi /etc/pki/tls/openssl.cnf
et recherchez le paramètre avec "subjectAltName" dans la section [v3_ca] et ajoutez-y l'adresse IP de votre serveur,
subjectAltName = IP: 192.168.0.180
Changez maintenant le répertoire en /etc/ssl et créez un certificat SSL avec une validité de 365 jours,
[[email protected] ~]# cd /etc/ssl/ [[email protected] ssl]# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crt Generating a 2048 bit RSA private key .....+++ ...........+++ writing new private key to 'logstash-forwarder.key' ----- [[email protected] ssl]#
Une fois le certificat prêt, il doit être copié sur tous les clients à l'aide de la commande scp.
Configurer Logstash
Nous allons maintenant créer un fichier de configuration pour logstash sous le dossier '/etc/logstash/conf.d ‘. Ce fichier sera divisé en trois sections, à savoir la section d'entrée, de filtre et de sortie
[[email protected] ~]# vi /etc/logstash/conf.d/logstash.conf # input section input { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash_frwrd.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40" } }
Cette section permet à logstash d'écouter sur le port 5044 les journaux entrants et fournit également les détails du certificat SSL pour une connexion sécurisée.
La section suivante, c'est-à-dire la "section de filtrage", analysera les journaux avant de les envoyer à elasticsearch,
# Filter section filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
La dernière section est la "section de sortie" et définit l'emplacement de stockage des journaux,
# output section output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Maintenant, enregistrez le fichier et quittez. Toutes ces sections peuvent également être divisées en trois fichiers distincts mais nous les avons utilisées en un seul fichier pour faciliter la configuration. Nous allons maintenant démarrer le service logstash et l'activer au démarrage,
[[email protected] ~]# systemctl daemon-reload [[email protected] ~]# systemctl start logstash [[email protected] ~]# systemctl enable logstash
Autorisez le port TCP 5044 dans le pare-feu du système d'exploitation avec la commande suivante afin que Logstash obtienne les journaux des clients
[[email protected] conf.d]# firewall-cmd --permanent --add-port=5044/tcp success [[email protected] conf.d]# firewall-cmd --reload success [[email protected] conf.d]#
Installer Filebeat sur les clients
Filebeat doit être installé sur chaque système pour lequel nous devons analyser les journaux. Commençons par copier le fichier de certificat du serveur elk-stack vers le client
[[email protected] ~]# scp /etc/ssl/logstash_frwrd.crt [email protected]:/etc/ssl
Pour installer filebeat, nous allons d'abord ajouter le référentiel correspondant,
[[email protected] ~]# vi /etc/yum.repos.d/filebeat.repo [beats] name=Elastic Beats Repository baseurl=https://packages.elastic.co/beats/yum/el/$basearch enabled=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch gpgcheck=1
Maintenant, installez filebeat en exécutant sous la commande
[[email protected] ~]# yum install filebeat
Nous allons maintenant apporter des modifications au fichier de configuration pour connecter les clients filebeat à notre pile ELK, mais avant cela, assurez-vous que le certificat que nous avons créé lors de la configuration de logstash est copié sur le client sous le répertoire '/etc/ssl'. Une fois cela fait, nous allons commencer la configuration de filebeat,
[[email protected] ~]# vi /etc/filebeat/filebeat.yml
Nous devons apporter des modifications aux trois sections suivantes,
. . . paths: - /var/log/*.log - /var/log/secure - /var/log/messages . . .
Dans cette section, nous pouvons autoriser les journaux qui doivent être analysés. Je l'ai laissé par défaut, c'est-à-dire tous les journaux, mais vous pouvez le modifier pour n'envoyer qu'un ou deux fichiers journaux. Pour la section suivante, changez le document_type en 'syslog',
. . . document_type: syslog . . .
&dans la dernière section, c'est-à-dire 'sortie', nous définirons l'adresse IP et l'emplacement de notre serveur de pile ELK pour le certificat ssl,
. . . output: logstash: hosts: ["192.168.0.180:5044"] tls: certificate_authorities: ["/etc/ssl/logstash_frwrd.crt"] . . .
Remarque :Désactivez la sortie elasticsearch, commentez l'entrée "hosts :["localhost:9200″]" si elle est activée.
Maintenant, démarrez le service et activez-le au démarrage,
[[email protected] ~]# systemctl restart filebeat [[email protected] ~]# systemctl enable filebeat
Voilà, les configurations côté serveur et côté client sont maintenant terminées. Nous pouvons maintenant nous connecter à l'interface Web de kibana pour rechercher les journaux analysés.
Créer un modèle d'index, modifier logstash-* vers filebeat-*
Cliquez sur Créer
Cliquez sur Découvrir puis recherchez, nous obtiendrons des journaux comme ci-dessous
C'est tout de cet article, veuillez partager vos précieux commentaires et commentaires.