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
FTP
SFTP
SCP

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)
Dos2unix (für neue Aufträge veraltet: Konvertierung einer von einem Windows-Host geholten Datei in das UNIX/Linux-Format)
Iconv (konvertiert den Inhalt der Datei von einer Kodierung in eine andere, z.B. von ISO-8859-15 in UTF-8 Kodierung. Wenn diese Option gewählt wird, erscheinen zusätzliche Textfelder von und bis, um die gewünschte Kodierung einzugeben).
Benutzerdefinierter Befehl (es erscheint ein zusätzliches Textfeld, in das ein benutzerdefinierter Filter eingegeben werden kann. Der Filter verarbeitet STDIN bis STDOUT. Beispiel: grep -v 'unerwünscht' | sed 's/wrongtext/goodtext/g')

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 verwendet

    • Gehe 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 angeben

        • den 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
-1 Allgemeiner Fehler
1 Datei nicht gefunden
2 Datei zu alt
3 Dateiinhalt zu alt
4 Datei zu lang
5 Zeile nicht gefunden
6 Spalte nicht gefunden
7 Zeichenfolge nicht gefunden
8 Wert nicht gefunden
9 Text für Info nicht gefunden
10 Datei konnte nicht geholt werden
11 Datei konnte nicht transformiert werden

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:

Ausgang 5