EQL: Linguaggio di interrogazione dello SKOOR Engine

Gli oggetti possono essere cercati o l'elenco degli oggetti attualmente visibili può essere filtrato usando lo SKOOR Engine Query Language EQL. La riga di comando è nascosta per impostazione predefinita, ma può essere aperta/chiusa facendo clic sul pulsante EQL nell'angolo inferiore destro del riquadro sinistro o destro della finestra, a seconda del contesto:


La riga di comando EQL è implementata nella vista di configurazione, ma può essere utilizzata anche nella vista di ricerca dell'amministratore. Ad esempio, per visualizzare tutti i lavori ICMP al di sotto dell'oggetto corrente, inserire la seguente query EQL nel campo di immissione della query:

Sintassi

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

COMANDO

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

Object-type

device, job, SLO, ... o * per qualsiasi

WHERE 

Parola chiave

Variable

Le seguenti variabili richiedono una stringa come valore: Name, subtype, address, netmask, property("propertyname")
La variabile seguente richiede un valore numerico: id
La variabile seguente richiede come valore uno stato: state

Operator

=, !=, ~=, ^=, ecc. (vedi sotto)

Value

Una stringa (con le virgolette "..."), un numero (senza virgolette) o uno stato (senza virgolette).
Le stringhe (tra virgolette) vengono analizzate come le stringhe C e devono essere evase allo stesso modo. La regex "\d{2}$" deve essere antergata come "\\d{2}$". \n, \b ecc. può anche essere usata ("\n" è usato per sfuggire a un "newline").

AND / OR

Parola chiave per condizioni multiple WHERE

Comandi EQL

GET

elencare gli oggetti

Comandi EQL aggiuntivi per i lavori

Comando

Funzione

CHECK

Eseguire l'operazione check now sui lavori

START

Avvia i lavori

STOP

Arresto dei lavori

DELETE

Cancellare i lavori (solo per gli utenti di tipo Amministratore)

SET TO OK

Impostare lo stato del/i lavoro/i su OK

SET TO WARNING

Impostare lo stato del/i lavoro/i su Warning

SET TO MINOR

Impostare lo stato del/dei lavoro/i su Minor

SET TO NO DATA

Impostare lo stato del/i lavoro/i su No Data

SET TO MAJOR

Impostare lo stato del/i lavoro/i su Major

SET TO UNDEFINED

Impostare lo stato del/i lavoro/i su Undefined

SET TO MAINTENANCE OK

Impostare lo stato del/i lavoro/i su Maintenance OK

SET TO MAINTENANCE WARNING

Impostare lo stato del/i lavoro/i su Maintenance Warning

SET TO MAINTENANCE MINOR

Impostare lo stato del/i lavoro/i su Maintenance Minor

SET TO MAINTENANCE NO DATA

Impostare lo stato del/i lavoro/i su Maintenance No Data

SET TO MAINTENANCE MAJOR

Impostare lo stato del/i lavoro/i su Maintenance Major

RESET

Ripristinare lo stato dei lavori al loro stato originale.


Se una query di comando CHECK trova più di 50 lavori, eseguirà check now sui primi 50 lavori e programmerà il resto dei lavori trovati per farli controllare in background, per evitare la sincronizzazione di troppi lavori.

Dopo aver eseguito, ad esempio, CHECK job WHERE subtype="icmp", la riga di comando viene automaticamente modificata in GET job WHERE subtype="icmp".

Tutti i comandi di cui sopra funzionano in modo ricorsivo, il che significa che tutti gli oggetti al di sotto dell'oggetto attualmente selezionato che corrispondono ai criteri vengono eseguiti.

Operatori EQL

=

uguale

!=

non è uguale

>=

maggiore di o uguale

>

maggiore di

<=

minore o uguale

<

minore di

Operatori aggiuntivi per le stringhe

~=

corrisponde a

^=

inizia con

~~

contiene

$=

termina con

!~

non corrisponde

!^

non inizia con

!!

non contiene

!$

non termina con

Operatori aggiuntivi per le proprietà

is defined

is not defined

Operatori aggiuntivi per lavori e Scheduler

is stopped

