GNU/Linux >> Tutoriels Linux >  >> Debian

Comment configurer la pile ELK sur Debian 10 / Debian 9

La pile ELK est une plate-forme d'analyse de données complète, composée d'Elasticsearch, Logstash et de l'outil open source Kibana. Il vous aide à stocker et à gérer les journaux de manière centralisée et vous permet d'analyser les problèmes.

Cet article vous aide à installer la pile ELK sur Debian 10 / Debian 9.

Installer la pile ELK

Elasticsearch - Il stocke les journaux entrants de Logstash et offre la possibilité de rechercher les journaux/données en temps réel

Logstash – Traitement (collecte, enrichissement et envoi à Elasticsearch) des journaux entrants envoyés par beats (forwarder).

Kibana – Fournit une visualisation des événements et des journaux.

Beats :installé sur les machines clientes, et il envoie les journaux à Logstash ou Elasticsearch via le protocole beats.

Installer Java

Elasticsearch nécessite OpenJDK ou Oracle JDK disponible sur votre machine. Ici, pour cette démo, j'utilise OpenJDK.

sudo apt update

sudo apt install -y openjdk-11-jre

Vérifiez la version Java.

java -version

Sortie :

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)

Si vous souhaitez utiliser OracleJDK, lisez :

LIRE :Comment installer Oracle Java sur Debian 10 / Debian 9

Ajouter un référentiel élastique

Installez le support wget et HTTPS pour apt.

sudo apt install -y wget apt-transport-https curl

Les packages ELK peuvent être obtenus à partir du référentiel Elastic.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Installer et configurer Elasticsearch

Pour commencer, nous allons maintenant installer le serveur Elasticsearch, un moteur de recherche open source basé sur Lucene. Il fournit un moteur de recherche en texte intégral distribué en temps réel et multi-locataire avec une interface Web HTTP et des documents JSON sans schéma.

Elasticsearch stocke les données envoyées par Logstash et les affiche via Kibana à la demande des utilisateurs.

Installez Elasticsearch à l'aide de la commande suivante.

sudo apt update

sudo apt install -y elasticsearch-oss

Démarrez le service Elasticsearch.

sudo systemctl start elasticsearch

sudo systemctl enable elasticsearch

Attendez quelques minutes et exécutez la commande suivante pour voir l'état de l'interface Elasticsearch REST.

curl -X GET http://localhost:9200

Sortie :

{
  "name" : "debian10",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6y4OcEnYS3qkN_AetQAYMQ",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

La sortie ci-dessus confirme qu'Elasticsearch fonctionne correctement.

Installer et configurer Logstash

Logstash est un moteur open source de collecte de données et d'analyse de journaux. Il collecte les journaux, les analyse et les stocke sur Elasticsearch pour la recherche. Plus de 160 plugins sont disponibles pour Logstash, qui offre la possibilité de traiter différents types d'événements sans travail supplémentaire.

sudo apt install -y logstash-oss

Le fichier de configuration Logstash se compose de trois sections, à savoir l'entrée, le filtre et la sortie. Vous pouvez mettre les trois sections dans un seul fichier, ou un fichier séparé pour chaque section, se terminant par .conf.

Ici, nous utilisons un seul fichier pour placer les sections d'entrée, de filtre et de sortie. Créez un fichier de configuration sous le répertoire /etc/logstash/conf.d/.

sudo nano /etc/logstash/conf.d/beats-syslog.conf

Dans la section d'entrée, nous allons configurer Logstash pour qu'il écoute sur le port 5044 les journaux entrants, à partir des beats (transmetteur) qui se trouvent sur les machines clientes.

input {
 beats {
   port => 5044
   ssl => false
  }
}

Dans la section des filtres, nous utiliserons Grok pour analyser les journaux avant de les envoyer à Elasticsearch, pour les stocker.

Le filtre grok suivant recherchera les journaux étiquetés 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 dd HH:mm:ss" ]
}
  }

}

Pour plus de modèles de filtres GROK, jetez un œil ici.

Dans la section de sortie, nous définirons où les journaux doivent être stockés, évidemment Elasticsearch en cas de pile ELK.

