Surveillance des fichiers journaux à l'aide de Prometheus

Surveillance des fichiers journaux à l'aide de Prometheus
Vous pouvez utiliser l'exportateur tiers Prometheus Grok_exporter Pour analyser les fichiers journaux et exporter des mesures à Prometheus.

Grok_exporter Utilise des expressions régulières pour analyser différentes données des fichiers journaux. Les fichiers journaux correspondent à la ligne par ligne à l'aide d'une expression régulière, et les données correspondantes sont stockées dans différentes variables. Ensuite, les données de ces variables sont exportées via Grok_exporter.

Une fois que vous avez ajouté le Grok_exporter serveur Prométhée comme cible, Prométhée peut surveiller les fichiers journaux souhaités via Grok_exporter.

Dans cet article, je vais vous montrer comment installer Grok_Exporter sur Linux (Ubuntu 20.04 LTS Dans mon cas), générez des fichiers journaux factice, configurez GROK_EXPORTER pour surveiller le fichier journal factice et surveiller le fichier journal factice à l'aide de Prometheus. Alors, commençons.

Table des matières:

  1. Des choses dont vous aurez besoin
  2. Téléchargement et installation de Grok_Exporter
  3. Génération d'un fichier journal factice avec Fakedata
  4. Configuration de Grok_exporter
  5. Ajout de Grok_exporter à Prometheus
  6. Gratter les mesures de Grok_exporter avec Prometheus
  7. Où aller ensuite?
  8. Conclusion
  9. Les références

Des choses dont vous aurez besoin:

Vous devez faire installer Prometheus sur votre ordinateur pour pouvoir surveiller les fichiers journaux avec Prometheus.

Si vous avez besoin d'aide sur l'installation de Prometheus sur votre ordinateur, lisez l'article comment installer Prometheus sur Ubuntu 20.04 LTS.

Téléchargement et installation de Grok_Exporter:

Dans cette section, je vais vous montrer comment télécharger et installer Grok_exporter sur votre ordinateur.

Tout d'abord, accédez à la ~ / Téléchargements Répertoire comme suit:

$ cd ~ / téléchargements

Téléchargez la dernière version du Grok_exporter Archive avec la commande suivante:

$ wget https: // github.com / fstab / grok_exporter / releases / download / v1.0.0.Rc5 / grok_exporter-1.0.0.Rc5.Linux-AMD64.zipper

Grok_exporter Archive est en cours de téléchargement. Cela peut prendre un certain temps pour terminer.

À ce stade, le Grok_exporter Les archives doivent être téléchargées.

Une fois la Grok_exporter Archive est téléchargé, vous devriez trouver un nouveau fichier Grok_Exporter-1.0.0.Rc5.Linux-AMD64.zipper dans le ~ / Téléchargements Répertoire comme marqué dans la capture d'écran ci-dessous.

$ ls -lh

Extraire l'archive GROK_EXPORTER Grok_Exporter-1.0.0.Rc5.Linux-AMD64.zipper avec la commande suivante:

$ unzip grok_exporter-1.0.0.Rc5.Linux-AMD64.zipper

L'archive Grok_Exporter doit être extraite.

Un nouveau répertoire Grok_Exporter-1.0.0.Rc5.Linux-AMD64 / devrait être créé dans le ~ / Téléchargements annuaire.

$ ls -lh

Maintenant, renommez le Grok_Exporter-1.0.0.Rc5.Linux-AMD64 / répertoire de Grok-Exporter / et le déplacer dans le /opter Répertoire comme suit:

$ sudo mv -v grok_exporter-1.0.0.Rc5.Linux-AMD64 / Opt / Grok-Exporter

Maintenant, créez un fichier de service systemd grok.service dans le / Opt / Grok-Exporter Répertoire comme suit:

$ sudo nano / opt / grok-exporteur / grok-exporteur.service

Tapez les lignes suivantes dans le grok.service déposer.

[Unité]
Description = Server Prometheus Grok_Exporter
[Service]
Redémarrer = toujours
WorkingDirectory = / Opt / Grok-Exporter
Execstart = / opt / grok-exporter / grok_exporter --config = / opt / grok-exporter / config.YML
Execreload = / bin / kill -Hup $ mainpid
TimeoutStopSec = 20s
Sendsigkill = non
[Installer]
Recherché = multi-utilisateurs.cible

Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le grok.service déposer.

