ELK Stack est la plate-forme de gestion de journaux la plus populaire au monde. Il s'agit d'une collection de produits open source, notamment Elasticsearch, Logstash et Kibana. Tous ces 3 produits sont développés, gérés et maintenus par Elastic.
ELK Stack est une plate-forme puissante et open source qui peut gérer une quantité massive de données enregistrées. Le journal des entrées provient généralement d'une interface Web graphique (GUI).
- Elasticsearch est un moteur de recherche et d'analyse basé sur JSON conçu pour une évolutivité horizontale et une gestion plus facile.
- Logstash est une interface de traitement de données côté serveur qui a la capacité de collecter des données à partir de plusieurs sources simultanément. Il le transforme ensuite, puis envoie les données à votre cachette souhaitée. C'est une application open source.
- Kibana est utilisé pour visualiser vos données et naviguer dans la Suite Elastic. C'est aussi un outil open source.
Installer et configurer ELK Stack sur Ubuntu
Dans ce tutoriel, nous allons utiliser battement de fichier pour envoyer des données de journal à Logstash. Les beats sont des expéditeurs de données légers et pour commencer, nous devrions installer l'agent sur les serveurs.
Étape 1) Installation de Java 8
ElasticSearch prend en charge Java 8 et 9, mais le problème est que Logstash n'est compatible qu'avec Java 8. Java 9 n'est pas encore supporté. Par conséquent, nous allons installer Oracle Java 8.
Lancez le terminal et ajoutez le référentiel Oracle Java 8, suivi d'une mise à jour du système et d'une installation réelle.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get mise à jour
sudo apt installer oracle-java8-set-default
Attention au terminal. Vous devrez accepter les fenêtres du contrat de licence et sélectionner « oui » pour continuer. Une fois l'installation terminée, vous pouvez vérifier la version Java à l'aide des commandes suivantes :
.sudo java -version
sudo echo $JAVA_HOME
Étape 2) Installation et configuration d'Elasticsearch
Commençons avec wget commande pour télécharger Elasticsearch suivie de la clé de signature publique :
sudo wget -qO - https://artefacts.élastique.co/GPG-KEY-elasticsearch | sudo apt-key ajouter -
Deuxièmement, installez le paquet apt-transport-https (les distributions basées sur Debian en ont besoin).
sudo apt-get install apt-transport-https
Ajoutez le référentiel :
echo "deb https://artefacts.élastique.co/forfaits/6.x/apt stable main" | sudo tee -a /etc/apt/sources.liste.d/élastique-6.X.liste
Mettez à jour la liste des dépôts et installez le package :
sudo apt-get mise à jour
sudo apt-get install Elasticsearch
Modifions « elasticsearch.yml" fichier :
sudo vim /etc/elasticsearch/elasticsearch.yml
Décommenter "réseau.hôte" et "http.Port". La configuration suivante doit être ajoutée :
réseau.hôte : hôte local http.port : 9200
Ensuite, enregistrez et fermez le fichier.
Pour vous assurer qu'ElasticSearch fonctionne de manière transparente, activez-le au démarrage et démarrez ElasticSearch.
sudo systemctl activer elasticsearch.un service
sudo systemctl démarrer la recherche élastique.un service
Vérifiez l'installation :
sudo curl -XGET 'localhost:9200/?joli'
Étape 3) Installation de Kibana
Commençons maintenant à installer Kibana et modifions les paramètres de Kibana :
sudo apt-get installer kibana
sudo vim /etc/kibana/kibana.yml
Décommentez les lignes suivantes :
serveur.port : 5601 serveur.hôte : "localhost" elasticsearch.URL : "http://localhost:9200"
Enregistrer et quitter le fichier.
Activez-le au démarrage et démarrez le service Kibana :
sudo systemctl activer kibana.un service
sudo systemctl démarrer kibana.un service
Étape 4) Configuration de Nginx en tant que proxy inverse pour Kibana
Dans les lignes similaires, installons Nginx, configurons-le et démarrons le service. Utilisez les commandes suivantes une par une :
sudo apt-get install nginx apache2-utils
Configurer l'hôte virtuel :
sudo vim /etc/nginx/sites-available/elk
Ajoutez la configuration suivante au fichier :
serveur écouter 80; nom_serveur wapiti.fosslinux.com; auth_basic "Accès restreint" ; auth_basic_user_file /etc/nginx/.elkusersecret; emplacement / proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Mise à niveau $http_upgrade ; proxy_set_header Connexion 'mise à niveau' ; proxy_set_header Hôte $host; proxy_cache_bypass $http_upgrade ;
Créez un fichier d'utilisateur et de mot de passe pour l'authentification du navigateur Web :
sudo htpasswd -c /etc/nginx/.elkussecret elkusr
Entrez le mot de passe et répétez. Vérifiez les configurations Nginx :
sudo nginx -t
Activez Nginx au démarrage du système et redémarrez le service :
sudo systemctl activer nginx.un service
sudo systemctl redémarrer nginx.un service
Étape 5) Installation et configuration de Logstash
Installez Logstash :
sudo apt-get install logstash
Ici, nous allons générer une clé de certificat SSL pour sécuriser le transfert de journal à partir du client de battement de fichiers. Modifier le fichier « hosts » avant de créer le certificat SSL.
sudo vim /etc/hosts
Ajoutez la ligne suivante au fichier. Assurez-vous de remplacer l'IP et le nom du serveur par les vôtres.
172.31.31.158 elk-serveur elk-serveur
Une fois terminé, enregistrez et quittez le fichier.
Maintenant, changez de répertoire en Logstash.
sudo cd /etc/logstash/
Créez un dossier pour SSL :
sudo mkdir ssl
Générer un certificat SSL. Remplacez elk-server par le nom de votre serveur dans la commande ci-dessous.
sudo openssl req -subj '/CN=elk-server/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
Créez les fichiers suivants dans "/etc/logstash/conf.ré".
sudo cd /etc/logstash/conf.ré/
créer un fichier d'entrée filebeat en utilisant vim.
sudo vim filebeat-entrée.conf
Ajoutez-y les lignes suivantes.
input beats port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt" ssl_key => "/etc/logstash/ssl/logstash-forwarder.clé"
Enregistrez et fermez le fichier et créez un nouveau fichier de configuration.
sudo vim syslog-filter.conf
Ajoutez-y le contenu suivant.
filter if [type] == "syslog" grok match => "message" => "%SYSLOGTIMESTAMP:syslog_timestamp %SYSLOGHOST:syslog_hostname %DATA:syslog_program(?:\[%POSINT:syslog_pid\])?: %GREEDYDATA:syslog_message" add_field => [ "received_at", "%@timestamp" ] add_field => [ "received_from", "%host" ] date match => [ "syslog_timestamp" , "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
Enregistrer et quitter le fichier. Créer recherche élastique fichier de sortie.
sudo vim sortie-elasticsearch.conf
Ajoutez-y les lignes suivantes.
output elasticsearch hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%[@metadata][beat]-%+YYYY.MM.dd" document_type => "%[@metadata][type]"
Activons Logstash au démarrage et démarrons le service :
sudo systemctl activer logstash.un service
sudo systemctl démarrer logstash.un service
Étape 6) Installation et configuration de Filebeat sur les serveurs clients
Commencez par éditer le hôtes fichier pour ajouter des entrées d'hôte elk. Assurez-vous de remplacer l'adresse IP et le nom par les vôtres.
sudo vim /etc/hosts
172.31.31.158 elk-serveur
Enregistrer et quitter le fichier.
Téléchargez et installez la clé de signature publique :
sudo wget -qO - https://artefacts.élastique.co/GPG-KEY-elasticsearch | sudo apt-key ajouter -
Installez "apt-transport-https" et ajoutez un dépôt.
sudo apt-get install apt-transport-https
sudo echo "deb https://artefacts.élastique.co/forfaits/6.x/apt stable main" | sudo tee -a /etc/apt/sources.liste.d/élastique-6.X.liste
Mettre à jour le référentiel et installer Filebeat.
sudo apt-get mise à jour
sudo apt-get install filebeat
Modifier les configurations Filebeat.
sudo vim /etc/filebeat/filebeat.yml
Trouvez la ligne suivante et modifiez la valeur en « true ».
activé : vrai
Ici, nous ne modifions pas le chemin du journal et Filebeat transférera tous les journaux dans le dossier « var/log »
chemins : - /var/log/*.Journal
Décommentez les lignes suivantes :
production.logstash : # Les hôtes Logstash hébergent : ["elk-server:5443"] ssl.certificate_authorities : ["/etc/filebeat/logstash-forwarder.crt"]
Commenter Recherche élastique :
#production.Elasticsearch : # Tableau d'hôtes auxquels se connecter. # hôtes : ["localhost:9200"]
Enregistrer et quitter le fichier.
Allez maintenant sur le serveur ELK et obtenez "logstash-forwarder.crt" contenu
sudo cat /etc/logstash/ssl/logstash-forwarder.crt
copiez la sortie, puis accédez au client-serveur Elk.
Créer un fichier de certificat
sudo vim /etc/filebeat/logstash-forwarder.crt
insérer la sortie copiée et enregistrer et quitter.
Activer battement de fichier au démarrage du système Démarrer battement de fichier un service.
sudo systemctl activer filebeat.un service
sudo systemctl démarrer filebeat.un service
Étape 7) Parcourir le tableau de bord Kibana
Lancez votre navigateur Web préféré et entrez le nom de domaine suivi du nom d'utilisateur et du mot de passe.
http://elk.fosslinux.com
Entrez le nom d'utilisateur et le mot de passe créés. Vous devriez voir la page d'accueil de Kibana. Cliquez sur le bouton « Explorer le mien ».
Vous devriez être dirigé vers la page d'accueil de Kibana.
Cliquez sur « Découvrir » sur le côté gauche. Cliquez sur « Créer un modèle d'indexation ».
Ensuite, définissez le modèle d'index "filebeat-*".
Cliquez sur suivant et choisissez @timestamp et cliquez sur « Créer un modèle d'index ».
Le modèle d'index devrait être créé.
Cliquez sur le menu « Découvrir » pour voir les journaux du serveur.
Les journaux seront affichés selon l'horodatage. Cliquez sur n'importe quel horodatage pour le développer et voir le contenu du fichier journal et ses détails.
Si vous êtes arrivé ici, cela signifie que vous avez installé et configuré avec succès la pile ELK avec filebeat. Vous avez des problèmes? N'hésitez pas à nous le faire savoir dans les commentaires ci-dessous.