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 | 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 |
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 |
|
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 | 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é |
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