Pour installer le grok.service Fichier de service SystemD sur votre ordinateur, créez un lien symbolique du / opt / grok-exporteur / grok-exporter.service fichier dans le / etc / systemd / système Répertoire comme suit:

$ sudo ln -s / opt / grok-exporter / grok-exporteur.service / etc / systemd / system / grok-exporteur.service

Copier le configurer.YML fichier à partir du / Opt / Grok-Exporter / Exemple répertoire au / Opt / Grok-Exporter Répertoire comme suit:

$ sudo cp -v / opt / grok-exporter / exemple / config.yml / opt / grok-exporteur /

NOTE: Le configurer.YML Le fichier est utilisé pour configurer Grok_exporter. L'exemple (par défaut) configurer.YML Le fichier est bon pour tester si Grok_exporter travaille. Je vais vous montrer comment configurer Grok_exporter Dans une section ultérieure de cet article.

Pour que les modifications SystemD prennent effet, exécutez la commande suivante:

$ sudo Systemctl Daemon-Reload

Maintenant, commencez le grok Service SystemD avec la commande suivante:

$ sudo systemctl start grok-exporter.service

Le grok Le service SystemD devrait être actif /, Comme vous pouvez le voir dans la capture d'écran ci-dessous. Ça veut dire Grok_exporter est très bien.

$ sudo systemctl status grok-exporteur.service

Génération d'un fichier journal factice avec Fakedata:

Pour générer de faux fichiers journaux, j'utiliserai Lucapette / Fakedata dans cet article. Il existe de nombreux autres outils que vous pouvez utiliser pour générer de faux fichiers journaux. Vous pouvez utiliser l'un d'eux si vous le souhaitez.

Tout d'abord, accédez à la ~ / Téléchargements Répertoire comme suit:

$ cd ~ / téléchargements

Télécharger fakedata, Exécutez la commande suivante:

$ wget https: // github.com / lucapette / fakedata / releases / download / v1.1.2 / Fakedata_1.1.2_linux_amd64.le goudron.gz

Les archives Fakedata doivent être téléchargées.

Une fois l'archive Fakedata téléchargée, vous devriez voir un nouveau Fakedata_1.1.2_linux_amd64.le goudron.gz dans le ~ / Téléchargements annuaire.

$ ls -lh

Extraire les archives Fakedata Fakedata_1.1.2_linux_amd64.le goudron.gz avec la commande suivante:

$ TAR XVZF Fakedata_1.1.2_linux_amd64.le goudron.gz

Vous devriez trouver un nouvel exécutable fakedata dans le ~ / Téléchargements Répertoire comme marqué dans la capture d'écran ci-dessous.

$ ls -lh

Bouge le fakedata binaire / usr / local / bac Répertoire comme suit:

$ sudo mv -v fakedata / usr / local / bin /

Maintenant, vous devriez pouvoir accéder fakedata de la ligne de commande.

$ Fakedata - Version

Créer un nouveau script shell bonjour-http dans le / usr / local / bac Répertoire comme suit:

$ sudo nano / usr / local / bin / hello-http

Tapez les lignes de codes suivantes dans le bonjour-http scénario.

#!/ bac / bash
Logfile = / tmp / hello-http.enregistrer
Bien que vrai
faire
nom d'utilisateur fakedata http.Méthode enum: /, / connexion, / déconnexion, / messages ipv4 --limit 1 >> $ logfile
sommeil 1
fait
sortie 0

Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour enregistrer le script Hello-Http.

Ajouter une autorisation d'exécution au script shell / usr / local / bin / hello-http comme suit:

$ sudo chmod + x / usr / local / bin / hello-http

Pour tester le bonjour-http script, exécutez-le comme suit:

$ hello-http

Un fichier journal / tmp / hello-http.enregistrer devrait être généré. Une nouvelle entrée doit être ajoutée au fichier journal à chaque seconde.

$ tail -f / tmp / hello-http.enregistrer

Chaque ligne du / tmp / hello-http.enregistrer Le fichier doit être dans le format suivant,

