EQL: SKOOR Engine Abfragesprache

Mit der SKOOR Engine Query Language EQL kann nach Objekten gesucht oder die aktuell sichtbare Objektliste gefiltert werden. Die Befehlszeile ist standardmäßig ausgeblendet, kann aber je nach Kontext durch Klicken auf die EQL- Schaltfläche in der unteren rechten Ecke des linken oder rechten Fensterbereichs geöffnet/geschlossen werden:


Die EQL-Befehlszeile ist in der Konfigurationsansicht implementiert, kann aber auch in der Suche der Administratoransicht verwendet werden. Um beispielsweise alle ICMP-Jobs unterhalb des aktuellen Objekts anzuzeigen, geben Sie die folgende EQL-Abfrage in das Abfrageeingabefeld ein:

Syntax

COMMAND Object-type WHERE variable Operator value [AND|OR variable Operator value]

BEFEHL

GET / CHECK / START / STOP / DELETE / SET / RESET

Object-type

device, job, SLO, ... oder * für alle

WHERE

Stichwort

Variable

Folgende Variablen benötigen einen String als Wert: Name , subtype , address , netmask , property("propertyname")
Die folgende Variable erfordert einen numerischen Wert: id
Die folgende Variable benötigt als Wert einen Zustand: state

Operator

= , != , ~= , ^= usw. (siehe unten)

Value

Ein String (mit Anführungszeichen "..." ), eine Zahl (ohne Anführungszeichen) oder ein Zustand (ohne Anführungszeichen).
Strings (in Anführungszeichen) werden wie C-Strings geparst und müssen auf die gleiche Weise maskiert werden. Der Regex "\d{2}$" muss als "\\d{2}$" anteriert werden. \n , \b usw. können ebenfalls verwendet werden ( "\n" wird verwendet, um einem "newline" zu entkommen ).

AND / OR

Schlüsselwort für mehrere WHERE Bedingungen

EQL-Befehle

GET

Objekte auflisten

Zusätzliche EQL-Befehle für Jobs

Befehl

Funktion

CHECK

Führen Sie die Operation " check now " für Jobs aus

START

Job(s) starten

STOP

Job(s) stoppen

DELETE

Job(s) löschen (nur für Benutzer vom Typ Administrator )

SET TO OK

Setzen Sie den Status des/der Jobs auf OK

SET TO WARNING

Setzen Sie den Status des/der Jobs auf „ Warning “.

SET TO MINOR

Stellen Sie den Status des/der Jobs auf Minor ein

SET TO NO DATA

Setzen Sie den Status des/der Jobs auf „ No Data “.

SET TO MAJOR

Stellen Sie den Status des/der Jobs auf „ Major “ ein

SET TO UNDEFINED

Stellen Sie den Status des/der Jobs auf „ Undefined “ ein

SET TO MAINTENANCE OK

Setzen Sie den Status des/der Jobs auf Maintenance OK

SET TO MAINTENANCE WARNING

Setzen Sie den Status des/der Jobs auf Maintenance Warning

SET TO MAINTENANCE MINOR

Stellen Sie den Status der Jobs auf Maintenance Minor ein

SET TO MAINTENANCE NO DATA

Stellen Sie den Status des/der Jobs auf Maintenance No Data ein

SET TO MAINTENANCE MAJOR

Stellen Sie den Status des/der Jobs auf „ Maintenance Major “ ein

RESET

Setzen Sie den Status von Jobs auf ihren ursprünglichen Status zurück


Wenn eine CHECK Befehlsabfrage mehr als 50 Jobs findet, führt sie check now für die ersten 50 Jobs aus und plant die restlichen gefundenen Jobs so ein, dass sie im Hintergrund überprüft werden, um die Synchronisierung zu vieler Jobs zu vermeiden.

Nach dem Ausführen von zB CHECK job WHERE subtype="icmp" wird die Kommandozeile automatisch auf GET job WHERE subtype="icmp" .

Alle oben genannten Befehle arbeiten rekursiv, was bedeutet, dass alle Objekte unterhalb des aktuell ausgewählten Objekts, die den Kriterien entsprechen, bearbeitet werden.

EQL- Operatoren

=

gleich

!=

ist nicht gleich

>=

größer als oder gleich

>

größer als

<=

weniger als oder gleich

<

weniger als

Zusätzliche Operatoren für Strings

~=

Streichhölzer

^=

beginnt mit

~~

enthält

$=

endet mit

!~

stimmt nicht überein

!^

beginnt nicht mit

!!

beinhaltet nicht

!$

endet nicht mit

Zusätzliche Operatoren für Eigenschaften

is defined

is not defined

Zusätzliche Operatoren für Jobs und Scheduler

