Parsefile
Funktion | Parsen einer Datei nach Text und/oder Werten, Erstellen von Differenzwerten. Bis zu 32 Werte / String-Werte / Diff-Werte / Rate-Werte / Vergleichsergebnisse / Match-Zähler und Ereignisse sind pro Parse-Job möglich |
---|---|
Alarmierung | String-Treffer, String-Zähler, Werte, String-Werte, Diff-Werte, Ratenwerte, Ereignisse, Dateialter, Dateiinhaltsalter, Antwortcode Besonderes: Der Job kann in den Zustand Maintenance OK oder Maintenance Major übergehen, basierend auf konfigurierten Alarm Limits. |
Parsefile Detail
Parsefile-Parameter
Parameter | Beschreibung |
---|---|
Methode | Die zu parsende Datei kann entweder eine lokale Datei sein (Standard) oder sie kann zuvor über eines der folgenden Protokolle abgerufen werden: HTTP Wenn eines der Remote-Protokolle gewählt wird, werden zusätzliche Parameter für den Quellpfad und die Benutzerauthentifizierung angezeigt. Siehe Fetchfile-Auftrag für Details zur Konfiguration. Beispiel: Holen Sie die Datei zuerst von einem Webserver, bevor Sie sie parsen: Das Abrufen einer entfernten Datei aus dem Parsefile-Job ist die bevorzugte Methode. Eine Alternative wäre, einen Batch-Job mit einem Fetchfile- oder Agent-Fetchfile-Job und einem Parsefile-Job zu erstellen. Wenn das entfernte System unter Windows läuft und der SKOOR WinAgent installiert ist, können Dateien auch mit Hilfe des WinAgents geholt werden. Der WinAgent wird in der Methoden-Dropdown-Liste aufgeführt, sobald die Eigenschaften Agent-Benutzername und Agent-Passwort auf dem Auftragsgerät festgelegt sind. Unter Windows 10 kann der OpenSSH Server aus den optionalen Funktionen installiert werden. Nach dem Start des entsprechenden Dienstes können Dateien mit scp kopiert werden. |
Dateiname | Der zu parsende Dateiname. Der Pfad kann relativ zum Standard-Parse-Verzeichnis auf dem Kollektor (definiert in der Datei /etc/opt/eranger/eranger-collector.cfg, normalerweise auf /var/opt/run/eranger/collector/tmp gesetzt) oder absolut angegeben werden. Wenn sich die Datei in einem Unterverzeichnis des konfigurierten Standardverzeichnisses befindet, kann der Dateiname wie folgt eingegeben werden: subdir/file.txt |
Dateialter | Prüft das Datum und die Uhrzeit des letzten Zugriffs auf die Datei. Ist sie älter als der angegebene Wert, gibt der Job eine Warnung aus (Datei zu alt). Das Dateialter kann in Minuten oder Sekunden angegeben werden, Formate wie "1h 30m" werden ebenfalls unterstützt. |
Alter des Dateiinhalts | Prüft, ob sich der Inhalt der Datei geändert hat. Wenn sich der Inhalt in der hier eingegebenen Zeit nicht geändert hat, gibt der Auftrag eine Warnung aus (Dateiinhalt zu alt). Das Format für das Alter des Dateiinhalts ist dasselbe wie für den Parameter Dateialter. |
Transformieren → Ausführen | Wenn die vom Job bereitgestellte automatische Transformation aus irgendeinem Grund nicht ausreicht, kann die Datei vor dem Parsen mit einer der folgenden Optionen vorverarbeitet werden: Nicht verwendet (keine Vorverarbeitung) |
Sequenz | Siehe nächster Abschnitt |
In der Dropdown-Liste Tags können vordefinierte Variablen in die obigen Felder eingegeben werden, z. B. $NAME$ für den Namen des Auftrags.
Standard-Datei-Transformationen
Wenn eine Datei von einem anderen System als Linux geholt wurde, müssen einige Sonderzeichen für das Parsing angepasst werden. Die folgende Liste zeigt, welche Fälle vom Job automatisch behandelt werden:
Windows-Wagenrücklaufzeichen werden entfernt (früher durch die Option dos2unix transform erledigt)
Wenn die Datei in UTF-8 mit BOM (Byte Order Mark) kodiert ist, wird das BOM entfernt
Wenn die Datei in Unicode kodiert ist (Big-Endian UTF-16 oder Little-Endian UTF-16)
Wenn keine Transformation definiert ist, wird die Datei vor dem Parsen in UTF-8 konvertiert.
Wenn eine Transformation definiert ist, wird nichts mit der Datei gemacht (es wird davon ausgegangen, dass die Transformation die Datei korrekt behandelt).
Schlägt die Umwandlung fehl, werden in den Antwort- und Fehlercodes des Auftrags die folgenden Meldungen angezeigt:
Response Code 11 (Failed to transform file) wird immer angezeigt und sollte als Alarm Limit konfiguriert werden
Fehlercode 1 (Systemfehler) oder 2 (Interner Fehler) kann zusätzlich angezeigt werden
Parsefile-Sequenz
Allgemeines Verhalten
Wenn die Datei nicht gefunden wird, wird der Antwortcode auf 1(Datei nicht gefunden) gesetzt und die Ausführung abgebrochen.
Wenn Dateialter und/oder Dateiinhaltsalter definiert ist, werden diese Prüfungen vor dem Parsen der Datei durchgeführt.
Wenn die Datei zu alt ist, wird der Antwortcode auf 2(Datei zu alt) gesetzt, die Datei wird aber trotzdem geparst.
Wenn der Inhalt der Datei zu alt ist, wird der Antwortcode auf 3(Dateiinhalt zu alt) gesetzt, die Datei wird aber dennoch geparst.
Enthält eine Datei mehr als 100000 Zeilen, wird der Antwortcode auf 4(Datei zu lang) gesetzt und die Ausführung wird abgebrochen. Das Standardlimit kann durch Hinzufügen der folgenden Zeile in der SKOOR Engine-Konfigurationsdatei /opt/eranger/etc/eranger-collector.cfg erhöht oder aufgehoben werden:
parsefile_line_limit = 1000000 raise limit to a million lines parsefile_line_limit = 0 remove limit altogether
Beim Hinzufügen neuer Werte, String-Werte, Diff-Werte usw. sind maximal 32 Einträge innerhalb der Parse-Sequenz für jeden Wertetyp möglich. Wenn Sie z. B. 3 Werte mit dem Element " Wert holen" hinzufügen, beginnen Sie mit dem Hinzufügen von "Wert holen" mit Index 1, dann 2, dann 3, mit steigender Indexzahl. Die Benutzeroberfläche erlaubt nur die Auswahl eines maximalen Indexes basierend auf der Anzahl der aktuell konfigurierten Sequenzelemente, damit die Dropdown-Liste für die Indexauswahl nicht zu viel Platz einnimmt.
Verfügbare Elemente in der Dropdown-Liste für den Sequenzfilter
einstellen
Filter (einschließen)
Alle Zeilen in der Datei, die den Ausdruck nicht enthalten, werden ignoriert, z. B. werden bei der Eingabe von "localhost" (ohne Anführungszeichen) nur Zeilen berücksichtigt, die "localhost" enthalten; andere Zeilen werden übersprungen.
Filtern (ausschließen)
Dies funktioniert umgekehrt, d. h. als negativer Filter.
Alle Zeilen, die den Ausdruck enthalten, werden beim Parsen der restlichen Sequenz ignoriert.
Begrenzungszeichen definieren
Das Standard-Spaltentrennzeichen ist das Leerzeichen (1 Leerzeichen, mehrere aufeinanderfolgende Leerzeichen, Tabulatoren). Damit werden die Zeilen effektiv in Wörter unterteilt.
Hier kann ein anderes Trennzeichen gewählt werden. Geben Sie eine Zeichenfolge aus 1 oder mehreren Zeichen ein, z. B. ";" oder "COL". Während einer Sequenz kann das Trennzeichen mehrmals gesetzt und zurückgesetzt werden. Zum Zurücksetzen lassen Sie das Textfeld leer.
Die Spaltenzählung beginnt bei 0 (Null).
Syslog-Modus
Wenn diese Option aktiviert ist, wird die Analyse mit der ersten neuen Zeile in der Datei fortgesetzt, die seit dem letzten Lauf des Auftrags hinzugefügt wurde.
Wenn die Datei gedreht wurde, wird die gedrehte Datei ab der letzten EOF-Position verwendet, so dass keine Daten verloren gehen.
Groß-/Kleinschreibung ignorieren
Wenn diese Option gesetzt ist, wird die Groß-/Kleinschreibung bei String-Vergleichen ignoriert.
Ignoriere nicht gefunden
Wenn eine Zeile, ein Ausdruck oder eine Spalte nicht gefunden wird, wird der Antwortcode nicht auf 7 String not found gesetzt, sondern die Auftragsausführung wird beendet.
Fortsetzen nach nicht gefunden
Wenn dies gesetzt ist, wird das Parsen fortgesetzt, nachdem eine Zeile oder Spalte nicht gefunden wurde.
Überlauf erkennen an/aus
Wenn diese Option aktiviert ist, werden alle Diff-Wert-Parameter, die später in der Sequenz folgen, ignoriert, wenn der Wert niedriger ist als der bei der vorherigen Auftragsausführung gemessene Wert (nur positive Differenzen zulässig).
Dies wird vor allem bei Zählern verwendet. Die Einstellung kann später in der Sequenz ausgeschaltet werden.
Zeitstempel holen (Rate)
Für genaue Berechnungen kann mit dem Sequenzparameter Get rate value ein Zeitstempel aus einer Datei gelesen werden. Zum Beispiel, wenn die geparste Datei von einer asynchron ausgeführten Anwendung erzeugt wird.
Der Zeitstempel in der Datei muss in Einheiten von Sekunden, ms oder µs angegeben werden.
Suchen
Die folgenden Parameter beziehen sich auf Zeilen. Der Bereich für den nächsten Parameter ist die durch den aktuellen Parameter gefundene Zeile. Wenn eine angeforderte Zeile nicht existiert, wird der Antwortcode auf 5(Zeile nicht gefunden) gesetzt und die Ausführung beendet, es sei denn, Continue after not found ist gesetzt.Gehe zu Zeile #
Der Parse-Zeiger wird an den Anfang der entsprechenden Zeile gesetzt.
Gehe zur nächsten Zeile
Der Parse-Zeiger wird an den Anfang der nächsten Zeile gesetzt.
Gehe zur ersten Zeile mit
Der Parse-Zeiger wird an den Anfang der ersten Zeile gesetzt, die den String/Ausdruck auswertet.
Wenn eine Zeile mit einem solchen Ausdruck nicht gefunden werden kann und "Continue after not found" gesetzt ist, wird der Parse-Zeiger auf das erste Zeichen der ersten Zeile in der Datei positioniert und der Rest der Sequenz wird verarbeitet.
Gehe zur nächsten Zeile mit
Der Parse-Zeiger wird an den Anfang der nächsten Zeile gesetzt, die den String/Ausdruck auswertet.
Wenn eine Zeile mit einem solchen Ausdruck nicht gefunden wird und "Continue after not found" gesetzt ist, wird der Parse-Zeiger auf das erste Zeichen der nächsten Zeile positioniert und der Rest der Sequenz abgearbeitet.
Gehe zur letzten Zeile mit
Der Parse-Zeiger wird an den Anfang der letzten Zeile gesetzt, die den String/Ausdruck auswertet.
Wenn eine Zeile mit einem solchen Ausdruck nicht gefunden werden kann und "Continue after not found" gesetzt ist, wird der Parse-Zeiger auf das erste Zeichen der ersten Zeile in der Datei positioniert und der Rest der Sequenz wird verarbeitet.
Begrenzer-basierte Suche
Die folgenden Befehle hängen von der Definition eines Begrenzungszeichens ab. Ist kein Begrenzungszeichen definiert, werden Leerzeichen (Leerzeichen oder Tabulatoren) als Begrenzungszeichen verwendetGehe zu Spalte #
Der Parse-Zeiger wird auf das erste Zeichen der entsprechenden Spalte (0..n) in der aktuellen Zeile gesetzt.
Wird die Spalte nicht gefunden, so wird der Antwortcode auf 6(Spalte nicht gefunden) gesetzt und die Ausführung abgebrochen.
Wenn die Spalte nicht gefunden wird und Continue after not found gesetzt ist, wird die Position des Parse-Zeigers nicht verändert.
Der Geltungsbereich der folgenden String-Befehle ist standardmäßig die gesamte Datei; wenn einer der Zeilenbefehle zuvor aufgerufen wurde, ist der Geltungsbereich die aktuelle Zeile.
Wird das Feld leer gelassen, wird der Fehlercode auf 7(Ungültiger Parameter) gesetzt und die Ausführung abgebrochen.
Gehe zur ersten Zeichenkette
Je nach Bereich wird das erste Vorkommen der Zeichenkette in der gesamten Datei / in der aktuellen Zeile, die den Ausdruck auswertet, gesucht.
Falls gefunden, wird der Parse-Zeiger auf das erste Zeichen positioniert, das den Ausdruck auswertet, und dann um die Länge des Ausdrucks inkrementiert
Andernfalls wird die Ausführung abgebrochen und der Antwortcode auf 7(Zeichenfolge nicht gefunden) gesetzt, es sei denn, oben wurde Ignorieren bei nicht gefunden oder Fortsetzen nach nicht gefunden gesetzt.
Gehe zur nächsten Zeichenfolge
Wie oben, aber die Suche beginnt an der aktuellen Position, so dass der Parser nach dem nächsten Vorkommen sucht.
Gehe zur letzten Zeichenfolge
Wie oben, jedoch sucht der Parser nach dem letzten Vorkommen eines Ausdrucks.
Die folgenden Parameter unterstützen die Ereignisbehandlung gemäß dem Agent Eventlog-Job und können bis zu 4 Ereignisse verfolgen.
Ereignis
EreignisX setzen
Ein Ereignis wird gesetzt, wenn eine Zeile mit einem bestimmten Ausdruck oder einer Zeichenkette übereinstimmt.
Es können bis zu 32 Ereignisse konfiguriert und gesetzt werden.
EreignisX zurücksetzen
Ein Ereignis wird zurückgesetzt, wenn eine nachfolgende Zeile mit einem bestimmten Ausdruck übereinstimmt.
Es können bis zu 32 Rücksetzereignisse konfiguriert und gesetzt werden.
EreignisX zurücksetzen nach
Ein Ereignis wird nach einer bestimmten Zeitspanne (z. B. 10m = 10 Minuten) zurückgesetzt.
Es können bis zu 32 Zeitüberschreitungen konfiguriert und festgelegt werden.
Die Rücksetzbedingung wird nur zur Laufzeit des Jobs ausgewertet. Wenn ein Ereignis gesetzt wurde und bei der nächsten Jobausführung keine neuen entsprechenden Strings gefunden werden, wird das Ereignis zurückgesetzt, wenn die oben genannte Zeitüberschreitung erreicht ist.
Werte
WertX holen
Ab der aktuellen Position wird ein numerischer Wert gesucht und zugewiesen, falls gefunden
Andernfalls wird der Antwortcode auf 8(Wert nicht gefunden) gesetzt und die Ausführung abgebrochen.
Der Parse-Zeiger wird auf das erste Zeichen nach dem gefundenen Wert gesetzt.
Durch Drücken der Schaltfläche Einheit wird der folgende Dialog angezeigt:
Hier kann man angebenden Namen des zurückzugebenden Wertes (optional)
seine Einheit (z.B. Sekunden, optional)
einen Divisor, durch den der Wert geteilt werden soll (optional)
die numerische Ausgabegenauigkeit (z. B. 1.000)
DifferenzwertX ermitteln
Beginnend an der aktuellen Position wird ein numerischer Wert gesucht und die Differenz zu dem bei der letzten Ausführung gefundenen Wert zugewiesen.
Der Parse-Zeiger wird auf das erste Zeichen nach dem gefundenen Wert gesetzt.
RatenwertX ermitteln
Der Ratenwert ist die Differenz zwischen dem aktuellen Wert und dem letzten Wert geteilt durch die Zeit (Sekunden), die zwischen den beiden Messungen vergangen ist:
(Valnow - Vallast) / (tnow - tlast)
Normalerweise wird für diese Berechnung der Zeitstempel der Auftragsausführung herangezogen. Er kann jedoch auch aus der Datei gelesen werden, indem man den Punkt Zeitstempel (Rate) abfragen verwendet (siehe oben)
Wenn die Zeitstempeldifferenz <= 0 ist, wird kein neuer Ratenwert erzeugt.
Hole Zeichenkette WertX
Hiermit kann ein String-Wert aus einer Datei empfangen werden. Verwenden Sie diese Funktion nur für Zeichenketten, die sich nicht oft ändern, d.h. wenn die Zeichenkette eine von wenigen Zeichenketten ist, von denen bekannt ist, dass sie Teil des geparsten Textes sind.
Die Zeichenkette kann mit Hilfe der Konfigurationsfelder, die durch Anklicken der Schaltfläche Einheit zugänglich sind, auf einen numerischen Wert abgebildet werden.
StringX vergleichen
Der Ausdruck (der eine einfache Zeichenkette, aber auch ein regulärer Ausdruck sein kann) wird ausgewertet und als Rückgabewert wird entweder 1(gefunden) oder 0(nicht gefunden) zugewiesen.
Der Name des obigen Rückgabewerts und der Text, der neben dem Rückgabewert angezeigt wird, kann durch Klicken auf die Schaltfläche Enum rechts neben diesem Parameter beeinflusst werden. Dadurch wird der folgende Dialog geöffnet:
der bei erfolgreichem Vergleich im Bereich Werte folgendes anzeigt:
Prüfstatus: 1 (Status ist OK)
anstelle des Standardwerts:
Vergleichsergebnis1: 1 (Gefunden)
Dies ermöglicht die Zuordnung des Rückgabewerts zu einer bestimmten Meldung.Die Sonderzeichen ^ oder $ können verwendet werden, um nach Ausdrücken am Anfang oder Ende einer Zeile zu suchen. Wenn Sie beispielsweise "^AAA" (ohne Anführungszeichen) eingeben, wird "Gefunden" zurückgegeben, wenn die Zeichenfolge "AAA" am Anfang der Zeile steht, jedoch wird " Nicht gefunden" zurückgegeben, wenn die Zeile etwas anderes als "AAA" enthält und damit beginnt. Ebenso findet die Eingabe von "AAA$" die Zeichenfolge nur, wenn sie sich am Ende der Zeile befindet.
Wenn ein Satz von Zeichenketten/Wertkombinationen im Format "1=AAA, 2=BBB" oder "1=AAA,2=BBB,0=*" eingegeben wird und eine Zeichenkette des Satzes nach der aktuellen Position in der aktuellen Zeile gefunden wird, wird die entsprechende Zahl als Ausgabewert zugewiesen (das zweite Beispiel liefert 0 für Zeichenketten, die nicht im Satz enthalten sind). Damit sind mehr Rückgabewerte möglich als die Standardwerte 0 oder 1. Außerdem können diese Rückgabewerte mit Hilfe des Feldes Enum weiter auf Ausgabemeldungen abgebildet werden.
Sonderzeichen, die normalerweise Teil eines regulären Ausdrucks sind, z. B. "(", müssen mit einem Backslash maskiert werden, damit sie korrekt zugeordnet werden können.
Der Parse-Zeiger wird auf das erste Zeichen nach dem ausgewerteten Ausdruck gesetzt, das kein Leerzeichen, Tabulator oder senkrechter Strich (| oder ¦) ist, oder auf die nächste Spalte, wenn ein Begrenzungszeichen definiert wurde.
Anzahl der Übereinstimmungen mit der ZeichenketteX
Wurde ein Zeilenparameter in der obigen Reihenfolge angegeben, werden alle Vorkommen einer Zeichenkette in der aktuellen Zeile gezählt, andernfalls werden alle Vorkommen der Zeichenkette in der gesamten Datei gezählt.
Der Parse-Zeiger wird nicht verschoben.
Text zur Infomeldung
Der Text von der aktuellen Position des Parse-Zeigers bis zum Ende der Zeile wird in die Infomeldung kopiert. Wenn kein Text vorhanden ist, wird der Antwortcode auf 9(Text für Info nicht gefunden) gesetzt und die Ausführung beendet.
Der Parse-Zeiger wird nicht verschoben.
Parsefile-Werte und Alarm Limits
Der Parsefile-Job kann in die Wartungszustände Maintenance OK oder Maintenance Major eintreten, je nachdem, welche anderen Alarm Limits konfiguriert sind. Wenn z.B. das folgende Alarm Limit konfiguriert ist:
Der Job geht in den Zustand Maintenance OK über, wenn der Textvergleich mit einer bestimmten Zeichenkette oder einem Ausdruck übereinstimmt und wenn er sich ansonsten im Zustand OK befindet. Dies kann verwendet werden, um den Job und sein übergeordnetes Gerät (die Wartung wird von einem Job zu seinem Gerät aufwärts propagiert) in den Wartungsmodus zu versetzen, je nachdem, was beim Parsen einer Datei gefunden wird, die Informationen über den Wartungszustand enthält, z. B. von anderen Überwachungssystemen wie Nagios. Alle anderen unten aufgeführten Alarm Limits können auch im Alarm Limit für Wartungen verwendet werden.
Wert / Alarm Limit | Beschreibung |
---|---|
Ereignis1-X | Prüft, ob ein Ereignis auf der Grundlage des obigen Parameters Ereignisfolge festlegen ausgelöst wurde. |
Rückgabewert1-X | Benutzerdefinierter numerischer Wert, basierend auf dem obigen Sequenzparameter Wert holen. |
Rate Wert1-X | Benutzerdefinierter numerischer Ratenwert auf der Grundlage des obigen Sequenzparameters " Get rate value". |
Diff Wert1-X | Benutzerdefinierter numerischer Diff-Wert, basierend auf dem obigen Sequenzparameter Get diff value. |
Zeichenfolge Wert1-X | Benutzerdefinierter String-Wert, basierend auf dem obigen Sequenzparameter "Get string value". |
Ergebnis vergleichen1-X | Benutzerdefinierter Wert, der auf dem obigen Sequenzparameter "Compare string value" basiert. |
Übereinstimmung Zähler1-X | Benutzerdefinierter Wert auf der Grundlage des obigen Sequenzparameters Count string matches. |
Antwortcode | 0 Kein Fehler |
Fehlercode | Generischer Job-Fehlercode (siehe Abschnitt Job-Fehlercodes) |
Parsefile-Beispiele
Beispiel 1 - Parsen einer Datei file.txt, die den folgenden Inhalt hat, um die 3 Werte in den letzten 3 Zeilen zu lesen:
11;OK;33;44.9888;MK;Duration (average): 203.6533s Open cases: 10 8 1
Die Auftragskonfiguration sieht wie folgt aus:
Die Unit-Definition des ersten Get-Wert-Elements lautet:
Die anderen 2 Unit-Definitionen sind ähnlich mit den Namen Minor bzw. Major.
Ausgabe 1
Beispiel 2 - Parsen derselben Datei.txt und Extrahieren von Werten aus der ersten Zeile auf der Grundlage von Spalten
Die Enum-Definition des Elements Vergleichszeichenfolge 1 lautet:
Ganzer Text: 0=Zustand ist gut,1=Zustand ist nicht so gut,2=Zustand ist unbekannt
Die Unit-Definition für Get value 1 lautet:
Beachten Sie die erhöhte Genauigkeit, um numerische Fließkommawerte lesen zu können.
Ausgabe 2
Beispiel 3 - Suchen Sie mit Hilfe von Variablen-Tags nach einer Zeile, die den Namen des Servers enthält. Bleiben Sie in dieser Zeile und ermitteln Sie die Werte MeasurementValue1 und CPU_Usage
Der Inhalt der Datei ist:
Timestamp=Fri Oct 31 09:55:20 CET 2017 ServerName=myserver01;MeasurementValue1=1.11;CPU_Usage=10%;EnumValue1=OK; ServerName=myserver02;MeasurementValue1=1.22;CPU_Usage=22%;EnumValue1=BAD;
Der Name des Geräts ist myserver01.
Die Unit-Definitionen sind:
Die Verwendung von SKOOR Engine-Tags ermöglicht es, Aufträge auf verschiedene Geräte zu kopieren und sie trotzdem unter Verwendung des korrekten Gerätenamens arbeiten zu lassen.
Ausgabe 3
Beispiel 4 - Lesen eines Zeitstempels aus einer regelmäßig erzeugten Datei und Lesen des Ratenwerts, um die Anzahl der ein- und ausgehenden Pakete auf einer Netzwerkschnittstelle zu ermitteln
Die Datei wird regelmäßig mit dem folgenden Inhalt von einem Execute-Job mit dem folgenden Inline-Skriptinhalt erzeugt:
date +%s%N | cut -c1-13 netstat -I=eth0
Die erste Zeile gibt den Zeitstempel (Sekunden seit 1.1.1970) in msec-Genauigkeit aus, die zweite Zeile gibt die Empfangs-/Sendestatistiken auf der Netzwerkschnittstelle eth0 aus. Die erzeugte Datei ist:
1512726065120 Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 5761332 0 0 0 2932100 0 0 0 BMRU
Die Ratenwerte (eingehende und ausgehende Pakete) sind unabhängig von den Ausführungsintervallen des Execute-Jobs und des Parsefile-Jobs. Normalerweise würde man den Execute-Job und den Parse-Job unter einen Batch-Job stellen und ihnen ein Ausführungsintervall von No repetition zuweisen, und nur der Batch-Job hätte ein Ausführungsintervall.
Der Parsefile-Job sieht wie folgt aus:
Die Unit-Definitionen sind:
Ausgabe 4
Die Werte werden nach der zweiten Ausführung des Jobs gedruckt (der Ratenwert braucht einen Vergleich mit der vorherigen Messung):
Beispiel 5 - Erzeugen von Ereignissen aus geparstem Inhalt
Lesen Sie eine durch einen externen Auftrag erzeugte Datei und suchen Sie nach bestimmten Zeichenketten. Erzeugen Sie ein Ereignis1, wenn die Zeichenkette Error gefunden wird. Setzen Sie das Ereignis nach einer bestimmten Zeitspanne zurück. Erzeugen Sie auch ein Ereignis2, wenn die Zeichenkette Process mysqld terminated gefunden wird. Setzen Sie das zweite Ereignis nur zurück, wenn die Zeichenkette Process mysqld started weiter unten in der Datei oder während der nächsten Job-Ausführung gefunden wird.
In diesem Beispiel setzt das erste Element in der Parse-Sequenz den Parameter Syslog-Modus. Dadurch wird sichergestellt, dass nur neue Daten in der Datei geparst werden. Die älteren Teile der Datei, die bei der letzten Auftragsausführung geparst wurden, werden bei nachfolgenden Auftragsausführungen nicht mehr berücksichtigt. Findet der erste Joblauf den String Error in der Datei, setzt er das Event1. Wenn innerhalb der nächsten 10 Jobausführungen (das Jobintervall ist auf 1 Minute eingestellt) keine neuen Fehlerstrings gefunden werden, wird das Ereignis zurückgesetzt.
Der Ereignismechanismus ermöglicht es dem Job, nach einer bestimmten Zeit in den OK-Zustand zurückzukehren, während er weiterhin die Möglichkeit hat, eine Alarm-E-Mail auszulösen, wenn ein Ereignis gesetzt wird.
Die Enum-Definitionen sind:
Die Alarm Limits werden wie folgt konfiguriert: