EQL: Linguaggio di interrogazione dello SKOOR Engine

È possibile cercare oggetti o filtrare l'elenco degli oggetti attualmente visibili utilizzando il linguaggio di query 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 in basso a destra 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 ricerca della vista di amministrazione. Ad esempio, per visualizzare tutti i lavori ICMP al di sotto dell'oggetto corrente, immettere la seguente query EQL nel campo di immissione della query:

Sintassi

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

COMMAND

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 seguente variabile richiede un valore numerico:id
La seguente variabile richiede uno stato come valore: state

Operator

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

Value

Una stringa (tra virgolette "..."), un numero (senza virgolette) o uno stato (senza virgolette).
Le stringhe (tra virgolette) vengono analizzate come stringhe C e devono essere sottoposte a escape allo stesso modo. L'espressione regolare "\d{2}$" deve essere inserita come "\\d{2}$". È possibile utilizzare anche \n , \b ecc. ("\n" viene utilizzato per sottoporre a escape un "newline").

AND / OR

Parola chiave per condizioni multiple WHERE

Comandi EQL

GET

elenco oggetti

Comandi EQL aggiuntivi per i lavori

Comando

Funzione

CHECK

Esegue un'operazione "check now" sui lavori

START

Avvia processo/i

STOP

Interrompere i lavori

DELETE

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

SET TO OK

Impostare lo stato dei lavori su "OK"

SET TO WARNING

Impostare lo stato dei lavori su "Warning"

SET TO MINOR

Imposta lo stato dei lavori su "Minor"

SET TO NO DATA

Imposta lo stato dei lavori su "No Data"

SET TO MAJOR

Imposta lo stato dei lavori su "Major"

SET TO UNDEFINED

Imposta lo stato dei lavori su "Undefined"

SET TO MAINTENANCE OK

Imposta lo stato dei lavori su "Maintenance OK"

SET TO MAINTENANCE WARNING

Imposta lo stato dei lavori su "Maintenance Warning"

SET TO MAINTENANCE MINOR

Imposta lo stato dei lavori su "Maintenance Minor"

SET TO MAINTENANCE NO DATA

Imposta lo stato dei lavori su "Maintenance No Data"

SET TO MAINTENANCE MAJOR

Imposta lo stato dei lavori su "Maintenance Major"

RESET

Reimposta lo stato dei lavori al loro stato originale


Se una query del comando CHECK trova più di 50 lavori, eseguirà check now sui primi 50 lavori e pianificherà il resto dei lavori trovati in modo che vengano controllati 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 sopra indicati funzionano in modo ricorsivo, il che significa che vengono eseguiti su tutti gli oggetti al di sotto dell'oggetto attualmente selezionato che corrispondono ai criteri.

Operatori EQL

=

uguale a

!=

non uguale

>=

maggiore o uguale

>

maggiore di

<=

minore o uguale

<

minore di

Operatori aggiuntivi per stringhe

~=

corrisponde

^=

inizia con

~~

contiene

$=

finisce 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

è arrestato

is not stopped

è avviato

Esempi 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 termina 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 in cui il campo address inizia con "10.1.1"

GET device WHERE state = no data

 tutti i dispositivi nello 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 a "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"

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

SET TO OK job WHERE subtype = "execute"

impostare tutti i lavori in esecuzione allo stato OK

SET TO MAINTENANCE MAJOR job where subtype="parsefile"

impostare tutti i lavori di analisi dei file allo 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.  Passare a /root/Customer/Devices nella finestra sul lato destro

  3. Fare clic sul pulsante EQL nell'angolo in basso a destra della finestra sul lato destro

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

  5. Seleziona 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 a sinistra

  7. Confermare facendo clic sul pulsante OK


Ricerca rapida con operatori EQL

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

 =

uguale a

!=

non uguale

~=

corrisponde

^=

inizia con

~~

contiene

$=

finisce con

!~

non corrisponde

!^

non inizia con

!!

non contiene

!$

non termina con

Esempi:

Stringa di ricerca

Cerca tutti gli

id=15

oggetti in cui l'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 con "01"

!!dns

oggetti con name che non contengono "dns"

~=DNS.*ch

oggetti con name contenenti "DNS" "ch"

~=^DNS.*ch$

oggetti con name che iniziano con "DNS" e terminano con "ch"

~=dns\d\d$

oggetti con name contenenti "dns" seguiti da 2 cifre