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

Comment installer la pile ELK sur CentOS 7 / RHEL 7

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.


Cent OS
  1. Comment installer ownCloud sur CentOS 7

  2. Comment installer Drupal 8 sur CentOS 7

  3. Comment installer OpenStack à nœud unique sur CentOS 7

  4. Comment installer iRedMail (serveur de messagerie) sur CentOS 7 / RHEL 7

  5. Installez l'hyperviseur KVM sur CentOS 7.x et RHEL 7.x

Comment installer Prometheus sur CentOS 8 / RHEL 8

Comment installer Ansible AWX sur CentOS 7

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

Comment installer la pile ELK sur RHEL 8

Comment installer la pile ELK sur CentOS 7

Comment installer la pile ELK sur CentOS 8