Dies ist der Befehl grok, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
grok – Protokolle analysieren, Ereignisse verarbeiten und Ihren unstrukturierten Text strukturieren.
ZUSAMMENFASSUNG
grok [-d] -f Konfigurationsdatei
BESCHREIBUNG
Grok ist eine Software, mit der Sie Protokolle und andere Dateien einfach analysieren können. Mit grok ist das möglich
Wandeln Sie unstrukturierte Protokoll- und Ereignisdaten in strukturierte Daten um.
Das Programm grok ist ein großartiges Tool zum Parsen von Protokolldaten und Programmausgaben. Sie können passen
eine beliebige Anzahl komplexer Muster für eine beliebige Anzahl von Eingaben (Prozesse und Dateien) und haben
individuelle Reaktionen.
OPTIONAL
-d or --dämon
Dämonisierung nach dem Parsen der Konfigurationsdatei. Umgesetzt mit Daemon(3). Die Standardeinstellung ist „to“.
im Vordergrund bleiben.
-f Konfigurationsdatei
Geben Sie eine zu verwendende Grok-Konfigurationsdatei an.
CONFIGURATION
Sie können die Konfigurationsdatei beliebig nennen. Unten folgt eine vollständige Beispielkonfiguration mit
Dokumentation zu Optionen und Standardeinstellungen.
# --- Beginnen Sie mit der Grok-Beispielkonfiguration
# Dies ist ein Kommentar. :) :)
#
# Debugging aktivieren oder deaktivieren. Debug ist standardmäßig auf „false“ gesetzt.
# Die Einstellung „Debug“ ist auf jeder Ebene gültig.
# Debug-Werte werden nach unten kopiert, sofern sie nicht überschrieben werden.
debuggen: wahr
# Sie können mehrere Programmblöcke in einer Konfigurationsdatei definieren.
# Ein Programm ist nur eine Sammlung von Eingaben (Dateien, Execs) und
# Übereinstimmungen (Muster und Reaktionen),
Programm {
Debug: falsch
# Datei ohne Block. Der Einstellungsblock ist optional
Datei „/var/log/messages“
# Datei mit einem Block
Datei „/var/log/secure“ {
# follow bedeutet, einer Datei wie „tail -F“ zu folgen, startet aber
# Lesen am Anfang der Datei. Es folgt eine Datei
# durch Kürzung, Protokollrotation und Anhängen.
folgen: wahr
}
# einen Befehl ausführen, der Einstellungsblock ist optional
exec „netstat -rn“
# exec mit einem Block
exec "ping -c 1 www.google.com" {
# Führen Sie die Exec automatisch erneut aus, wenn sie beendet wird, sobald sie beendet wird.
# Standard ist falsch
Neustart beim Beenden: falsch
# Mindestzeit von einem Start zum nächsten, wenn wir
# werden neu gestartet. Standard ist kein Minimum
Mindest-Neustartintervall: 5
# alle N Sekunden ausführen, aber nur, wenn der Prozess beendet wurde.
# Standardmäßig wird überhaupt keine erneute Ausführung vorgenommen.
Laufintervall: 60
# Standardmäßig wird die Prozessausgabe nur von stdout gelesen.
# Setzen Sie dies auf true, um auch von stderr zu lesen.
read-stderr: false
}
# Sie können in Ihrer Konfiguration mehrere Match-{}-Blöcke haben.
# Sie werden der Reihe nach auf jede Eingabezeile angewendet
# kommt von Ihren Exec- und Dateiinstanzen in diesem Programmblock.
übereinstimmen {
# stimmt mit einem Muster überein. Dies kann ein beliebiger regulärer Ausdruck sein und %{foo} enthalten.
# Grok-Muster
Muster: „ein passendes Muster“
# Sie können hier mehrere Muster haben, alle sind für den Abgleich gültig.
Muster: „anderes passendes Muster“
# Die Standardreaktion ist „%{@LINE}“, was die vollständige Zeile ist
# stimmt überein. Die Reaktion kann ein Sonderwert von „none“ sein
# bedeutet, dass keine Reaktion stattfindet, oder es kann eine beliebige Zeichenfolge sein. Der
# Reaktion wird an die Shell ausgegeben, wenn es sich nicht um keine handelt.
Reaktion: „%{@LINE}“
# Die Standard-Shell ist „stdout“, was bedeutet, dass Reaktionen erfolgen
# direkt auf die Standardausgabe gedruckt. Setzen Sie die Shell auf a
# Befehlszeichenfolge führt diesen Befehl aus und leitet Reaktionsdaten weiter
# Es.
#shell: stdout
Hülse: "/ Bin / sh"
# Flush nach jedem Schreibvorgang in die Shell.
# Standardmäßig wird nicht geleert.
bündig: wahr
# break-if-match bedeutet, dass keine weiteren Übereinstimmungen versucht werden
# diese Linie. Der Standardwert ist falsch.
Break-if-Match: wahr
}
}
# – Konfiguration beenden
MUSTER DATEIEN
Musterdateien enthalten Listen mit Namen und Mustern zum Laden in grok.
Muster sind durch Zeilenumbrüche getrennt und haben diese Syntax:
Mustername Ausdruck
Eventuelle Leerzeichen zwischen dem Musternamen und dem Ausdruck werden ignoriert.
Mustername
Dies ist der Name Ihres Musters, das nach dem Laden in Mustern als referenziert werden kann
%{Mustername}
Ausdruck
Der Ausdruck hier ist wörtlich als regulärer Ausdruck verfügbar. Du brauchst nicht
sich Gedanken darüber machen, wie man den Dingen entkommen kann.
MUSTER Beispiele:
ZIFFERN \d+
HALLOWELT \bhallo Welt\b
REGULAR AUSDRÜCKE
Die Ausdrucks-Engine unter grok ist PCRE. Jede Syntax in PCRE ist in grok gültig.
REAKTIONEN
Reaktionen können auf benannte Muster aus der Übereinstimmung verweisen. Sie können auch auf einige andere zugreifen
besondere Werte, darunter:
%{@LINIE}
Die Zeile stimmte überein.
%{@ÜBEREINSTIMMEN}
Die Teilzeichenfolge stimmte überein
%{@START}
Die Startposition der Übereinstimmung vom Anfang der Zeichenfolge.
%{@ENDE}
Die Endposition des Spiels.
%{@LÄNGE}
Die Länge des Spiels
%{@JSON}
Der vollständige Satz erfasster Muster, codiert als JSON-Wörterbuch als Struktur von {
Muster: [Array von Captures]}. Wir verwenden ein Array, da Sie denselben Namen verwenden können
Muster mehrmals in einem Spiel.
%{@JSON_COMPLEX}
Ähnlich wie oben, enthält jedoch die Start- und Endposition für jedes benannte Muster.
Diese Struktur ist:
{ "grok": [
{ "@LINE": { "start": ..., "end": ..., "value": ... } },
{ "@MATCH": { "start": ..., "end": ..., "value": ... } },
{ "patternname": { "start": startpos, "end": endpos, "value": "string" } },
{ "patternname2": { "start": startpos, "end": endpos, "value": "string" } },
...
]}
REAKTION FILTER
Mit Reaktionsfiltern können Sie die erfassten Daten verändern. Die folgenden Filter sind
verfügbar:
Ein Beispiel für die Verwendung eines Filters in einer Reaktion sieht folgendermaßen aus:
Reaktion: „echo Matched: %{@MATCH|shellescape}“
Shellescape
Entgeht allen Zeichen, die erforderlich sind, um die Zeichenfolge in einer Shell ohne Anführungszeichen sicher zu machen
Argument
Shelldqescape
Escapezeichen, die zur Sicherheit in doppelten Anführungszeichen in einer Shell erforderlich sind.
jsonencode
Macht die Zeichenfolge sicher für die Darstellung in einer JSON-Zeichenfolge (Escapezeichen gemäß json.org).
Empfehlungen)
Nutzen Sie grok online über die Dienste von onworks.net