Logstash - Plugins

Logstash propose divers plugins pour les trois étapes de son pipeline (entrée, filtre et sortie). Ces plugins aident l'utilisateur à capturer les journaux de diverses sources telles que les serveurs Web, les bases de données, les protocoles sur le réseau, etc.

Après la capture, Logstash peut analyser et transformer les données en informations significatives selon les besoins de l'utilisateur. Enfin, Logstash peut envoyer ou stocker ces informations significatives vers diverses sources de destination telles que Elasticsearch, AWS Cloudwatch, etc.

Plugins d'entrée

Les plugins d'entrée dans Logstash aident l'utilisateur à extraire et à recevoir des journaux de diverses sources. La syntaxe d'utilisation du plugin d'entrée est la suivante -

Input {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Vous pouvez télécharger le plugin d'entrée en utilisant la commande suivante -

>Logstash-plugin install Logstash-input-<plugin name>

L'utilitaire Logstash-plugin est présent dans le bin folderdu répertoire d'installation de Logstash. Le tableau suivant présente une liste des plugins d'entrée proposés par Logstash.

N ° Sr. Nom et description du plugin
1

beats

Pour obtenir les données ou événements de journalisation à partir du framework Elastic Beats.

2

cloudwatch

Pour extraire des événements de CloudWatch, une offre d'API d'Amazon Web Services.

3

couchdb_changes

Événements provenant de l'URI _chages de couchdb expédiés à l'aide de ce plugin.

4

drupal_dblog

Pour extraire les données de journalisation du chien de garde de drupal avec DBLog activé.

5

Elasticsearch

Pour récupérer les résultats des requêtes effectuées dans le cluster Elasticsearch.

6

eventlog

Pour obtenir les événements du journal des événements Windows.

sept

exec

Pour obtenir la sortie de la commande shell comme entrée dans Logstash.

8

file

Pour obtenir les événements à partir d'un fichier d'entrée. Ceci est utile lorsque le Logstash est installé localement avec la source d'entrée et a accès aux journaux de la source d'entrée.

9

generator

Il est utilisé à des fins de test, ce qui crée des événements aléatoires.

dix

github

Capture les événements à partir du webhook GitHub.

11

graphite

Pour obtenir des données de mesure à partir de l'outil de surveillance du graphite.

12

heartbeat

Il est également utilisé pour les tests et produit des événements semblables à des battements de cœur

13

http

Pour collecter les événements de journal sur deux protocoles réseau, ceux-ci sont http et https.

14

http_poller

Il est utilisé pour décoder la sortie de l'API HTTP en un événement.

15

jdbc

Il convertit les transactions JDBC en un événement dans Logstash.

16

jmx

Pour extraire les métriques des applications Java distantes à l'aide de JMX.

17

log4j

Capturez les événements de l'objet socketAppender de Log4j sur le socket TCP.

18

rss

À la sortie des outils de ligne de commande en tant qu'événement d'entrée dans Logstash.

19

tcp

Capture les événements sur le socket TCP.

20

twitter

Collectez les événements de l'API de streaming Twitter.

21

unix

Collectez les événements sur le socket UNIX.

22

websocket

Capturez les événements via le protocole Websocket.

23

xmpp

Lit les événements via les protocoles Jabber / xmpp.

Paramètres du plugin

Tous les plugins ont leurs paramètres spécifiques, ce qui permet de spécifier les champs importants tels que Port, Path, etc., dans un plugin. Nous discuterons des paramètres de certains des plugins d'entrée.

Fichier

Ce plugin d'entrée est utilisé pour extraire des événements directement à partir de fichiers journaux ou texte présents dans la source d'entrée. Elle fonctionne de la même manière que la commande tail sous UNIX et enregistre le dernier curseur de lecture et ne lit que les nouvelles données ajoutées à partir du fichier d'entrée, mais elle peut être modifiée en utilisant le paramètre star_position. Voici les paramètres de ce plugin d'entrée.

Nom du paramètre Valeur par défaut La description
ajouter le champ {} Ajoutez un nouveau champ à l'événement d'entrée.
close_older 3600 Les fichiers dont la dernière lecture (en secondes) est supérieure à celle spécifiée dans ce plugin sont fermés.
codec "plaine" Il est utilisé pour décoder les données avant d'entrer dans le pipeline Logstash.
délimiteur «\ N» Il est utilisé pour spécifier un nouveau délimiteur de ligne.
Discover_interval 15 Il s'agit de l'intervalle de temps (en secondes) entre la découverte de nouveaux fichiers dans le chemin spécifié.
enable_metric vrai Il est utilisé pour activer ou désactiver le reporting et la collecte de métriques pour le plugin spécifié.
exclure Il est utilisé pour spécifier le nom de fichier ou les modèles, qui doivent être exclus du plugin d'entrée.
Id Pour spécifier une identité unique pour cette instance de plugin.
max_open_files Il spécifie le nombre maximum de fichiers d'entrée par Logstash à tout moment.
chemin Spécifiez le chemin des fichiers et il peut contenir les modèles de nom de fichier.
la position de départ "fin" Vous pouvez passer au «début», si vous le souhaitez; Initialement, Logstash devrait commencer à lire les fichiers depuis le début et pas seulement le nouvel événement du journal.
start_interval 1 Il spécifie l'intervalle de temps en secondes, après lequel Logstash recherche les fichiers modifiés.
Mots clés Pour ajouter des informations supplémentaires, comme Logstash, il ajoute "_grokparsefailure" dans les balises, lorsqu'un événement du journal ne respecte pas le filtre Grok spécifié.
type C'est un champ spécial, que vous pouvez ajouter à un événement d'entrée et il est utile dans les filtres et kibana.

Elasticsearch

Ce plugin particulier est utilisé pour lire les résultats des requêtes de recherche dans un cluster Elasticsearch. Ce qui suit a les paramètres utilisés dans ce plugin -

Nom du paramètre Valeur par défaut La description
ajouter le champ {} Comme dans le plugin de fichier, il est utilisé pour ajouter un champ dans l'événement d'entrée.
ca_file Il est utilisé pour spécifier le chemin du fichier d'autorité de certification SSL.
codec "plaine" Il est utilisé pour décoder les événements d'entrée d'Elasticsearch avant d'entrer dans le pipeline Logstash.
docinfo "faux" Vous pouvez le changer en vrai, si vous souhaitez extraire les informations supplémentaires telles que l'index, le type et l'ID du moteur Elasticsearch.
docinfo_fields ["_index", "_type", "_id"] Vous pouvez supprimer n'importe quel champ que vous ne voulez pas dans votre entrée Logstash.
enable_metric vrai Il est utilisé pour activer ou désactiver le reporting et la collecte de métriques pour cette instance de plugin.
hôtes Il est utilisé pour spécifier les adresses de tous les moteurs elasticsearch, qui seront la source d'entrée de cette instance de Logstash. La syntaxe est hôte: port ou IP: port.
Id Il est utilisé pour donner un numéro d'identité unique à cette instance de plug-in d'entrée spécifique.
indice "logstash- *" Il est utilisé pour spécifier le nom d'index ou un modèle, que Logstash surveillera par Logstash pour l'entrée.
mot de passe À des fins d'authentification.
requete "{\" sort \ ": [\" _ doc \ "]}" Requête pour l'exécution.
ssl faux Activez ou désactivez la couche de socket sécurisée.
Mots clés Pour ajouter des informations supplémentaires dans les événements d'entrée.
type Il est utilisé pour classer les formulaires d'entrée afin qu'il soit facile de rechercher tous les événements d'entrée à des étapes ultérieures.
utilisateur À des fins authentiques.