is stopped

ist gestoppt

is not stopped

ist gestartet

EQL-Beispiele

Befehl

Funktion

GET *

alle Objekte (Standard)

GET job

alle Jobs

GET device

alle Geräte

GET * where id = 10

alle Objekte mit id 10

GET * WHERE name = "foo"

alle Objekte mit name "foo"

GET job WHERE name ^= "client-"

alles   Jobs, deren name mit "client" beginnt

GET job WHERE name $= "-snmp"

alle Jobs, deren name auf "-snmp" endet

GET job WHERE state != ok

alle Jobs mit Status nicht OK

GET slo WHERE name ~~ "DNS"

alle SLOs, bei denen der name "DNS" enthält

GET job WHERE subtype = "icmp"

alle ICMP-Jobs

GET job WHERE execution is not stopped

alle aktuell begonnenen Jobs

GET job WHERE name ~~ "Mail" AND subtype = "Imap"

alle IMAP-Jobs, deren name "Mail" enthält

GET device WHERE address = "10.1.0.155"

alle Geräte mit address "10.1.0.155"

GET device WHERE address ^= "10.1.1"

alle Geräte, bei denen das address mit "10.1.1" beginnt

GET device WHERE state = no data

  alle Geräte im Zustand No Data

GET device WHERE name ~= "\\d{2}$"

alle Geräte, bei denen der name mit dem regulären Ausdruck übereinstimmt

GET slo WHERE state = minor OR state = major

alle SLOs in den Zuständen Minor oder Major

GET device WHERE property("owner") = "Joe"

alle Geräte, deren Property owner mit "Joe" übereinstimmt

GET job WHERE property("service_kpi") IS DEFINED

alle Jobs, bei denen die Eigenschaft service_kpi gesetzt ist

GET device WHERE property("Green, Blue or Red") = "Red"

alle Geräte

GET scheduler WHERE execution is stopped

alle angehaltenen Planer

START job WHERE subtype = icmp

Starten Sie alle ICMP-Jobs

STOP job WHERE name ^= "server"

Stoppen Sie alle Jobs, deren Name mit "server" beginnt

SET TO OK job WHERE subtype = "execute"

Setzen Sie alle Ausführungsjobs auf den Status OK

SET TO MAINTENANCE MAJOR job where subtype="parsefile"

Setzen Sie alle Parsefile-Jobs auf den Status „ Maintenance Major “.


Mit EQL kann man einfach eine Reihe von Objekten unterhalb einer Gruppe oder eines SLO verknüpfen.

Beispiel: Verknüpfen Sie alle Router und Switches mit dem Dienst SLO /root/Customer/Services/SLOs/Network

  1. Wählen Sie Edit dependency aus der Dropdown-Liste des SLO -Netzwerkdiensts aus

  2. Navigieren Sie im Fenster auf der rechten Seite zu /root/Customer/Devices

  3. Klicken Sie auf die EQL-Schaltfläche in der unteren rechten Ecke des Fensters auf der rechten Seite

  4. Geben Sie die Suchanfrage ein: GET device WHERE subtype = "router" OR subtype = "switch"

  5. Wählen Sie alle Geräte aus, indem Sie auf das oberste Kontrollkästchen klicken

  6. Klicken Sie auf einen der Pfeile links. Alle Geräte sollten nun im linken Fenster sichtbar sein

  7. Bestätigen Sie mit einem Klick auf die Schaltfläche OK


Schnellsuche mit EQL Operatoren

Die folgenden EQL- Operatoren sind auch für die Suche im SKOOR Engine -Schnellsuche in der Kopfzeile der Konfigurationsansicht von SKOOR Engine :

=

gleich

!=

ist nicht gleich

~=

Streichhölzer

^=

beginnt mit

~~

enthält

$=

endet mit

!~

stimmt nicht überein

!^

beginnt nicht mit

!!

beinhaltet nicht

!$

endet nicht mit

Beispiele:

Suchbegriff

Durchsucht alle

id=15

Objekte, bei denen die id 15 ist

addr=192.168.1.2

Geräte mit einer bestimmten Adresse

=dns01

Objekte mit name = "dns01"

^=dns

Objekte, deren name mit "dns" beginnt

$=01

Objekte mit name , die auf "01" enden

!$01

Objekte, deren name nicht auf "01" enden

!!dns

Objekte mit name , die "dns" nicht enthalten

~=DNS.*ch

Objekte mit name , die "DNS" "ch" enthalten

~=^DNS.*ch$

Objekte, deren name mit "DNS" beginnt und mit "ch" endet

~=dns\d\d$

Objekte mit name , die "dns" gefolgt von 2 Ziffern enthalten