Configuration de Grok_Exporter:

Dans cette section, je vais vous montrer comment configurer Grok_exporter Pour surveiller le fichier journal généré / tmp / hello-http.enregistrer.

Ouvrir le Grok_exporter fichier de configuration / opt / grok-exporteur / config.YML avec l'éditeur de texte Nano comme suit:

$ sudo nano / opt / grok-exporter / config.YML

Le fichier de configuration par défaut doit ressembler à ce qui suit.

Dans le saisir Section, vous spécifiez le chemin du fichier journal que vous souhaitez surveiller.

Dans ce cas, je souhaite surveiller le fichier journal / tmp / hello-http.enregistrer.

lis tout devrait être vrai Si vous souhaitez surveiller l'intégralité du fichier journal et des lignes nouvellement ajoutées à partir du fichier journal.

lis tout devrait être FAUX Si vous souhaitez surveiller uniquement les lignes nouvellement ajoutées du fichier journal.

Pour extraire les données du fichier journal / tmp / hello-http.enregistrer, modifier la section de métriques du configurer.YML Fichier comme suit:

Ici, le type métrique est compteur. Grok_Exporter prend également en charge d'autres types de métriques Prometheus. Si vous souhaitez utiliser un type de métrique Prometheus différent, consultez la documentation officielle de Grok_Exporter. Les liens sont donnés ci-dessous.

Grok_Exporter - Type de contre-métrique

Grok_Exporter - Type métrique de jauge

Grok_Exporter - Type métrique de l'histogramme

Grok_Exporter - Type de métrique résumé

Le nom de la métrique sera hello_http_total.

Le aider la propriété est une brève description de ce que fait la métrique.

Le correspondre la propriété est utilisée pour faire correspondre différentes données de chaque ligne de fichier journal et les stocker dans leurs variables respectives.

La première colonne du / tmp / hello-http.enregistrer le fichier est le . Le ; est du mot de modèle de modèle, et les données extraites avec ce type seront stockées dans la variable utilisateur.

De la même manière, la deuxième colonne est et est également du type de modèle MOT, et les données extraites seront stockées dans le http_method variable.

La troisième colonne du fichier journal est le chemin d'accès à l'URL. C'est du type de motif Uripathparam, et il sera stocké dans le http_path variable.

La quatrième colonne du fichier journal est l'adresse IP. C'est du type de motif IP, et il sera stocké dans la variable ip_addr.

Il existe de nombreux autres types de modèles que vous pouvez utiliser pour extraire les données du fichier journal. Vous pouvez trouver tous les types de modèles pris en charge dans le / opt / grok-exporteur / motifs / motifs grok déposer.

$ sudo chat / opt / grok-exporteur / motifs / sabots grok

Une fois les données extraites et stockées dans différentes variables, vous pouvez choisir les variables que vous souhaitez exporter via Grok_exporter.

Les variables que vous souhaitez exporter via Grok_exporter doit être répertorié dans le Étiquettes Section comme marqué dans la capture d'écran ci-dessous.

Vous pouvez également créer de nouveaux types de modèles et faire correspondre les données à partir de chaque ligne de fichiers journaux à l'aide des types de modèles nouvellement créés.

Pour créer de nouveaux types de modèles, vous ajoutez les types de modèles dans le Grok_patterns Section de la configurer.YML déposer.

Par défaut, un type de modèle personnalisé Exim_message est défini, et il peut être utilisé pour faire correspondre les données des fichiers journaux à l'aide de l'expression régulière [a-za-z] *.

Pour correspondre au statut http (i.e., Obtenez, postez, mettez), vous pouvez définir un nouveau type de modèle Http_status [a-z] 3,4 et l'utiliser pour faire correspondre les données du fichier journal comme suit. J'espère que vous avez l'idée.

La version finale du configurer.YML le fichier est donné dans la capture d'écran ci-dessous.

Une fois que vous avez fini de modifier le configurer.YML fichier, appuyez sur + X suivie par Y et pour le sauver.

Pour que les changements prennent effet, redémarrez le grok Service Systemd comme suit:

$ sudo systemctl redémarrer Grok-Exporter.service

