EQL : langage de requête SKOOR Engine

Les objets peuvent être recherchés ou la liste d'objets actuellement visible peut être filtrée à l'aide du SKOOR Engine Query Language EQL . La ligne de commande est masqué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 selon le contexte :


La ligne de commande EQL est implémentée dans la vue de configuration mais peut également être utilisée dans la recherche de la vue d'administration. Par exemple, pour afficher tous les travaux 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 nécessitent une chaîne comme valeur : Name , subtype , address , netmask , property("propertyname")
La variable suivante requiert une valeur numérique : id
La variable suivante nécessite un état comme valeur : state

Operator

= , != , ~= , ^= , etc. (voir ci-dessous)

Value

Une chaîne (avec 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 saisie comme "\\d{2}$" . \n , \b etc. peuvent également être utilisés ( "\n" est utilisé pour échapper à un "newline" ).

AND / OR

Mot-clé pour plusieurs conditions WHERE

Commandes EQL

GET

lister les objets

Commandes EQL supplémentaires pour les tâches

Commande

Une fonction

CHECK

Exécuter l'opération de check now immédiate sur les tâches

START

Commencer le(s) travail(s)

STOP

Arrêter le(s) travail(s)

DELETE

Supprimer le(s) travail(s) (uniquement pour les utilisateurs de type Administrateur )

SET TO OK

Définissez l'état de la ou des tâches sur OK

SET TO WARNING

Définissez l'état de la ou des tâches sur Warning

SET TO MINOR

Définissez l'état du ou des travaux sur Minor

SET TO NO DATA

Définissez l'état du ou des travaux sur No Data

SET TO MAJOR

Définissez l'état du ou des travaux sur Major

SET TO UNDEFINED

Définissez l'état de la ou des tâches sur Undefined défini

SET TO MAINTENANCE OK

Définissez l'état du ou des travaux sur Maintenance OK

SET TO MAINTENANCE WARNING

Définissez l'état du ou des travaux sur Maintenance Warning

SET TO MAINTENANCE MINOR

Définissez l'état de la ou des tâches sur Maintenance Minor

SET TO MAINTENANCE NO DATA

Définissez l'état du ou des travaux sur Maintenance No Data

SET TO MAINTENANCE MAJOR

Définissez l'état du ou des travaux sur Maintenance Major

RESET

Réinitialiser l'état des tâches à leur état d'origine


Si une requête de commande CHECK trouve plus de 50 travaux, elle exécutera la check now sur les 50 premiers travaux et planifiera 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 sous l'objet actuellement sélectionné qui correspondent aux critères sont traités.

Opérateurs operateurs

=

équivaut à

!=

n'est pas égal

>=

Meilleur que ou égal

>

plus grand que

<=

inférieur ou égal

<

moins que

operateurs supplémentaires pour les chaînes

~=

allumettes

^=

commence avec

~~

contient

$=

se termine par

!~

ne correspond pas

!^

ne commence pas par

!!

ne contient pas

!$

ne se termine pas par

operateurs supplémentaires pour les propriétés

is defined

is not defined

operateurs supplémentaires pour les travaux et les ordonnanceurs

is stopped

est arrêté

is not stopped

a démarré

Exemples EQL

Commande

Une fonction

GET *

tous les objets (par défaut)

GET job

tous les emplois

GET device

tous les dispositifs

GET * where id = 10

tous les objets avec id 10

GET * WHERE name = "foo"

tous les objets avec le name "foo"

GET job WHERE name ^= "client-"

tout   travaux dont le name commence par "client"

GET job WHERE name $= "-snmp"

tous les jobs dont le 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 dont le name contient "DNS"

GET job WHERE subtype = "icmp"

tous les emplois ICMP

GET job WHERE execution is not stopped

tous les travaux actuellement commencés

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

toutes les tâches IMAP dont le name contient "Mail"

GET device WHERE address = "10.1.0.155"

tous les appareils avec address "10.1.0.155"

GET device WHERE address ^= "10.1.1"

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

GET device WHERE state = no data

  tous les appareils dans l'état No Data

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

tous les appareils dont le 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 appareils dont le 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 dispositifs

GET scheduler WHERE execution is stopped

tous les planificateurs arrêtés

START job WHERE subtype = icmp

démarrer toutes les tâches ICMP

STOP job WHERE name ^= "server"

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

SET TO OK job WHERE subtype = "execute"

définir tous les travaux d'exécution sur l'état OK

SET TO MAINTENANCE MAJOR job where subtype="parsefile"

définir toutes les tâches de fichier d'analyse sur l'état Maintenance Major


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

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

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

  2. Accédez à /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 sur le côté droit

  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. Validez en cliquant sur le bouton OK


Recherche rapide avec les opérateurs operateurs

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

=

équivaut à

!=

n'est pas égal

~=

allumettes

^=

commence avec

~~

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 tout

id=15

objets dont l' id est 15

addr=192.168.1.2

appareils avec une adresse spécifique

=dns01

objets avec le name = "dns01"

^=dns

objets dont le name commence par "dns"

$=01

objets dont le name se termine par "01"

!$01

objets dont le name ne se termine pas par "01"

!!dns

objets dont le name ne contient pas "dns"

~=DNS.*ch

objets dont le name contient "DNS" "ch"

~=^DNS.*ch$

objets dont le name commence par "DNS" et se termine par "ch"

~=dns\d\d$

objets dont le name contient "dns" suivi de 2 chiffres