EQL : SKOOR Engine Query Language (langage d'interrogation du moteur)

Les objets peuvent être recherchés ou la liste d'objets actuellement visible peut être filtrée en utilisant le langage de requête EQL de SKOOR Engine. La ligne de commande est cachée par défaut mais peut être ouverte/fermée en cliquant sur le bouton EQL dans le coin inférieur droit du volet gauche ou droit de la fenêtre en fonction du contexte :


La ligne de commande EQL est mise en œuvre dans la vue de configuration, mais peut également être utilisée dans la vue de recherche de l'administrateur. Par exemple, pour afficher toutes les tâches ICMP sous l'objet actuel, saisissez la requête EQL suivante dans le champ de saisie de la requête :

Syntaxe

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

COMMANDE

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

Object-type

device, job, SLO, ... ou * pour tout

WHERE 

Mot clé

Variable

Les variables suivantes requièrent une chaîne de caractères comme valeur : Name, subtype, address, netmask, property("propertyname")
La variable suivante requiert une valeur numérique : id
La variable suivante requiert un état comme valeur : state

Operator

=, !=, ~=, ^=, etc.

Value

Une chaîne de caractères (entre guillemets "..."), un nombre (sans guillemets) ou un état (sans guillemets).
Les chaînes (entre guillemets) sont analysées comme des chaînes C et doivent être échappées de la même manière. La regex "\d{2}$" doit être analysée comme "\\d{2}$". \n \b etc. peut également être utilisée ("\n" est utilisé pour échapper à "newline").

AND / OR

Mot-clé pour plusieurs conditions WHERE

Commandes EQL

GET

objets de la liste

Commandes EQL supplémentaires pour les emplois

Commande

Fonction

CHECK

Exécuter l'opération check now sur les travaux

START

Démarrer le(s) job(s)

STOP

Arrêter le(s) travail(s)

DELETE

Supprimer un ou plusieurs travaux (uniquement pour les utilisateurs de type Administrateur)

SET TO OK

Régler l'état du ou des travaux sur OK

SET TO WARNING

Définir l'état du ou des travaux à Warning

SET TO MINOR

Régler l'état des travaux sur Minor

SET TO NO DATA

Définir l'état du/des travail(s) à No Data

SET TO MAJOR

Définir l'état de la/des fonction(s) à Major

SET TO UNDEFINED

Définir l'état de l'emploi (des emplois) à Undefined

SET TO MAINTENANCE OK

Définir l'état de l'emploi (des emplois) à Maintenance OK

SET TO MAINTENANCE WARNING

Définir l'état de l'emploi (des emplois) à Maintenance Warning

SET TO MAINTENANCE MINOR

Définir l'état de l'emploi (des emplois) à Maintenance Minor

SET TO MAINTENANCE NO DATA

Définir l'état de l'emploi (des emplois) à Maintenance No Data

SET TO MAINTENANCE MAJOR

Régler l'état du/des travail(s) sur Maintenance Major

RESET

Réinitialiser l'état des travaux à leur état d'origine


CHECK Si une requête de commande Scheduler trouve plus de 50 travaux, elle exécutera check now sur les 50 premiers travaux et programmera le reste des travaux trouvés pour qu'ils soient vérifiés en arrière-plan afin d'éviter la synchronisation d'un trop grand nombre de travaux.

Après avoir exécuté, par exemple, CHECK job WHERE subtype="icmp", la ligne de commande est automatiquement remplacée par GET job WHERE subtype="icmp".

Toutes les commandes ci-dessus fonctionnent de manière récursive, ce qui signifie que tous les objets situés en dessous de l'objet sélectionné et correspondant aux critères sont pris en compte.

Opérateurs EQL

=

égal

!=

n'est pas égal

>=

supérieur ou égal

>

supérieur à

<=

inférieur ou égal

<

inférieur à

Opérateurs supplémentaires pour les chaînes de caractères

~=

correspond

^=

commence par

~~

contient

$=

se termine par

!~

ne correspond pas

!^

ne commence pas par

!!

ne contient pas

!$

ne se termine pas par

Opérateurs supplémentaires pour les propriétés

is defined

is not defined

Opérateurs supplémentaires pour les emplois et les Schedulers

is stopped

est arrêté

is not stopped

est démarré

Exemples EQL

Commande

Fonction

GET *

tous les objets (par défaut)

GET job

tous les travaux

GET device

tous les appareils

GET * where id = 10

tous les objets avec id 10

GET * WHERE name = "foo"

tous les objets avec name "foo"

GET job WHERE name ^= "client-"

tous les travaux dont le site name commence par "client"

GET job WHERE name $= "-snmp"

tous les travaux dont name se termine par "-snmp"

GET job WHERE state != ok

tous les travaux dont l'état n'est pas OK

GET slo WHERE name ~~ "DNS"

tous les SLO où name contient "DNS"

GET job WHERE subtype = "icmp"

tous les travaux ICMP

GET job WHERE execution is not stopped

tous les travaux en cours

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

tous les travaux IMAP dont name contient "Mail"

GET device WHERE address = "10.1.0.155"

tous les dispositifs avec address "10.1.0.155"

GET device WHERE address ^= "10.1.1"

tous les appareils dont le champ address commence par "10.1.1"

GET device WHERE state = no data

tous les appareils en état No Data

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

tous les dispositifs pour lesquels name correspond à l'expression régulière

GET slo WHERE state = minor OR state = major 

tous les SLO dans les états Minor ou Major

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

tous les dispositifs dont la propriété owner correspond "Joe"

GET job WHERE property("service_kpi") IS DEFINED

tous les travaux dont la propriété service_kpi est définie

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

tous les appareils

GET scheduler WHERE execution is stopped

tous les Scheduler arrêtés

START job WHERE subtype = icmp

démarrer tous les travaux ICMP

STOP job WHERE name ^= "server"

arrêter tous les travaux dont le nom commence par "server"

SET TO OK job WHERE subtype = "execute"

set all execute jobs to state OK

SET TO MAINTENANCE MAJOR job where subtype="parsefile"

set all parsefile jobs to state (définir l'état de tous les travaux d'analyse de fichiers) Maintenance Major


En utilisant EQL, on peut facilement lier un ensemble d'objets sous un groupe ou un SLO.

Exemple : Lier tous les routeurs et commutateurs au service SLO /root/Customer/Services/SLOs/Network

  1. Choisissez Edit dependency dans la liste déroulante du service SLO Network.

  2. Naviguez jusqu'à /root/Customer/Devices dans la fenêtre de droite.

  3. Cliquez sur le bouton EQL dans le coin inférieur droit de la fenêtre de droite.

  4. Saisissez la requête de recherche : GET device WHERE subtype = "router" OR subtype = "switch"

  5. Sélectionnez tous les appareils en cliquant sur la case à cocher la plus haute.

  6. Cliquez sur l'une des flèches à gauche. Tous les appareils devraient maintenant être visibles dans la fenêtre de gauche.

  7. Confirmez en cliquant sur le bouton OK.


Recherche rapide avec les opérateurs EQL

Les opérateurs EQL suivants sont également disponibles pour la recherche dans la boîte de texte de recherche rapide de SKOOR Engine dans l'en-tête de la vue de configuration de SKOOR Engine :

=

est égal à

!=

n'est pas égal à

~=

correspond

^=

commence par

~~

contient

$=

se termine par

!~

ne correspond pas

!^

ne commence pas par

!!

ne contient pas

!$

ne se termine pas par

Exemples :

Chaîne de recherche

Recherche tous les objets

id=15

objets dont l'adresse id est 15

addr=192.168.1.2

appareils avec une adresse spécifique

=dns01

objets avec name = "dns01"

^=dns

objets dont l'adresse name commence par "dns"

$=01

objets dont l'adresse name se termine par "01"

!$01

objets avec name ne se terminant pas par "01"

!!dns

objets avec name ne contenant pas "dns"

~=DNS.*ch

objets avec name contenant "DNS" "ch"

~=^DNS.*ch$

objets avec name commençant par "DNS" et se terminant par "ch"

~=dns\d\d$

objets avec name contenant "dns" suivi de 2 chiffres