La surveillance et l'analyse des journaux de diverses infrastructures en temps réel peuvent être un travail très fastidieux. Lorsque vous traitez de services comme des serveurs Web qui enregistrent constamment les données, le processus peut être très complexe et presque impossible.
En tant que tel, savoir comment utiliser des outils pour surveiller, visualiser et analyser les journaux en temps réel peut vous aider à tracer et à résoudre les problèmes et à surveiller les activités du système suspect.
Ce tutoriel discutera de la façon dont vous pouvez utiliser l'une des meilleures collections de journaux en temps réel et analyse des outils - Elk. En utilisant des wapitis, communément appelés Elasticsearch, Logstash et Kibana, vous pouvez collecter, enregistrer et analyser les données d'un serveur Web Apache en temps réel.
Qu'est-ce que la pile des eaux?
Elk est un acronyme utilisé pour désigner trois principaux outils open source: Elasticsearch, Logstash et Kibana.
Elasticsearch est un outil open source développé pour trouver des correspondances dans une grande collection d'ensembles de données à l'aide d'une sélection de langages et de types de requête. Il s'agit d'un outil léger et rapide capable de gérer facilement des téraoctets de données.
Trottoir Le moteur est un lien entre le côté serveur et Elasticsearch, vous permettant de collecter des données à partir d'une sélection de sources à Elasticsearch. Il propose des API puissantes qui sont intégrables aux applications développées dans divers langages de programmation avec facilité.
Kibana est la dernière pièce de la pile de wapitis. Il s'agit d'un outil de visualisation des données qui vous permet d'analyser les données visuellement et de générer des rapports perspicaces. Il propose également des graphiques et des animations qui peuvent vous aider à interagir avec vos données.
La pile des wapitis est très puissante et peut faire des choses d'analyse de données incroyables.
Bien que les différents concepts dont nous discuterons dans ce tutoriel vous donnera une bonne compréhension de la pile des wapitis, considérez la documentation pour plus d'informations.
Elasticsearch: https: // linkfy.à / elasticsearch-reférence
Trottoir: https: // linkfy.à / logstashreference
Kibana: https: // linkfy.à / kibanaguide
Comment installer Apache?
Avant de commencer à installer Apache et toutes les dépendances, il est bon de noter quelques choses.
Nous avons testé ce tutoriel sur Debian 10.6, mais cela fonctionnera également avec d'autres distributions Linux.
Selon la configuration de votre système, vous avez besoin d'autorisations sudo ou root.
La compatibilité et la convivialité de la pile des élans peuvent varier en fonction des versions.
La première étape consiste à vous assurer que votre système est entièrement mis à jour:
Mise à jour Sudo apt-get
SUDO APT-GET ANGRADE
La commande suivante consiste à installer le serveur Web apache2. Si vous souhaitez un minimal Apache installé, supprimez la documentation et les utilitaires de la commande ci-dessous.
sudo apt-get install apache2 apache2-utils apache2-doc -y
service sudo apache2 start
À ce jour, vous devriez avoir un serveur Apache exécuté sur votre système.
Comment installer Elasticsearch, Logstash et Kibana?
Nous devons maintenant installer la pile des wapitistes. Nous installerons chaque outil individuellement.
Elasticsearch
Commençons par installer elasticsearch. Nous allons utiliser APT pour l'installer, mais vous pouvez obtenir une version stable de la page de téléchargement officielle ici:
https: // www.élastique.co / téléchargements / elasticsearch
Elasticsearch exige que Java fonctionne. Heureusement, la dernière version est livrée avec un package OpenJDK, en supprimant les tracas de l'installer manuellement. Si vous devez effectuer une installation manuelle, reportez-vous à la ressource suivante:
https: // www.élastique.co / guide / en / elasticsearch / référence / courant / configuration.HTML # JVM-Version
Dans l'étape suivante, nous devons télécharger et installer la clé de signature élastique élastique officielle à l'aide de la commande:
wget -qo - https: // artefacts.élastique.Co / gpg-key-elasticsearch | sudo apt-key ajouter -
Avant de continuer, vous pouvez avoir besoin d'un package apt-transport-HTTPS (requis pour les colis servis sur HTTPS) avant de procéder à l'installation.
sudo apt-get install apt-transport-https
Maintenant, ajoutez les informations sur le repo APT aux sources.liste.d fichier.
Echo «Deb https: // artefacts.élastique.CO / Packages / 7.x / apt stable Main »| TEE SUDO / ETC / APT / SOURCES.liste.d / élastique-7.X.liste
Puis mettez à jour la liste des packages sur votre système.
Mise à jour Sudo apt-get
Installez Elasticsearch en utilisant la commande ci-dessous:
sudo apt-get install elasticsearch
Après avoir installé ElasticSearch, démarrer et activer un démarrage sur le démarrage avec les commandes SystemCTL:
Sudo Systemctl Daemon-Reload
sudo systemctl activer elasticsearch.service
sudo systemctl démarrer elasticsearch
Le service peut prendre un certain temps pour commencer. Attendez quelques minutes et confirmez que le service est opérationnel avec la commande:
Sudo Systemctl Status Elasticsearch.service
En utilisant Curl, testez si l'API Elasticsearch est disponible, comme indiqué dans la sortie JSON ci-dessous:
curl -x obtenir "localhost: 9200 /?joli"
"Nom": "Debian",
"cluster_name": "elasticsearch",
"cluster_uuid": "vzhcutuqssko1ryhqmdwsg",
"version" :
"Numéro": "7.dix.1",
"build_flavor": "par défaut",
"build_type": "Deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": faux,
"Lucene_version": "8.7.0 ",
"minimum_wire_compatibilité_version": "6.8.0 ",
"minimum_index_compatibilité_version": "6.0.0-bêta1 "
,
«Slogan»: «Vous savez, pour la recherche»
Comment installer Logstash?
Installez le package Logstash à l'aide de la commande:
sudo apt-get install logstash
Comment installer Kibana?
Entrez la commande ci-dessous pour installer Kibana:
sudo apt-get install kibana
Comment configurer Elasticsearch, Logstash et Kibana?
Voici comment configurer la pile des wapitis:
Comment configurer Elasticsearch?
Dans Elasticsearch, les données sont commandées dans les indices. Chacun de ces index a un ou plusieurs fragment. Un éclat est un moteur de recherche autonome utilisé pour gérer et gérer les index et les requêtes pour un sous-ensemble dans un cluster dans Elasticsearch. Un fragment fonctionne comme une instance d'un index lucene.
L'installation par défaut d'Elasticsearch crée cinq éclats et une réplique pour chaque index. C'est un bon mécanisme en production. Cependant, dans ce tutoriel, nous travaillerons avec un éclat et pas de répliques.
Commencez par créer un modèle d'index au format JSON. Dans le fichier, nous définirons le nombre d'éclats sur une et zéro répliques pour les noms d'index correspondants (fins de développement).
Dans Elasticsearch, un modèle d'index fait référence à la façon dont vous demandez à Elasticsearch de configurer l'index pendant le processus de création.
À l'intérieur du fichier de modèle JSON (index_template.JSON), entrez les instructions suivantes:
"modèle":"*",
"paramètres":
"indice":
"numéro_of_shards": 1,
"numéro_of_replicas": 0
À l'aide de Curl, appliquez la configuration JSON au modèle, qui sera appliqué à tous les indices créés.
curl -x put http: // localhost: 9200 / _template / defaults -h 'contenu-type: application / json' -d @index_template.json
"reconnue": true
Une fois appliqué, Elasticsearch répondra avec une déclaration reconnue: vraie.
Comment configurer Logstash?
Pour que Logstash puisse rassembler les journaux d'Apache, nous devons le configurer pour regarder les modifications des journaux en collectant, en traitement, puis en enregistrant les journaux à Elasticsearch. Pour que cela se produise, vous devez configurer le chemin de journal Collect dans Logstash.
Commencez par créer une configuration de logstash dans le fichier / etc / logstash / confr.d / apache.confli
saisir
déposer
path => '/ var / www / * / logs / accès.enregistrer'
type => "apache"
filtre
Grok
match => "Message" => "% combinésapachelog"
sortir
Elasticsearch
Assurez-vous maintenant d'activer et de démarrer le service Logstash.
Sudo SystemCTL Activer Logstash.service
sudo systemctl start Logstash.service
Comment activer et configurer le kibana?
Pour activer le kibana, modifier le principal .Fichier de configuration YML situé dans / etc / kibana / kibana.YML. Localisez les entrées suivantes et les décalmentez-les. Une fois terminé, utilisez SystemCTL pour démarrer le service Kibana.
serveur.Port: 5601
serveur.Hôte: "LocalHost"
sudo systemctl activer kibana.Service && sudo systemctl start kibana.service
Kibana crée des modèles d'index basés sur les données traitées. Par conséquent, vous devez collecter des journaux à l'aide de Logstash et les stocker dans Elasticsearch, que Kibana peut utiliser. Utilisez Curl pour générer des journaux à partir d'Apache.
Une fois que vous avez des journaux d'Apache, lancez Kibana dans votre navigateur à l'aide de l'adresse http: // localhost: 5601, qui lancera la page d'index Kibana.
Dans l'ensemble, vous devez configurer le modèle d'index utilisé par Kibana pour rechercher des journaux et générer des rapports. Par défaut, Kibana utilise le modèle d'index Logstash *, qui correspond à tous les indices par défaut générés par Logstash.
Si vous n'avez aucune configuration, cliquez sur Créer pour commencer à afficher les journaux.
Comment afficher les journaux kibana?
Alors que vous continuez à effectuer des demandes Apache, Logstash collectera les journaux et les ajoutera à Elasticsearch. Vous pouvez afficher ces journaux en kibana en cliquant sur l'option Découvrir dans le menu de gauche.
L'onglet Discover vous permet d'afficher les journaux car le serveur les génère. Pour afficher les détails d'un journal, cliquez simplement sur le menu déroulant.
Lire et comprendre les données des journaux Apache.
Comment rechercher des journaux?
Dans l'interface Kibana, vous trouverez une barre de recherche qui vous permet de rechercher des données à l'aide de chaînes de requête.
Exemple: statut: actif
En savoir plus sur les chaînes de requête Elk ici:
https: // www.élastique.co / guide / en / elasticsearch / référence / 5.5 / query-dsl-query-string-query.html # quey-string-syntax
Puisque nous avons affaire aux journaux Apache, une correspondance possible est un code d'état. Par conséquent, recherche:
Réponse: 200
Ce code recherchera les journaux avec le code d'état de 200 (OK) et l'affichera à Kibana.
Comment visualiser les journaux?
Vous pouvez créer des tableaux de bord visuels en kibana en sélectionnant l'onglet Visualiser. Sélectionnez le type de tableau de bord pour créer et sélectionner votre index de recherche. Vous pouvez utiliser la valeur par défaut à des fins de test.
Conclusion
Dans ce guide, nous avons discuté d'un aperçu de la façon d'utiliser la pile des wapitis pour gérer les journaux. Cependant, il y a plus à ces technologies que cet article peut couvrir. Nous vous recommandons d'explorer par vous-même.