journal des événements

Ce plugin d'entrée lit les données de l'API win32 des serveurs Windows. Voici les paramètres de ce plugin -

Nom du paramètre Valeur par défaut La description
ajouter le champ {} Identique au plugin de fichier, il est utilisé pour ajouter un champ dans l'événement d'entrée
codec "plaine" Il est utilisé pour décoder les événements d'entrée de Windows; avant d'entrer dans le pipeline Logstash
fichier journal ["Application", "Sécurité", "Système"] Evénements requis dans le fichier journal d'entrée
intervalle 1000 Il est en millisecondes et définit l'intervalle entre deux vérifications consécutives des nouveaux journaux d'événements
Mots clés Pour ajouter des informations supplémentaires dans les événements d'entrée
type Il est utilisé pour classer la forme d'entrée d'un plug-in spécifique dans un type donné, de sorte qu'il sera facile de rechercher tous les événements d'entrée dans les étapes ultérieures

Twitter

Ce plugin d'entrée est utilisé pour collecter le flux de Twitter depuis son API Streaming. Le tableau suivant décrit les paramètres de ce plugin.

Nom du paramètre Valeur par défaut La description
ajouter le champ {} Identique au plugin de fichier, il est utilisé pour ajouter un champ dans l'événement d'entrée
codec "plaine" Il est utilisé pour décoder les événements d'entrée de Windows; avant d'entrer dans le pipeline Logstash
La clé du consommateur Il contient la clé consommateur de l'application Twitter. Pour plus d'informations, visitezhttps://dev.twitter.com/apps/new
consumer_secret Il contient la clé secrète du consommateur de l'application Twitter. Pour plus d'informations, visitezhttps://dev.twitter.com/apps/new
enable_metric vrai Il est utilisé pour activer ou désactiver le reporting et la collecte de métriques pour cette instance de plugin
suit

