Logstash - Plugins
Logstash bietet verschiedene Plugins für alle drei Stufen seiner Pipeline (Input, Filter und Output). Diese Plugins helfen dem Benutzer, Protokolle aus verschiedenen Quellen wie Webservern, Datenbanken, Over Network-Protokollen usw. zu erfassen.
Nach der Erfassung kann Logstash die Daten analysieren und in aussagekräftige Informationen umwandeln, die vom Benutzer benötigt werden. Schließlich kann Logstash diese aussagekräftigen Informationen an verschiedene Zielquellen wie Elasticsearch, AWS Cloudwatch usw. senden oder speichern.
Eingangs-Plugins
Eingabe-Plugins in Logstash helfen dem Benutzer, Protokolle aus verschiedenen Quellen zu extrahieren und zu empfangen. Die Syntax für die Verwendung des Eingabe-Plugins lautet wie folgt:
Input {
Plugin name {
Setting 1……
Setting 2……..
}
}
Sie können das Eingabe-Plugin mit dem folgenden Befehl herunterladen:
>Logstash-plugin install Logstash-input-<plugin name>
Das Logstash-Plugin-Dienstprogramm ist in der bin folderdes Logstash-Installationsverzeichnisses. Die folgende Tabelle enthält eine Liste der von Logstash angebotenen Eingangs-Plugins.
Sr.Nr. | Plugin Name & Beschreibung |
---|---|
1 | beats Abrufen der Protokolldaten oder Ereignisse aus dem Framework für elastische Beats. |
2 | cloudwatch So extrahieren Sie Ereignisse aus CloudWatch, einem API-Angebot von Amazon Web Services. |
3 | couchdb_changes Ereignisse von _chages URI von couchdb, die mit diesem Plugin ausgeliefert wurden. |
4 | drupal_dblog So extrahieren Sie die Watchdog-Protokolldaten von drupal mit aktiviertem DBLog. |
5 | Elasticsearch Abrufen der Ergebnisse von Abfragen, die im Elasticsearch-Cluster ausgeführt wurden. |
6 | eventlog So rufen Sie die Ereignisse aus dem Windows-Ereignisprotokoll ab |
7 | exec Shell-Befehlsausgabe als Eingabe in Logstash abrufen. |
8 | file Um die Ereignisse aus einer Eingabedatei abzurufen. Dies ist nützlich, wenn der Logstash lokal mit der Eingabequelle installiert ist und Zugriff auf Eingabequellenprotokolle hat. |
9 | generator Es wird zu Testzwecken verwendet, wodurch zufällige Ereignisse erstellt werden. |
10 | github Erfasst Ereignisse vom GitHub-Webhook. |
11 | graphite Abrufen von Metrikdaten vom Graphitüberwachungstool. |
12 | heartbeat Es wird auch zum Testen verwendet und erzeugt herzschlagähnliche Ereignisse |
13 | http Zum Sammeln von Protokollereignissen über zwei Netzwerkprotokolle: http und https. |
14 | http_poller Es wird verwendet, um die HTTP-API-Ausgabe in ein Ereignis zu dekodieren. |
15 | jdbc Es konvertiert die JDBC-Transaktionen in ein Ereignis in Logstash. |
16 | jmx So extrahieren Sie die Metriken mit JMX aus Remote-Java-Anwendungen. |
17 | log4j Erfassen Sie Ereignisse vom socketAppender-Objekt von Log4j über den TCP-Socket. |
18 | rss Zur Ausgabe von Befehlszeilen-Tools als Eingabeereignis in Logstash. |
19 | tcp Erfasst Ereignisse über den TCP-Socket. |
20 | Sammeln Sie Ereignisse von der Twitter-Streaming-API. |
21 | unix Sammeln Sie Ereignisse über den UNIX-Socket. |
22 | websocket Erfassen Sie Ereignisse über das Websocket-Protokoll. |
23 | xmpp Liest Ereignisse über Jabber / xmpp-Protokolle. |
Plugin-Einstellungen
Alle Plugins haben ihre spezifischen Einstellungen, mit deren Hilfe wichtige Felder wie Port, Pfad usw. in einem Plugin angegeben werden können. Wir werden die Einstellungen einiger Eingangs-Plugins diskutieren.
Datei
Dieses Eingabe-Plugin wird verwendet, um Ereignisse direkt aus Protokoll- oder Textdateien zu extrahieren, die in der Eingabequelle vorhanden sind. Es funktioniert ähnlich wie der Befehl tail in UNIX und speichert den zuletzt gelesenen Cursor und liest nur die neuen angehängten Daten aus der Eingabedatei, kann jedoch mithilfe der Einstellung star_position geändert werden. Es folgen die Einstellungen dieses Eingangs-Plugins.
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Feld hinzufügen | {} | Fügen Sie dem Eingabeereignis ein neues Feld hinzu. |
close_older | 3600 | Die Dateien, deren letzte Lesezeit (in Sekunden) länger als die in diesem Plugin angegebene ist, werden geschlossen. |
Codec | "einfach" | Es wird verwendet, um die Daten vor dem Eintritt in die Logstash-Pipeline zu dekodieren. |
Trennzeichen | "\ N" | Es wird verwendet, um ein neues Zeilentrennzeichen anzugeben. |
remove_interval | 15 | Dies ist das Zeitintervall (in Sekunden) zwischen dem Erkennen neuer Dateien im angegebenen Pfad. |
enable_metric | wahr | Es wird verwendet, um die Berichterstellung und Erfassung von Metriken für das angegebene Plugin zu aktivieren oder zu deaktivieren. |
ausschließen | Es wird verwendet, um den Dateinamen oder die Muster anzugeben, die vom Eingabe-Plugin ausgeschlossen werden sollen. | |
Ich würde | So geben Sie eine eindeutige Identität für diese Plugin-Instanz an | |
max_open_files | Es gibt die maximale Anzahl von Eingabedateien durch Logstash zu jedem Zeitpunkt an. | |
Pfad | Geben Sie den Pfad der Dateien an und er kann die Muster für den Dateinamen enthalten. | |
Startposition | "Ende" | Sie können zu "Anfang" wechseln, wenn Sie das möchten; Zunächst sollte Logstash die Dateien von Anfang an lesen und nicht nur das neue Protokollereignis. |
start_interval | 1 | Es gibt das Zeitintervall in Sekunden an, nach dem Logstash nach den geänderten Dateien sucht. |
Stichworte | Um zusätzliche Informationen wie Logstash hinzuzufügen, wird "_grokparsefailure" in Tags hinzugefügt, wenn ein Protokollereignis den angegebenen Grok-Filter nicht erfüllt. | |
Art | Dies ist ein spezielles Feld, das Sie einem Eingabeereignis hinzufügen können und das in Filtern und Kibana nützlich ist. |
Elasticsearch
Dieses spezielle Plugin wird zum Lesen der Ergebnisse von Suchanfragen in einem Elasticsearch-Cluster verwendet. Das Folgende hat die Einstellungen, die in diesem Plugin verwendet werden -
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Feld hinzufügen | {} | Wie im Datei-Plugin wird es verwendet, um ein Feld im Eingabeereignis anzuhängen. |
ca_file | Es wird verwendet, um den Pfad der SSL-Zertifizierungsstellendatei anzugeben. | |
Codec | "einfach" | Es wird verwendet, um die Eingabeereignisse von Elasticsearch zu dekodieren, bevor sie in die Logstash-Pipeline eingegeben werden. |
docinfo | "falsch" | Sie können es in true ändern, wenn Sie zusätzliche Informationen wie Index, Typ und ID aus der Elasticsearch-Engine extrahieren möchten. |
docinfo_fields | ["_index", "_type", "_id"] | Sie können jedes Feld entfernen, das Sie in Ihrer Logstash-Eingabe nicht möchten. |
enable_metric | wahr | Es wird verwendet, um die Berichterstellung und Erfassung von Metriken für diese Plugin-Instanz zu aktivieren oder zu deaktivieren. |
Gastgeber | Es wird verwendet, um die Adressen aller Elasticsearch-Engines anzugeben, die die Eingabequelle dieser Logstash-Instanz sein werden. Die Syntax lautet host: port oder IP: port. | |
Ich würde | Es wird verwendet, um dieser bestimmten Eingabe-Plugin-Instanz eine eindeutige Identitätsnummer zu geben. | |
Index | "logstash- *" | Es wird verwendet, um den Indexnamen oder ein Muster anzugeben, das Logstash von Logstash auf Eingabe überwacht. |
Passwort | Zur Authentifizierung. | |
Abfrage | "{" sort ": [" _ doc "]}" | Abfrage für die Ausführung. |
ssl | falsch | Aktivieren oder deaktivieren Sie die sichere Socket-Schicht. |
Stichworte | Hinzufügen zusätzlicher Informationen zu Eingabeereignissen. | |
Art | Es wird verwendet, um die Eingabeformulare so zu klassifizieren, dass in späteren Phasen alle Eingabeereignisse leicht durchsucht werden können. | |
Nutzer | Für authentische Zwecke. |
Ereignisprotokoll
Dieses Eingabe-Plugin liest Daten von der Win32-API von Windows-Servern. Es folgen die Einstellungen dieses Plugins -
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Feld hinzufügen | {} | Wie im Datei-Plugin wird es verwendet, um ein Feld im Eingabeereignis anzuhängen |
Codec | "einfach" | Es wird verwendet, um die Eingabeereignisse aus Fenstern zu dekodieren. vor dem Eintritt in die Logstash-Pipeline |
Logdatei | ["Anwendung", "Sicherheit", "System"] | In der Eingabeprotokolldatei erforderliche Ereignisse |
Intervall | 1000 | Sie ist in Millisekunden angegeben und definiert das Intervall zwischen zwei aufeinander folgenden Überprüfungen neuer Ereignisprotokolle |
Stichworte | Hinzufügen zusätzlicher Informationen zu Eingabeereignissen | |
Art | Es wird verwendet, um die Eingabe eines bestimmten Plugins nach einem bestimmten Typ zu klassifizieren, so dass es in späteren Phasen einfach ist, alle Eingabeereignisse zu durchsuchen |
Dieses Eingabe-Plugin wird verwendet, um den Feed von Twitter von seiner Streaming-API zu sammeln. Die folgende Tabelle beschreibt die Einstellungen dieses Plugins.
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Feld hinzufügen | {} | Wie im Datei-Plugin wird es verwendet, um ein Feld im Eingabeereignis anzuhängen |
Codec | "einfach" | Es wird verwendet, um die Eingabeereignisse aus Fenstern zu dekodieren. vor dem Eintritt in die Logstash-Pipeline |
consumer_key | Es enthält den Consumer-Key der Twitter-App. Weitere Informationen finden Sie unterhttps://dev.twitter.com/apps/new | |
consumer_secret | Es enthält den geheimen Verbraucherschlüssel der Twitter-App. Weitere Informationen finden Sie unterhttps://dev.twitter.com/apps/new | |
enable_metric | wahr | Es wird verwendet, um die Berichterstellung und Erfassung von Metriken für diese Plugin-Instanz zu aktivieren oder zu deaktivieren |
folgt | Es gibt die durch Kommas getrennten Benutzer-IDs an und LogStash überprüft den Status dieser Benutzer in Twitter. Weitere Informationen finden Sie unter https://dev.twitter.com |
|
full_tweet | falsch | Sie können es in true ändern, wenn Logstash die vollständige Objektrückgabe von der Twitter-API lesen soll |
Ich würde | Es wird verwendet, um dieser bestimmten Eingabe-Plugin-Instanz eine eindeutige Identitätsnummer zu geben | |
ignore_retweets | Falsch | Sie können den Wert auf true setzen, um die Retweets im eingegebenen Twitter-Feed zu ignorieren |
Schlüsselwörter | Es handelt sich um eine Reihe von Schlüsselwörtern, die im Twitters-Eingabe-Feed nachverfolgt werden müssen | |
Sprache | Es definiert die Sprache der Tweets, die LogStash aus dem eingegebenen Twitter-Feed benötigt. Dies ist ein Array von Bezeichnern, die eine bestimmte Sprache in Twitter definieren | |
Standorte | So filtern Sie die Tweets aus dem Eingabe-Feed entsprechend dem angegebenen Speicherort heraus. Dies ist ein Array, das Längen- und Breitengrad des Standorts enthält | |
oauth_token | Es ist eine erforderliche Datei, die das Benutzer-Oauth-Token enthält. Weitere Informationen finden Sie unter folgendem Linkhttps://dev.twitter.com/apps | |
oauth_token_secret | Es handelt sich um eine erforderliche Datei, die das geheime Token des Benutzers enthält. Weitere Informationen finden Sie unter folgendem Linkhttps://dev.twitter.com/apps | |
Stichworte | Hinzufügen zusätzlicher Informationen zu Eingabeereignissen | |
Art | Es wird verwendet, um die Eingabe eines bestimmten Plugins nach einem bestimmten Typ zu klassifizieren, so dass es in späteren Phasen einfach ist, alle Eingabeereignisse zu durchsuchen |
TCP
TCP wird verwendet, um die Ereignisse über den TCP-Socket abzurufen. Es kann von den Benutzerverbindungen oder dem Server lesen, die in der Moduseinstellung angegeben sind. Die folgende Tabelle beschreibt die Einstellungen dieses Plugins -
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Feld hinzufügen | {} | Wie im Datei-Plugin wird es verwendet, um ein Feld im Eingabeereignis anzuhängen |
Codec | "einfach" | Es wird verwendet, um die Eingabeereignisse aus Fenstern zu dekodieren. vor dem Eintritt in die Logstash-Pipeline |
enable_metric | wahr | Es wird verwendet, um die Berichterstellung und Erfassung von Metriken für diese Plugin-Instanz zu aktivieren oder zu deaktivieren |
Gastgeber | "0.0.0.0" | Die Adresse des Server-Betriebssystems, von dem der Client abhängt |
Ich würde | Es enthält den Consumer-Key der Twitter-App | |
Modus | "Server" | Es wird verwendet, um anzugeben, dass die Eingabequelle Server oder Client ist. |
Hafen | Es definiert die Portnummer | |
ssl_cert | Es wird verwendet, um den Pfad des SSL-Zertifikats anzugeben | |
ssl_enable | falsch | Aktivieren oder deaktivieren Sie SSL |
ssl_key | So geben Sie den Pfad der SSL-Schlüsseldatei an | |
Stichworte | Hinzufügen zusätzlicher Informationen zu Eingabeereignissen | |
Art | Es wird verwendet, um die Eingabe eines bestimmten Plugins nach einem bestimmten Typ zu klassifizieren, so dass es in späteren Phasen einfach ist, alle Eingabeereignisse zu durchsuchen |
Logstash - Ausgabe-Plugins
Logstash unterstützt verschiedene Ausgabequellen und in verschiedenen Technologien wie Datenbank, Datei, E-Mail, Standardausgabe usw.
Die Syntax für die Verwendung des Ausgabe-Plugins lautet wie folgt:
output {
Plugin name {
Setting 1……
Setting 2……..
}
}
Sie können das Ausgabe-Plugin mit dem folgenden Befehl herunterladen:
>logstash-plugin install logstash-output-<plugin name>
Das Logstash-plugin utilitybefindet sich im Ordner bin des Logstash-Installationsverzeichnisses. In der folgenden Tabelle werden die von Logstash angebotenen Ausgabe-Plugins beschrieben.
Sr.Nr. | Name und Beschreibung des Plugins |
---|---|
1 | CloudWatch Dieses Plugin wird verwendet, um aggregierte Metrikdaten an CloudWatch von Amazon Web Services zu senden. |
2 | csv Es wird verwendet, um die Ausgabeereignisse durch Kommas getrennt zu schreiben. |
3 | Elasticsearch Es wird verwendet, um die Ausgabeprotokolle im Elasticsearch-Index zu speichern. |
4 | Es wird verwendet, um eine Benachrichtigungs-E-Mail zu senden, wenn die Ausgabe generiert wird. Der Benutzer kann Informationen zur Ausgabe per E-Mail hinzufügen. |
5 | exec Es wird verwendet, um einen Befehl auszuführen, der dem Ausgabeereignis entspricht. |
6 | ganglia Es krümmt die Metriken zu Gmond von Gangila. |
7 | gelf Es wird verwendet, um eine Ausgabe für Graylog2 im GELF-Format zu erzeugen. |
8 | google_bigquery Es gibt die Ereignisse an Google BigQuery aus. |
9 | google_cloud_storage Die Ausgabeereignisse werden in Google Cloud Storage gespeichert. |
10 | graphite Es wird verwendet, um die Ausgabeereignisse in Graphite zu speichern. |
11 | graphtastic Es wird verwendet, um die Ausgabemetriken unter Windows zu schreiben. |
12 | hipchat Es wird verwendet, um die Ausgabeprotokollereignisse in HipChat zu speichern. |
13 | http Es wird verwendet, um die Ausgabeprotokollereignisse an http- oder https-Endpunkte zu senden. |
14 | influxdb Es wird verwendet, um das Ausgabeereignis in InfluxDB zu speichern. |
15 | irc Es wird verwendet, um die Ausgabeereignisse in irc zu schreiben. |
16 | mongodb Es speichert die Ausgabedaten in MongoDB. |
17 | nagios Es wird verwendet, um Nagios über die passiven Prüfergebnisse zu informieren. |
18 | nagios_nsca Es wird verwendet, um Nagios über das NSCA-Protokoll über die passiven Prüfergebnisse zu informieren. |
19 | opentsdb Es speichert die Logstash-Ausgabeereignisse in OpenTSDB. |
20 | pipe Es überträgt die Ausgabeereignisse an die Standardeingabe eines anderen Programms. |
21 | rackspace Es wird verwendet, um die Ausgabeprotokollereignisse an den Warteschlangendienst der Rackspace Cloud zu senden. |
22 | redis Es verwendet den Befehl rpush, um die Ausgabeprotokollierungsdaten an die Redis-Warteschlange zu senden. |
23 | riak Es wird verwendet, um die Ausgabeereignisse im verteilten Riak-Schlüssel / Wert-Paar zu speichern. |
24 | s3 Es speichert die Ausgabeprotokollierungsdaten in Amazon Simple Storage Service. |
25 | sns Es wird verwendet, um die Ausgabeereignisse an den Simple Notification Service von Amazon zu senden. |
26 | solr_http Es indiziert und speichert die Ausgabeprotokollierungsdaten in Solr. |
27 | sps Es wird verwendet, um die Ereignisse an den Simple Queue Service von AWS zu senden. |
28 | statsd Es wird verwendet, um die Metrikdaten an den statsd-Netzwerkdämon zu senden. |
29 | stdout Es wird verwendet, um die Ausgabeereignisse in der Standardausgabe einer CLI-ähnlichen Eingabeaufforderung anzuzeigen. |
30 | syslog Es wird verwendet, um die Ausgabeereignisse an den Syslog-Server zu senden. |
31 | tcp Es wird verwendet, um die Ausgabeereignisse an den TCP-Socket zu senden. |
32 | udp Es wird verwendet, um die Ausgabeereignisse über UDP zu übertragen. |
33 | websocket Es wird verwendet, um die Ausgabeereignisse über das WebSocket-Protokoll zu übertragen. |
34 | xmpp Es wird verwendet, um die Ausgabeereignisse über das XMPP-Protokoll zu übertragen. |
Alle Plugins haben ihre spezifischen Einstellungen, mit deren Hilfe wichtige Felder wie Port, Pfad usw. in einem Plugin angegeben werden können. Wir werden die Einstellungen einiger Ausgabe-Plugins diskutieren.
Elasticsearch
Mit dem Elasticsearch-Ausgabe-Plugin kann Logstash die Ausgabe in den spezifischen Clustern der Elasticsearch-Engine speichern. Dies ist eine der bekanntesten Optionen für Benutzer, da sie im Paket von ELK Stack enthalten ist und daher End-to-End-Lösungen für Devops bietet. In der folgenden Tabelle werden die Einstellungen dieses Ausgabe-Plugins beschrieben.
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Aktion | Index | Es wird verwendet, um die in der Elasticsearch-Engine ausgeführte Aktion zu definieren. Andere Werte für diese Einstellungen sind Löschen, Erstellen, Aktualisieren usw. |
cacert | Es enthält den Pfad der Datei mit .cer oder .pem für die Zertifikatsüberprüfung des Servers. | |
Codec | "einfach" | Es wird verwendet, um die Ausgabeprotokolldaten zu codieren, bevor sie an die Zielquelle gesendet werden. |
doc_as_upset | falsch | Diese Einstellung wird bei Aktualisierungsaktionen verwendet. Es erstellt ein Dokument in der Elasticsearch-Engine, wenn die Dokument-ID nicht im Ausgabe-Plugin angegeben ist. |
Art des Dokuments | Es wird verwendet, um denselben Ereignistyp in demselben Dokumenttyp zu speichern. Wenn es nicht angegeben ist, wird der Ereignistyp für denselben verwendet. | |
flush_size | 500 | Dies wird verwendet, um die Leistung des Massen-Uploads in Elasticsearch zu verbessern |
Gastgeber | ["127.0.0.1"] | Es ist ein Array von Zieladressen für die Ausgabe von Protokolldaten |
idle_flush_time | 1 | Es definiert das Zeitlimit (Sekunde) zwischen den beiden Spülungen. Logstash erzwingt das Spülen nach dem in dieser Einstellung angegebenen Zeitlimit |
Index | "logstash -% {+ YYYY.MM.dd}" | Es wird verwendet, um den Index der Elasticsearch-Engine anzugeben |
manage_temlpate | wahr | Es wird verwendet, um die Standardvorlage in Elasticsearch anzuwenden |
Elternteil | Null | Es wird verwendet, um die ID des übergeordneten Dokuments in Elasticsearch anzugeben |
Passwort | Es wird verwendet, um die Anforderung bei einem sicheren Cluster in Elasticsearch zu authentifizieren | |
Pfad | Es wird verwendet, um den HTTP-Pfad von Elasticsearch anzugeben. | |
Pipeline | Null | Es wird verwendet, um die Ingest-Pipeline festzulegen, die der Benutzer für ein Ereignis ausführen möchte |
Proxy | Es wird verwendet, um den HTTP-Proxy anzugeben | |
retry_initial_interval | 2 | Es wird verwendet, um das anfängliche Zeitintervall (Sekunden) zwischen Massenwiederholungen festzulegen. Es wird nach jedem erneuten Versuch doppelt, bis retry_max_interval erreicht ist |
retry_max_interval | 64 | Es wird verwendet, um das maximale Zeitintervall für retry_initial_interval festzulegen |
retry_on_conflict | 1 | Dies ist die Anzahl der erneuten Versuche von Elasticsearch, ein Dokument zu aktualisieren |
ssl | Zum Aktivieren oder Deaktivieren von SSL / TLS, das für Elasticsearch gesichert ist | |
Vorlage | Es enthält den Pfad der benutzerdefinierten Vorlage in Elasticsearch | |
Vorlagenname | "logstash" | Dies wird verwendet, um die Vorlage in Elasticsearch zu benennen |
Auszeit | 60 | Dies ist das Zeitlimit für Netzwerkanforderungen an Elasticsearch |
Upsert | "" | Das Dokument wird aktualisiert, oder wenn die document_id nicht vorhanden ist, wird in Elasticsearch ein neues Dokument erstellt |
Nutzer | Es enthält den Benutzer zum Authentifizieren der Logstash-Anforderung in einem sicheren Elasticsearch-Cluster |
Das E-Mail-Ausgabe-Plugin wird verwendet, um den Benutzer zu benachrichtigen, wenn Logstash eine Ausgabe generiert. In der folgenden Tabelle werden die Einstellungen für dieses Plugin beschrieben.
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Adresse | "Localhost" | Dies ist die Adresse des Mailservers |
Anhänge | [] | Es enthält die Namen und Speicherorte der angehängten Dateien |
Körper | "" | Es enthält den E-Mail-Text und sollte Klartext sein |
cc | Es enthält die durch Kommas getrennten E-Mail-Adressen für den CC der E-Mail | |
Codec | "einfach" | Es wird verwendet, um die Ausgabeprotokolldaten zu codieren, bevor sie an die Zielquelle gesendet werden. |
Inhaltstyp | "text / html; charset = UTF-8" | Es wird zum Inhaltstyp der E-Mail verwendet |
debuggen | falsch | Es wird verwendet, um das Mail-Relay im Debug-Modus auszuführen |
Domain | "localhost" | Es wird verwendet, um die Domäne zum Senden der E-Mail-Nachrichten festzulegen |
von | "[email protected]" | Hiermit wird die E-Mail-Adresse des Absenders angegeben |
htmlbody | "" | Es wird verwendet, um den E-Mail-Text im HTML-Format anzugeben |
Passwort | Es wird zur Authentifizierung beim Mailserver verwendet | |
Hafen | 25 | Es wird verwendet, um den Port für die Kommunikation mit dem Mailserver zu definieren |
Antwort an | Es wird verwendet, um die E-Mail-ID für das Antwortfeld der E-Mail anzugeben | |
Gegenstand | "" | Es enthält die Betreffzeile der E-Mail |
use_tls | falsch | Aktivieren oder deaktivieren Sie TSL für die Kommunikation mit dem Mailserver |
Nutzername | Is enthält den Benutzernamen für die Authentifizierung beim Server | |
über | "SMTP" | Es definiert die Methoden zum Senden von E-Mails per Logstash |
Http
Diese Einstellung wird verwendet, um die Ausgabeereignisse über http an das Ziel zu senden. Dieses Plugin hat folgende Einstellungen -
Name einstellen | Standardwert | Beschreibung |
---|---|---|
automatische_Versuche | 1 | Es wird verwendet, um die Anzahl der http-Anforderungswiederholungen per Logstash festzulegen |
cacert | Es enthält den Dateipfad für die Zertifikatsüberprüfung des Servers | |
Codec | "einfach" | Es wird verwendet, um die Ausgabeprotokolldaten zu codieren, bevor sie an die Zielquelle gesendet werden. |
Inhaltstyp | Ich gebe den Inhaltstyp der http-Anfrage an den Zielserver an | |
Kekse | wahr | Es wird verwendet, um Cookies zu aktivieren oder zu deaktivieren |
Format | "json" | Es wird verwendet, um das Format des http-Anforderungshauptteils festzulegen |
Überschriften | Es enthält die Informationen des http-Headers | |
http_method | "" | Es wird verwendet, um die http-Methode anzugeben, die in der Anforderung von logstash verwendet wird, und die Werte können "put", "post", "patch", "delete", "get", "head" sein. |
Zeitüberschreitung der Anforderung | 60 | Es wird zur Authentifizierung beim Mailserver verwendet |
URL | Für dieses Plugin ist eine Einstellung erforderlich, um den http- oder https-Endpunkt anzugeben |
stdout
Das stdout-Ausgabe-Plugin wird verwendet, um die Ausgabeereignisse in die Standardausgabe der Befehlszeilenschnittstelle zu schreiben. Es ist eine Eingabeaufforderung in Windows und Terminal unter UNIX. Dieses Plugin hat folgende Einstellungen:
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Codec | "einfach" | Es wird verwendet, um die Ausgabeprotokolldaten zu codieren, bevor sie an die Zielquelle gesendet werden. |
Arbeitskräfte | 1 | Es wird verwendet, um die Anzahl der Worker für die Ausgabe anzugeben |
statsd
Es ist ein Netzwerkdämon, mit dem die Matrizendaten über UDP an die Ziel-Backend-Dienste gesendet werden. Es ist eine Eingabeaufforderung in Windows und Terminal unter UNIX. Dieses Plugin hat folgende Einstellungen -
Name einstellen | Standardwert | Beschreibung |
---|---|---|
Codec | "einfach" | Es wird verwendet, um die Ausgabeprotokolldaten zu codieren, bevor sie an die Zielquelle gesendet werden. |
Anzahl | {} | Es wird verwendet, um die Anzahl zu definieren, die in Metriken verwendet werden soll |
Dekrement | [] | Es wird verwendet, um die Dekrement-Metriknamen anzugeben |
Gastgeber | "Localhost" | Es enthält die Adresse des Statistikservers |
Zuwachs | [] | Es wird verwendet, um die Inkrementmetriknamen anzugeben |
Hafen | 8125 | Es enthält den Port des Statistikservers |
Beispielrate | 1 | Es wird verwendet, um die Abtastrate der Metrik anzugeben |
Absender | "%{Gastgeber}" | Es gibt den Namen des Absenders an |
einstellen | {} | Es wird verwendet, um eine festgelegte Metrik anzugeben |
zeitliche Koordinierung | {} | Es wird verwendet, um eine Timing-Metrik anzugeben |
Arbeitskräfte | 1 | Es wird verwendet, um die Anzahl der Worker für die Ausgabe anzugeben |
Filter Plugins
Logstash unterstützt verschiedene Filter-Plugins, um Eingabeprotokolle zu analysieren und in ein strukturierteres und einfach abzufragendes Format umzuwandeln.
Die Syntax für die Verwendung des Filter-Plugins lautet wie folgt:
filter {
Plugin name {
Setting 1……
Setting 2……..
}
}
Sie können das Filter-Plugin mit dem folgenden Befehl herunterladen:
>logstash-plugin install logstash-filter-<plugin name>
Das Dienstprogramm Logstash-plugin befindet sich im Ordner bin des Logstash-Installationsverzeichnisses. In der folgenden Tabelle werden die von Logstash angebotenen Ausgabe-Plugins beschrieben.
Sr.Nr. | Name und Beschreibung des Plugins |
---|---|
1 | aggregate Dieses Plugin sammelt oder aggregiert die Daten von verschiedenen Ereignissen des gleichen Typs und verarbeitet sie im endgültigen Ereignis |
2 | alter Der Benutzer kann das Feld der Protokollereignisse ändern, die von Mutationsfiltern nicht verarbeitet werden |
3 | anonymize Es wird verwendet, um die Werte von Feldern durch einen konsistenten Hash zu ersetzen |
4 | cipher Es wird verwendet, um die Ausgabeereignisse zu verschlüsseln, bevor sie in der Zielquelle gespeichert werden |
5 | clone Es wird verwendet, um ein Duplikat der Ausgabeereignisse in Logstash zu erstellen |
6 | collate Es führt die Ereignisse aus verschiedenen Protokollen nach ihrer Zeit oder Anzahl zusammen |
7 | csv Dieses Plugin analysiert Daten aus Eingabeprotokollen gemäß dem Trennzeichen |
8 | date Es analysiert die Daten aus den Feldern im Ereignis und legt diese als Zeitstempel für das Ereignis fest |
9 | dissect Dieses Plugin hilft dem Benutzer, Felder aus unstrukturierten Daten zu extrahieren, und erleichtert es dem Grok-Filter, sie korrekt zu analysieren |
10 | drop Es wird verwendet, um alle Ereignisse desselben Typs oder andere Ähnlichkeiten zu löschen |
11 | elapsed Es wird verwendet, um die Zeit zwischen dem Start- und dem Endereignis zu berechnen |
12 | Elasticsearch Es wird verwendet, um die Felder früherer in Elasticsearch vorhandener Protokollereignisse in das aktuelle in Logstash zu kopieren |
13 | extractnumbers Es wird verwendet, um die Nummer aus Zeichenfolgen in den Protokollereignissen zu extrahieren |
14 | geoip Dem Ereignis wird ein Feld hinzugefügt, das den Breiten- und Längengrad des Standorts der im Protokollereignis vorhandenen IP enthält |
15 | grok Es ist das häufig verwendete Filter-Plugin, um das Ereignis zu analysieren und die Felder abzurufen |
16 | i18n Es löscht die Sonderzeichen aus einem im Protokollereignis abgelegten |
17 | json Es wird verwendet, um ein strukturiertes Json-Objekt im Ereignis oder in einem bestimmten Feld eines Ereignisses zu erstellen |
18 | kv Dieses Plugin ist nützlich, um Schlüsselwertpaare in den Protokolldaten zu analysieren |
19 | metrics Es wird verwendet, um Metriken wie das Zählen der Zeitdauer in jedem Ereignis zu aggregieren |
20 | multiline Es ist auch eines der am häufigsten verwendeten Filter-Plugins, das dem Benutzer beim Konvertieren mehrzeiliger Protokolldaten in ein einzelnes Ereignis hilft. |
21 | mutate Dieses Plugin wird verwendet, um Felder in Ihren Ereignissen umzubenennen, zu entfernen, zu ersetzen und zu ändern |
22 | range Es wurde verwendet, um die numerischen Werte von Feldern in Ereignissen mit einem erwarteten Bereich und der Länge der Zeichenfolge innerhalb eines Bereichs zu vergleichen. |
23 | ruby Es wird verwendet, um beliebigen Ruby-Code auszuführen |
24 | sleep Dadurch wird Logstash für eine bestimmte Zeit in den Ruhezustand versetzt |
25 | split Es wird verwendet, um ein Feld eines Ereignisses zu teilen und alle Teilungswerte in die Klone dieses Ereignisses zu platzieren |
26 | xml Es wird zum Erstellen eines Ereignisses verwendet, indem die in den Protokollen vorhandenen XML-Daten analysiert werden |
Codec-Plugins
Codec-Plugins können Teil von Eingabe- oder Ausgabe-Plugins sein. Diese Plugins werden zum Ändern oder Formatieren der Protokolldatenpräsentation verwendet. Logstash bietet mehrere Codec-Plugins an, die wie folgt lauten:
Sr.Nr. | Name und Beschreibung des Plugins |
---|---|
1 | avro Dieses Plugin codiert serialisierte Logstash-Ereignisse in Avro-Daten oder decodiert Avro-Datensätze in Logstash-Ereignisse |
2 | cloudfront Dieses Plugin liest die codierten Daten aus der AWS Cloudfront |
3 | cloudtrail Dieses Plugin wird zum Lesen der Daten aus AWS Cloudtrail verwendet |
4 | collectd Dies liest Daten aus dem als UDP gesammelten Binärprotokoll |
5 | compress_spooler Es wird verwendet, um die Protokollereignisse in Logstash auf Spool-Stapel zu komprimieren |
6 | dots Dies wird zur Leistungsverfolgung verwendet, indem für jedes Ereignis ein Punkt auf stdout gesetzt wird |
7 | es_bulk Dies wird verwendet, um die Massendaten von Elasticsearch in Logstash-Ereignisse einschließlich Elasticsearch-Metadaten zu konvertieren |
8 | graphite Dieser Codec liest Daten von Graphit in Ereignisse und ändert das Ereignis in graphitformatierte Datensätze |
9 | gzip_lines Dieses Plugin wird verwendet, um gzip-codierte Daten zu verarbeiten |
10 | json Dies wird verwendet, um ein einzelnes Element im Json-Array in ein einzelnes Logstash-Ereignis zu konvertieren |
11 | json_lines Es wird verwendet, um Json-Daten mit einem Zeilenumbruch zu verarbeiten |
12 | line Das Plugin liest und schreibt Ereignisse in einem einzigen Live, dh nach dem Newline-Trennzeichen gibt es ein neues Ereignis |
13 | multiline Es wird verwendet, um mehrzeilige Protokolldaten in ein einzelnes Ereignis zu konvertieren |
14 | netflow Dieses Plugin wird verwendet, um nertflow v5 / v9-Daten in Logstash-Ereignisse zu konvertieren |
15 | nmap Es analysiert die nmap-Ergebnisdaten in ein XML-Format |
16 | plain Dies liest Text ohne Trennzeichen |
17 | rubydebug Dieses Plugin schreibt die Logstash-Ausgabeereignisse mit der Ruby-Druckbibliothek |
Erstellen Sie Ihr eigenes Plugin
Sie können auch Ihre eigenen Plugins in Logstash erstellen, die Ihren Anforderungen entsprechen. Das Logstash-Plugin-Dienstprogramm wird zum Erstellen benutzerdefinierter Plugins verwendet. Hier erstellen wir ein Filter-Plugin, das den Ereignissen eine benutzerdefinierte Nachricht hinzufügt.
Generieren Sie die Basisstruktur
Ein Benutzer kann die erforderlichen Dateien mithilfe der Generierungsoption des Dienstprogramms logstash-plugin generieren oder sie ist auch auf dem GitHub verfügbar.
>logstash-plugin generate --type filter --name myfilter --path c:/tpwork/logstash/lib
Hier, typeMit der Option wird angegeben, dass das Plugin entweder Eingabe, Ausgabe oder Filter ist. In diesem Beispiel erstellen wir ein Filter-Plugin mit dem Namenmyfilter. Mit der Option path wird der Pfad angegeben, unter dem Ihr Plugin-Verzeichnis erstellt werden soll. Nach dem Ausführen des oben genannten Befehls sehen Sie, dass eine Verzeichnisstruktur erstellt wird.
Entwickeln Sie das Plugin
Die Codedatei des Plugins finden Sie im \lib\logstash\filtersOrdner im Plugin-Verzeichnis. Die Dateierweiterung wird sein.rb.
In unserem Fall befand sich die Codedatei im folgenden Pfad:
C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb
Wir ändern die Nachricht in - Standard ⇒ "Hallo, Sie lernen dies auf tutorialspoint.com" und speichern die Datei.
Installieren Sie das Plugin
Um dieses Plugin zu installieren, muss die Gemfile von Logstash geändert werden. Sie finden diese Datei im Installationsverzeichnis von Logstash. In unserem Fall wird es in seinC:\tpwork\logstash. Bearbeiten Sie diese Datei mit einem beliebigen Texteditor und fügen Sie den folgenden Text hinzu.
gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"
Im obigen Befehl geben wir den Namen des Plugins sowie den Ort an, an dem wir es für die Installation finden können. Führen Sie dann das Dienstprogramm Logstash-Plugin aus, um dieses Plugin zu installieren.
>logstash-plugin install --no-verify
Testen
Hier fügen wir hinzu myfilter in einem der vorherigen Beispiele -
logstash.conf
Diese Logstash-Konfigurationsdatei enthält myfilter im Filterbereich nach dem grok filter plugin.
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
Wir können Logstash mit dem folgenden Befehl ausführen.
>logstash –f logsatsh.conf
input.log
Der folgende Codeblock zeigt die Eingabeprotokolldaten.
INFO - 48566 - TRANSACTION_START - start
output.log
Der folgende Codeblock zeigt die Ausgabeprotokolldaten.
{
"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" => []
}
Veröffentlichen Sie es auf Logstash
Ein Entwickler kann sein benutzerdefiniertes Plugin auch in Logstash veröffentlichen, indem er es auf den Github hochlädt und die von der Elasticsearch Company definierten standardisierten Schritte befolgt.
Weitere Informationen zum Veröffentlichen finden Sie unter der folgenden URL.
https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html