Si tout va bien (vous n'avez fait aucune erreur dans le fichier de configuration configurer.YML), le grok Le service SystemD devrait être actif /.

$ sudo systemctl status grok-exporteur.service

Ajout de Grok_exporter à Prometheus:

Maintenant, vous devez ajouter Grok_exporter à prometheus comme cible.

Tout d'abord, vous devez connaître l'adresse IP de l'ordinateur où vous avez installé Grok_exporter.

Dans mon cas, l'adresse IP est 192.168.3.149. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

$ hostname -i

Ensuite, ouvrez le fichier de configuration de Prometheus Prométhée.YML avec l'éditeur de texte Nano comme suit:

$ sudo nano / opt / prometheus / prometheus.YML

Dans le scrape_configs Section de la Prométhée.YML fichier, ajoutez les lignes marquées dans la capture d'écran ci-dessous.

NOTE: N'oubliez pas de remplacer l'adresse IP cible du grok travail avec l'adresse IP de l'ordinateur où vous avez Grok_exporter installée.

Pour que les changements prennent effet, redémarrez le Prométhée Service Systemd comme suit:

$ sudo systemctl redémarrer prometheus.service

NOTE: J'ai installé Prométhée sur le même ordinateur que Grok_exporter. Ainsi, l'adresse IP de l'ordinateur où j'ai installé Prometheus est la même que Grok_exporter. Dans mon cas, c'est 192.168.3.149. Assurez-vous de le remplacer par le vôtre à partir de maintenant.

Maintenant, visitez la page cibles de Prometheus à l'URL http: // 192.168.3.149: 9090 / cibles, et vous devriez voir que le grok la cible est dans le EN HAUT État.

Stracage des mesures de Grok_exporter avec Prometheus:

Avant de commencer à gratter les mesures Grok_exporter Avec Prométhée, démarrez le générateur de fichiers journaux factice bonjour-http avec la commande suivante:

$ hello-http

Maintenant, visitez la page du graphique Prometheus à http: // 192.168.3.149: 9090 / graphiquement et exécuter l'expression hello_http_total.

Comme vous pouvez le voir, les données sont extraites du fichier journal / tmp / hello-http.enregistrer. Chaque ligne du fichier journal est une entrée distincte dans Prometheus.

Vous pouvez également filtrer les données. Par exemple, disons que vous voulez répertorier uniquement les entrées où le http_method. Pour ce faire, exécutez l'expression hello_http_total http_method = ”get”.

Vous pouvez également compter le nombre d'entrées qui correspondent à certains critères. Par exemple, pour compter le nombre de demandes de GET HTTP, vous pouvez exécuter l'expression count (hello_http_total http_method = ”get”.

Comme vous pouvez le voir, le nombre de demandes de GET HTTP est de 30.

Si vous exécutez la même expression après quelques secondes, le nombre de demandes de GET HTTP devrait augmenter.

Où aller ensuite?

Pour en savoir plus sur la configuration Grok_exporter, Lisez la page officielle de la documentation de la configuration de la configuration GROK_EXPORTER.

Conclusion:

Dans cet article, je vous ai montré comment installer Grok_exporter sur Ubuntu 20.04 LTS. Je vous ai également montré comment générer des fichiers journaux factice avec Fakedata et configurer Grok_exporter pour surveiller le fichier journal généré. Je vous ai montré comment ajouter Grok_Exporter comme cible sur Prometheus et surveiller les fichiers journaux avec Prometheus également.

Les références:

  1. FSTAB / GROK_EXPORTER: Exporter les métriques Prométhée à partir de données de journal non structurées arbitraires.
  2. Lucapette / Fakedata: Utilitaire CLI pour la génération de fausses données
  3. Plugin de filtre Grok | Référence de logstash [7.15] | Élastique
  4. Logstash-satterns / grok-motens chez Master · HPCUNENT / LOGSTASH-PATTERNS
  5. https: // github.com / Logstash-Plugins / Logstash-Patterns-Core / Tree / Master / Pattern / ECS-V1
  6. Logstash: collectionner, analyser, transformer les journaux | Élastique
  7. Grok_exporter / config.MD à Master · FSTAB / GROK_EXPORTER