Il spécifie les identifiants d'utilisateur séparés par des virgules et LogStash vérifie le statut de ces utilisateurs sur Twitter.

Pour plus d'informations, visitez

https://dev.twitter.com

full_tweet faux Vous pouvez le changer en vrai, si vous voulez que Logstash lise le retour d'objet complet de l'API Twitter
id Il est utilisé pour donner un numéro d'identité unique à cette instance de plug-in d'entrée spécifique
ignore_retweets Faux Vous pouvez changer la valeur true pour ignorer les retweets dans le flux Twitter d'entrée
mots clés C'est un tableau de mots-clés, qui doivent être suivis dans le flux d'entrée des twitters
Langue Il définit la langue des tweets nécessaires à LogStash à partir du flux Twitter d'entrée. Ceci est un tableau d'identifiant, qui définit une langue spécifique dans Twitter
Emplacements Pour filtrer les tweets du flux d'entrée en fonction de l'emplacement spécifié. Ceci est un tableau, qui contient la longitude et la latitude de l'emplacement
oauth_token Il s'agit d'un fichier obligatoire, qui contient un jeton utilisateur oauth. Pour plus d'informations, veuillez visiter le lien suivanthttps://dev.twitter.com/apps
oauth_token_secret Il s'agit d'un fichier obligatoire, qui contient un jeton secret utilisateur oauth. Pour plus d'informations, veuillez visiter le lien suivanthttps://dev.twitter.com/apps
Mots clés Pour ajouter des informations supplémentaires dans les événements d'entrée
type Il est utilisé pour classer la forme d'entrée d'un plug-in spécifique dans un type donné, de sorte qu'il sera facile de rechercher tous les événements d'entrée dans les étapes ultérieures

TCP

TCP est utilisé pour obtenir les événements sur le socket TCP; il peut lire à partir des connexions utilisateur ou du serveur, ce qui est spécifié dans le paramètre de mode. Le tableau suivant décrit les paramètres de ce plugin -

Nom du paramètre Valeur par défaut La description
ajouter le champ {} Identique au plugin de fichier, il est utilisé pour ajouter un champ dans l'événement d'entrée
codec "plaine" Il est utilisé pour décoder les événements d'entrée de Windows; avant d'entrer dans le pipeline Logstash
enable_metric vrai Il est utilisé pour activer ou désactiver le reporting et la collecte de métriques pour cette instance de plugin
hôte "0.0.0.0" L'adresse du système d'exploitation du serveur dont dépend le client
id Il contient la clé consommateur de l'application Twitter
mode "serveur" Il est utilisé pour spécifier que la source d'entrée est le serveur ou le client.
Port Il définit le numéro de port
ssl_cert Il est utilisé pour spécifier le chemin du certificat SSL
ssl_enable faux Activer ou désactiver SSL
ssl_key Pour spécifier le chemin du fichier de clé SSL
Mots clés Pour ajouter des informations supplémentaires dans les événements d'entrée
type Il est utilisé pour classer la forme d'entrée d'un plug-in spécifique dans un type donné, de sorte qu'il sera facile de rechercher tous les événements d'entrée dans les étapes ultérieures