viene fermato

is not stopped

è avviato

Esempi di EQL

Comando

Funzione

GET *

tutti gli oggetti (impostazione predefinita)

GET job

tutti i lavori

GET device

tutti i dispositivi

GET * where id = 10

tutti gli oggetti con id 10

GET * WHERE name = "foo"

tutti gli oggetti con name "foo"

GET job WHERE name ^= "client-"

tutti i lavori il cui name inizia con "client"

GET job WHERE name $= "-snmp"

tutti i lavori il cui name finisce con "-snmp"

GET job WHERE state != ok

tutti i lavori con stato non OK

GET slo WHERE name ~~ "DNS"

tutti gli SLO in cui name contiene "DNS"

GET job WHERE subtype = "icmp"

tutti i lavori ICMP

GET job WHERE execution is not stopped

tutti i lavori attualmente avviati

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

tutti i lavori IMAP il cui name contiene "Mail"

GET device WHERE address = "10.1.0.155"

tutti i dispositivi con address "10.1.0.155"

GET device WHERE address ^= "10.1.1"

tutti i dispositivi il cui campo address inizia con "10.1.1"

GET device WHERE state = no data

tutti i dispositivi in stato No Data

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

tutti i dispositivi in cui name corrisponde all'espressione regolare

GET slo WHERE state = minor OR state = major 

tutti gli SLO negli stati Minor o Major

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

tutti i dispositivi la cui proprietà owner corrisponde "Joe"

GET job WHERE property("service_kpi") IS DEFINED

tutti i lavori che hanno la proprietà service_kpi impostata

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

tutti i dispositivi

GET scheduler WHERE execution is stopped

tutti gli Scheduler arrestati

START job WHERE subtype = icmp

avvia tutti i lavori ICMP

STOP job WHERE name ^= "server"

arresta tutti i lavori il cui nome inizia con "server"

SET TO OK job WHERE subtype = "execute"

imposta tutti i lavori execute sullo stato OK

SET TO MAINTENANCE MAJOR job where subtype="parsefile"

imposta tutti i lavori parsefile sullo stato Maintenance Major


Utilizzando EQL è possibile collegare facilmente un insieme di oggetti sotto un gruppo o uno SLO.

Esempio: Collegare tutti i router e gli switch al servizio SLO /root/Customer/Services/SLOs/Network

  1. Scegliere Edit dependency dall'elenco a discesa del servizio SLO Network.

  2. Spostarsi su /root/Customer/Devices nella finestra a destra.

  3. Fare clic sul pulsante EQL nell'angolo inferiore destro della finestra sul lato destro.

  4. Inserire la query di ricerca: GET device WHERE subtype = "router" OR subtype = "switch"

  5. Selezionare tutti i dispositivi facendo clic sulla casella di controllo in alto.

  6. Fare clic su una delle frecce a sinistra. Tutti i dispositivi dovrebbero ora essere visibili nella finestra di sinistra.

  7. Confermare facendo clic sul pulsante OK.


Ricerca rapida con gli operatori EQL

I seguenti operatori EQL sono disponibili anche per la ricerca nella casella di testo della ricerca rapida di SKOOR Engine nell'intestazione della vista di configurazione di SKOOR Engine:

=

uguale

!=

non è uguale

~=

corrisponde

^=

inizia con

~~

contiene

$=

finisce con

!~

non corrisponde

!^

non inizia con

!!

non contiene

!$

non finisce con

Esempi:

Stringa di ricerca

Cerca tutti gli oggetti

id=15

in cui l'indirizzo id è 15

addr=192.168.1.2

dispositivi con un indirizzo specifico

=dns01

oggetti con name = "dns01"

^=dns

oggetti con name che inizia con "dns"

$=01

oggetti con name che termina con "01"

!$01

oggetti con name che non terminano in "01"

!!dns

oggetti con name non contenenti "dns"

~=DNS.*ch

oggetti con name che contengono "DNS" "ch"

~=^DNS.*ch$

oggetti con name che iniziano con "DNS" e finiscono in "ch"

~=dns\d\d$

oggetti con name contenenti "dns" seguito da 2 cifre