output {
 elasticsearch {
  hosts => localhost
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
       }
stdout {
    codec => rubydebug
       }
}

Maintenant, démarrez et activez le service Logstash.

sudo systemctl start logstash

sudo systemctl enable logstash

Si vous rencontrez un problème, consultez le fichier Logstash.

sudo cat /var/log/logstash/logstash-plain.log

Installer et configurer Kibana

Kibana fournit une visualisation des données stockées sur Elasticsearch. Installez Kibana à l'aide de la commande suivante.

sudo apt install -y kibana-oss

Par défaut, Kibana écoute sur l'hôte local, ce qui signifie que vous ne pouvez pas accéder à l'interface Web de Kibana depuis une autre machine. Modifiez le fichier /etc/kibana/kibana.yml.

sudo nano /etc/kibana/kibana.yml

Modifiez la ligne ci-dessous avec l'adresse IP de votre serveur.

server.host: "192.168.0.10"

Démarrez et activez Kibana au démarrage de la machine.

sudo systemctl start kibana

sudo systemctl enable kibana

Installer Filebeat

Filebeat est un logiciel qui s'exécute sur la machine cliente. Il envoie les journaux au serveur Logstash pour l'analyse ou à Elasticsearch pour le stockage dépend de la configuration.

Installez le support wget et HTTPS pour apt.

sudo apt install -y wget apt-transport-https curl

Les packages ELK peuvent être obtenus à partir du référentiel Elastic.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Installez Filebeat à l'aide de la commande suivante.

sudo apt update

sudo apt install -y filebeat-oss

Le fichier de configuration principal de filebeat est /etc/filebeat/filebeat.yml.

sudo nano /etc/filebeat/filebeat.yml

Nous devons modifier ce fichier pour envoyer les journaux au serveur Logstash.

Les configurations ci-dessous envoient syslog (/var/log/syslog) au serveur Logstash. Pour cette démo, j'ai commenté /var/log/*.log pour éviter d'envoyer tous les journaux au serveur Logstash.

.  .  .

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/syslog
    
.  .  .

Dans la section Outputs, commentez la section output.elasticsearch :car nous n'allons pas stocker les journaux sur Elasticsearch.

Maintenant, allez à la ligne output.logstash :et modifiez les entrées pour envoyer les journaux au Logstash et mentionnez le chemin vers le fichier SSL copié.

Remarque : Remplacez "192.168.0.10" par l'adresse IP du serveur Logstash.

.   .   .

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["192.168.0.10:5044"]

.   .   .

Redémarrez le service Filebeat.

sudo systemctl restart filebeat

Accéder à Kibana

Vous pouvez accéder à l'interface Web de Kibana à l'aide de l'URL suivante.

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

OU

http://votre-nom-de-serveur:5601

Lors de votre première connexion, vous devez mapper l'index filebeat. Cliquez sur Explorer par moi-même pour créer un modèle d'index.

Cliquez sur le Menu (Icône Hamburger)>> Gestion de la pile>>Modèles d'index>> Créer un modèle d'index .

Tapez ce qui suit dans la zone Modèle d'index et cliquez sur l'étape suivante.

filebeat-*

Sélectionnez @timestamp puis cliquez sur Créer un modèle d'index.

@timestamp

Parcourez les champs de l'index et leur type de noyau enregistré par Elasticsearch.

Cliquez sur Découvrir dans la navigation de gauche pour afficher les journaux entrants d'une machine cliente.

Conclusion

C'est tout. J'espère que vous avez appris à installer la pile ELK sur Debian 10 / Debian 9. Veuillez partager vos commentaires dans la section des commentaires.


Debian
  1. Comment installer Elasticsearch sur Debian Linux

  2. Comment installer Elasticsearch sur Debian 9

  3. Comment installer Elasticsearch sur Debian 10

  4. Comment installer ELK sur Ubuntu 20.04

  5. Comment installer la pile ELK sur RHEL 8

Comment installer la pile ELK sur Debian 10

Comment installer Elasticsearch sur Debian 11

Comment installer la pile LAMP sur Debian 11

Comment installer la pile ELK sur CentOS 7

Comment installer la pile ELK sur CentOS 8

Comment installer la pile ELK sur Debian 8