Logstash - Plugins de sortie

Logstash prend en charge diverses sources de sortie et dans différentes technologies telles que la base de données, le fichier, le courrier électronique, la sortie standard, etc.

La syntaxe pour utiliser le plugin de sortie est la suivante -

output {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Vous pouvez télécharger le plugin de sortie en utilisant la commande suivante -

>logstash-plugin install logstash-output-<plugin name>

le Logstash-plugin utilityest présent dans le dossier bin du répertoire d'installation de Logstash. Le tableau suivant décrit les plugins de sortie proposés par Logstash.

N ° Sr. Nom et description du plugin
1

CloudWatch

Ce plugin est utilisé pour envoyer des données métriques agrégées à CloudWatch des services Web Amazon.

2

csv

Il est utilisé pour écrire les événements de sortie séparés par des virgules.

3

Elasticsearch

Il est utilisé pour stocker les journaux de sortie dans l'index Elasticsearch.

4

email

Il est utilisé pour envoyer un e-mail de notification, lorsque la sortie est générée. L'utilisateur peut ajouter des informations sur la sortie dans l'e-mail.

5

exec

Il est utilisé pour exécuter une commande, qui correspond à l'événement de sortie.

6

ganglia

Il tord les métriques à gmond de Gangila.

sept

gelf

Il est utilisé pour produire une sortie pour Graylog2 au format GELF.

8

google_bigquery

Il envoie les événements à Google BigQuery.

9

google_cloud_storage

Il stocke les événements de sortie sur Google Cloud Storage.

dix

graphite

Il est utilisé pour stocker les événements de sortie dans Graphite.

11

graphtastic

Il est utilisé pour écrire les métriques de sortie sous Windows.

12

hipchat

Il est utilisé pour stocker les événements du journal de sortie dans HipChat.

13

http

Il est utilisé pour envoyer les événements du journal de sortie aux points de terminaison http ou https.

14

influxdb

Il est utilisé pour stocker l'événement de sortie dans InfluxDB.

15

irc

Il est utilisé pour écrire les événements de sortie dans irc.

16

mongodb

Il stocke les données de sortie dans MongoDB.

17

nagios

Il est utilisé pour notifier à Nagios les résultats de la vérification passive.

18

nagios_nsca

Il est utilisé pour notifier à Nagios les résultats de la vérification passive via le protocole NSCA.

19

opentsdb

Il stocke les événements de sortie Logstash dans OpenTSDB.

20

pipe

Il diffuse les événements de sortie vers l'entrée standard d'un autre programme.

21

rackspace

Il est utilisé pour envoyer les événements du journal de sortie au service Queue de Rackspace Cloud.

22

redis

Il utilise la commande rpush pour envoyer les données de journalisation de sortie à la file d'attente Redis.

23

riak

Il est utilisé pour stocker les événements de sortie dans la paire clé / valeur distribuée Riak.

24

s3

Il stocke les données de journalisation de sortie dans Amazon Simple Storage Service.

25

sns

Il est utilisé pour envoyer les événements de sortie au service de notification simple d'Amazon.

26

solr_http

Il indexe et stocke les données de journalisation de sortie dans Solr.

27

sps

Il est utilisé pour envoyer les événements à Simple Queue Service d'AWS.

28

statsd

Il est utilisé pour envoyer les données de métrique au démon réseau statsd.

29

stdout

Il est utilisé pour afficher les événements de sortie sur la sortie standard de la CLI comme une invite de commande.

30

syslog

Il est utilisé pour envoyer les événements de sortie au serveur syslog.

31

tcp

Il est utilisé pour envoyer les événements de sortie au socket TCP.

32

udp

Il est utilisé pour pousser les événements de sortie sur UDP.

33

websocket

Il est utilisé pour transmettre les événements de sortie via le protocole WebSocket.

34

xmpp

Il est utilisé pour transmettre les événements de sortie via le protocole XMPP.

Tous les plugins ont leurs paramètres spécifiques, ce qui permet de spécifier les champs importants tels que Port, Path, etc., dans un plugin. Nous discuterons des paramètres de certains des plugins de sortie.

Elasticsearch

Le plugin de sortie Elasticsearch permet à Logstash de stocker la sortie dans les clusters spécifiques du moteur Elasticsearch. C'est l'un des choix les plus connus des utilisateurs car il vient dans le package d'ELK Stack et fournit donc des solutions de bout en bout pour Devops. Le tableau suivant décrit les paramètres de ce plugin de sortie.

Nom du paramètre Valeur par défaut La description
action indice Il permet de définir l'action effectuée dans Elasticsearch Engine. Les autres valeurs de ces paramètres sont la suppression, la création, la mise à jour, etc.
cacert Il contient le chemin du fichier avec .cer ou .pem pour la validation du certificat du serveur.
codec "plaine" Il est utilisé pour encoder les données de journalisation de sortie avant de les envoyer à la source de destination.
doc_as_upset faux Ce paramètre est utilisé en cas d'action de mise à jour. Il crée un document dans Elasticsearch Engine, si l'ID du document n'est pas spécifié dans le plugin de sortie.
Type de document Il est utilisé pour stocker le même type d'événements dans le même type de document. S'il n'est pas spécifié, le type d'événement est utilisé pour le même.
flush_size 500 Ceci est utilisé pour améliorer les performances du téléchargement groupé dans Elasticsearch
hôtes ["127.0.0.1"] C'est un tableau d'adresses de destination pour la sortie des données de journalisation
idle_flush_time 1 Il définit la limite de temps (seconde) entre les deux rinçages, Logstash force le rinçage après la limite de temps spécifiée dans ce paramètre
indice "logstash -% {+ AAAA.MM.dd}" Il est utilisé pour spécifier l'index du moteur Elasticsearch
manage_temlpate vrai Il est utilisé pour appliquer le modèle par défaut dans Elasticsearch
parent néant Il est utilisé pour spécifier l'id du document parent dans Elasticsearch
mot de passe Il est utilisé pour authentifier la demande auprès d'un cluster sécurisé dans Elasticsearch
chemin Il est utilisé pour spécifier le chemin HTTP d'Elasticsearch.
pipeline néant Il est utilisé pour définir le pipeline d'ingestion, l'utilisateur souhaite s'exécuter pour un événement
Procuration Il est utilisé pour spécifier le proxy HTTP
retry_initial_interval 2 Il est utilisé pour définir l'intervalle de temps initial (en secondes) entre les tentatives groupées. Il double après chaque nouvelle tentative jusqu'à ce qu'il atteigne retry_max_interval
retry_max_interval 64 Il est utilisé pour définir l'intervalle de temps maximum pour retry_initial_interval
retry_on_conflict 1 C'est le nombre de tentatives par Elasticsearch pour mettre à jour un document
ssl Pour activer ou désactiver SSL / TLS sécurisé sur Elasticsearch
modèle Il contient le chemin du modèle personnalisé dans Elasticsearch
nom_modèle "logstash" Ceci est utilisé pour nommer le modèle dans Elasticsearch
temps libre 60 C'est le délai d'expiration des requêtes réseau adressées à Elasticsearch
bouleverser "" Il met à jour le document ou si le document_id n'existe pas, il crée un nouveau document dans Elasticsearch
utilisateur Il contient l'utilisateur pour authentifier la requête Logstash dans un cluster Elasticsearch sécurisé

Email

Le plugin de sortie d'e-mail est utilisé pour avertir l'utilisateur lorsque Logstash génère une sortie. Le tableau suivant décrit les paramètres de ce plugin.

Nom du paramètre Valeur par défaut La description
adresse "Localhost" C'est l'adresse du serveur de messagerie
pièces jointes [] Il contient les noms et les emplacements des fichiers joints
corps "" Il contient le corps de l'e-mail et doit être en texte brut
cc Il contient les adresses e-mail séparées par des virgules pour le cc de l'e-mail
codec "plaine" Il est utilisé pour encoder les données de journalisation de sortie avant de les envoyer à la source de destination.
contenttype "text / html; charset = UTF-8" Il est utilisé pour le type de contenu de l'e-mail
déboguer faux Il est utilisé pour exécuter le relais de messagerie en mode débogage
domaine "localhost" Il est utilisé pour définir le domaine pour envoyer les e-mails
de "[email protected]" Il est utilisé pour spécifier l'adresse e-mail de l'expéditeur
htmlbody "" Il est utilisé pour spécifier le corps de l'e-mail au format html
mot de passe Il est utilisé pour s'authentifier auprès du serveur de messagerie
Port 25 Il permet de définir le port pour communiquer avec le serveur de messagerie
répondre à Il est utilisé pour spécifier l'identifiant de l'e-mail pour le champ de réponse de l'e-mail
matière "" Il contient la ligne d'objet de l'e-mail
use_tls faux Activer ou désactiver TSL pour la communication avec le serveur de messagerie
Nom d'utilisateur Is contient le nom d'utilisateur pour l'authentification auprès du serveur
via "Smtp" Il définit les méthodes d'envoi d'email par Logstash

Http

Ce paramètre est utilisé pour envoyer les événements de sortie via http vers la destination. Ce plugin a les paramètres suivants -

Nom du paramètre Valeur par défaut La description
retries_automatiques 1 Il est utilisé pour définir le nombre de tentatives de requête http par logstash
cacert Il contient le chemin du fichier pour la validation du certificat du serveur
codec "plaine" Il est utilisé pour encoder les données de journalisation de sortie avant de les envoyer à la source de destination.
content_type Je spécifie le type de contenu de la requête http au serveur de destination
biscuits vrai Il est utilisé pour activer ou désactiver les cookies
format "json" Il est utilisé pour définir le format du corps de la requête http
en-têtes Il contient les informations de l'en-tête http
http_method "" Il est utilisé pour spécifier la méthode http utilisée dans la requête par logstash et les valeurs peuvent être "put", "post", "patch", "delete", "get", "head"
request_timeout 60 Il est utilisé pour s'authentifier auprès du serveur de messagerie
URL C'est un paramètre obligatoire pour ce plugin pour spécifier le point de terminaison http ou https

stdout

Le plugin de sortie stdout est utilisé pour écrire les événements de sortie sur la sortie standard de l'interface de ligne de commande. C'est une invite de commande dans Windows et un terminal sous UNIX. Ce plugin a les paramètres suivants -

Nom du paramètre Valeur par défaut La description
codec "plaine" Il est utilisé pour encoder les données de journalisation de sortie avant de les envoyer à la source de destination.
ouvriers 1 Il est utilisé pour spécifier le nombre de travailleurs pour la sortie

statsd

Il s'agit d'un démon réseau utilisé pour envoyer les données des matrices via UDP aux services backend de destination. C'est une invite de commande dans Windows et un terminal sous UNIX. Ce plugin a les paramètres suivants -

Nom du paramètre Valeur par défaut La description
codec "plaine" Il est utilisé pour encoder les données de journalisation de sortie avant de les envoyer à la source de destination.
compter {} Il est utilisé pour définir le nombre à utiliser dans les métriques
décrémenter [] Il est utilisé pour spécifier les noms des métriques de décrémentation
hôte "Localhost" Il contient l'adresse du serveur statsd
incrément [] Il est utilisé pour spécifier les noms de métrique d'incrément
Port 8125 Il contient le port du serveur statsd
taux d'échantillonnage 1 Il est utilisé pour spécifier le taux d'échantillonnage de la métrique
expéditeur "%{hôte}" Il spécifie le nom de l'expéditeur
ensemble {} Il est utilisé pour spécifier une métrique d'ensemble
Horaire {} Il est utilisé pour spécifier une métrique de synchronisation
ouvriers 1 Il est utilisé pour spécifier le nombre de travailleurs pour la sortie

Plugins de filtre

Logstash prend en charge divers plugins de filtrage pour analyser et transformer les journaux d'entrée dans un format plus structuré et plus facile à interroger.

La syntaxe d'utilisation du plugin de filtrage est la suivante -

filter {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Vous pouvez télécharger le plugin de filtrage en utilisant la commande suivante -

>logstash-plugin install logstash-filter-<plugin name>

L'utilitaire Logstash-plugin est présent dans le dossier bin du répertoire d'installation de Logstash. Le tableau suivant décrit les plugins de sortie proposés par Logstash.

N ° Sr. Nom et description du plugin
1

aggregate

Ce plugin recueille ou agrège les données de divers événements du même type et les traite dans l'événement final

2

alter

Il permet à l'utilisateur de modifier le champ des événements de journal, que le filtre de mutation ne gère pas

3

anonymize

Il est utilisé pour remplacer les valeurs des champs par un hachage cohérent

4

cipher

Il est utilisé pour crypter les événements de sortie avant de les stocker dans la source de destination

5

clone

Il est utilisé pour créer un double des événements de sortie dans Logstash

6

collate

Il fusionne les événements de différents journaux par leur heure ou leur nombre

sept

csv

Ce plugin analyse les données des journaux d'entrée en fonction du séparateur

8

date

Il analyse les dates des champs de l'événement et les définit comme horodatage de l'événement

9

dissect

Ce plugin aide l'utilisateur à extraire des champs de données non structurées et permet au filtre grok de les analyser correctement.

dix

drop

Il permet de supprimer tous les événements de même type ou toute autre similitude

11

elapsed

Il est utilisé pour calculer le temps entre les événements de début et de fin

12

Elasticsearch

Il est utilisé pour copier les champs des événements de journal précédents présents dans Elasticsearch vers celui en cours dans Logstash

13

extractnumbers

Il est utilisé pour extraire le nombre de chaînes dans les événements du journal

14

geoip

Il ajoute un champ dans l'événement, qui contient la latitude et la longitude de l'emplacement de l'adresse IP présente dans l'événement du journal

15

grok

C'est le plugin de filtrage couramment utilisé pour analyser l'événement pour obtenir les champs

16

i18n

Il supprime les caractères spéciaux d'un fichier dans l'événement du journal

17

json

Il est utilisé pour créer un objet Json structuré en événement ou dans un champ spécifique d'un événement

18

kv

Ce plugin est utile pour parer les paires clé / valeur dans les données de journalisation

19

metrics

Il est utilisé pour agréger des métriques telles que le comptage de la durée de chaque événement

20

multiline

C'est également l'un des plugins de filtrage couramment utilisés, qui aide l'utilisateur en cas de conversion de données de journalisation multiligne en un seul événement.

21

mutate

Ce plugin est utilisé pour renommer, supprimer, remplacer et modifier les champs de vos événements

22

range

Il permettait de vérifier les valeurs numériques des champs dans les événements par rapport à une plage attendue et à la longueur d'une chaîne dans une plage.

23

ruby

Il est utilisé pour exécuter du code Ruby arbitraire

24

sleep

Cela permet à Logstash de dormir pendant une durée spécifiée

25

split

Il est utilisé pour diviser un champ d'un événement et placer toutes les valeurs de division dans les clones de cet événement

26

xml

Il est utilisé pour créer un événement en couplant les données XML présentes dans les logs

Plugins de codec

Les plugins de codec peuvent faire partie des plugins d'entrée ou de sortie. Ces plugins sont utilisés pour modifier ou formater la présentation des données de journalisation. Logstash propose plusieurs plugins de codec et ceux-ci sont les suivants -

N ° Sr. Nom et description du plugin
1

avro

Ce plugin encode sérialiser les événements Logstash en datums avro ou décoder les enregistrements avro en événements Logstash

2

cloudfront

Ce plugin lit les données encodées à partir d'AWS cloudfront

3

cloudtrail

Ce plugin est utilisé pour lire les données d'AWS cloudtrail

4

collectd

Cela lit les données du protocole binaire appelé collectées via UDP

5

compress_spooler

Il est utilisé pour compresser les événements du journal dans Logstash en lots spoulés

6

dots

Ceci est utilisé pour le suivi des performances en définissant un point pour chaque événement sur stdout

sept

es_bulk

Ceci est utilisé pour convertir les données en masse d'Elasticsearch en événements Logstash, y compris les métadonnées Elasticsearch

8

graphite

Ce codec lit les données du graphite en événements et change l'événement en enregistrements au format graphite

9

gzip_lines

Ce plugin est utilisé pour gérer les données encodées gzip

dix

json

Ceci est utilisé pour convertir un seul élément du tableau Json en un seul événement Logstash

11

json_lines

Il est utilisé pour gérer les données Json avec un délimiteur de nouvelle ligne

12

line

Ce plugin lira et écrira l'événement en un seul live, ce qui signifie qu'après le délimiteur de nouvelle ligne, il y aura un nouvel événement

13

multiline

Il est utilisé pour convertir les données de journalisation multiligne en un seul événement

14

netflow

Ce plugin est utilisé pour convertir les données nertflow v5 / v9 en événements logstash

15

nmap

Il analyse les données de résultat nmap dans un format XML

16

plain

Cela lit le texte sans délimiteurs

17

rubydebug

Ce plugin écrira les événements de sortie Logstash en utilisant la bibliothèque d'impression géniale Ruby

Créez votre propre plugin

Vous pouvez également créer vos propres plugins dans Logstash, qui répondent à vos besoins. L'utilitaire Logstash-plugin est utilisé pour créer des plugins personnalisés. Ici, nous allons créer un plugin de filtre, qui ajoutera un message personnalisé dans les événements.

Générer la structure de base

Un utilisateur peut générer les fichiers nécessaires en utilisant l'option generate de l'utilitaire logstash-plugin ou elle est également disponible sur le GitHub.

>logstash-plugin generate --type filter --name myfilter --path c:/tpwork/logstash/lib

Ici, typeL'option est utilisée pour spécifier que le plugin est soit Input, Output ou Filter. Dans cet exemple, nous créons un plugin de filtre nommémyfilter. L'option path est utilisée pour spécifier le chemin, où vous voulez que votre répertoire de plugins soit créé. Après avoir exécuté la commande mentionnée ci-dessus, vous verrez qu'une structure de répertoire est créée.

Développer le plugin

Vous pouvez trouver le fichier de code du plugin dans le \lib\logstash\filtersdossier dans le répertoire du plugin. L'extension de fichier sera.rb.

Dans notre cas, le fichier de code se trouvait à l'intérieur du chemin suivant -

C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb

Nous changeons le message en - par défaut ⇒ "Salut, vous apprenez ceci sur tutorialspoint.com" et sauvegardons le fichier.

Installez le plugin

Pour installer ce plugin, le Gemfile de Logstash doit être modifié. Vous pouvez trouver ce fichier dans le répertoire d'installation de Logstash. Dans notre cas, ce sera dansC:\tpwork\logstash. Modifiez ce fichier à l'aide de n'importe quel éditeur de texte et ajoutez-y le texte suivant.

gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"

Dans la commande ci-dessus, nous spécifions le nom du plugin ainsi que l'endroit où nous pouvons le trouver pour l'installation. Ensuite, exécutez l'utilitaire Logstash-plugin pour installer ce plugin.

>logstash-plugin install --no-verify

Essai

Ici, nous ajoutons myfilter dans l'un des exemples précédents -

logstash.conf

Ce fichier de configuration Logstash contient myfilter dans la section filter après le plugin grok filter.

input {
   file {
      path => "C:/tpwork/logstash/bin/log/input1.log"
   } 
}
filter {
   grok {
      match => [
         "message", "%{LOGLEVEL:loglevel} - %{NOTSPACE:taskid} -
            %{NOTSPACE:logger} - %{WORD:label}( - %{INT:duration:int})?" ]
   }
   myfilter{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output1.log"
      codec => rubydebug
   }
}

Run logstash

Nous pouvons exécuter Logstash en utilisant la commande suivante.

>logstash –f logsatsh.conf

input.log

Le bloc de code suivant montre les données du journal d'entrée.

INFO - 48566 - TRANSACTION_START - start

output.log

Le bloc de code suivant montre les données du journal de sortie.

{
   "path" => "C:/tpwork/logstash/bin/log/input.log",
   "@timestamp" => 2017-01-07T06:25:25.484Z,
   "loglevel" => "INFO",
   "logger" => "TRANSACTION_END",
   "@version" => "1",
   "host" => "Dell-PC",
   "label" => "end",
   "message" => "Hi, You are learning this on tutorialspoint.com",
   "taskid" => "48566",
   "tags" => []
}

Publiez-le sur Logstash

Un développeur peut également publier son plugin personnalisé sur Logstash en le téléchargeant sur le github et en suivant les étapes standardisées définies par la société Elasticsearch.

Veuillez consulter l'URL suivante pour plus d'informations sur la publication -

https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html