Moteur engine-action
(Go, Core)¶
Le moteur engine-action
permet de déclencher conditionnellement des actions sur des alarmes.
Les actions sont définies dans la collection MongoDB default_action
et peuvent être ajoutées et modifiées avec l'API Action.
Utilisation¶
En édition Core, la file du moteur est placée juste après le moteur engine-axe
.
En édition CAT, la file du moteur est placée juste après le moteur engine-webhook
.
Options du moteur¶
La commande engine-action -help
liste toutes les options acceptées par le moteur.
Fonctionnement¶
Types d'action¶
Les types d'actions disponibles sont :
changestate
, qui correspond à un évènementchangestate
: change et verrouille la criticité de l'alarme jusqu'à sa résolution.pbehavior
, met en place un comportement périodique.snooze
, qui correspond à un évènementsnooze
: pose une mise en veille automatique sur l'alarme.ack
, qui correspond à un événementack
: pose un acquittement sur l'alarme.ackremove
, qui correspond à un événementackremove
: supprime l'acquittement sur l'alarme.assocticket
, qui correspond à un événementassocticket
: associe un ticket à l'alarme.declareticket
, qui correspond à un événementdeclareticket
: déclarer un ticket pour l'alarme.cancel
, qui correspond à un événementackremove
: annule l'alarme.
Paramètres généraux¶
Une action est composée d'un JSON contenant les paramètres suivants :
_id
: optionnel. Identifiant de l'action. S'il n'est pas fourni par l'utilisateur il sera généré automatiquement. Le champ est de typestring
.type
: obligatoire. Type d'action (voir section précédente). Ce champ est de typestring
.parameters
: obligatoire. Paramétrage spécifique à chaque type d'action.delay
: optionnel. Délai avant l'exécution de l'action. Les unités acceptées sont celles utilisées par le langage Golang soits
,m
,h
pour secondes, minutes et heures respectivement. Le champ est de typestring
.hook
: obligatoire. Il est composé des paramètres suivants :patterns
: optionnel. Conditions sur les champs des alarmes (alarm_patterns
), des entités (entity_patterns
) ou des évènements (event_patterns
) dans lesquelles l'action doit être appelée.triggers
: obligatoire. Ils servent comme point de déclenchement pour les actions automatisées, en général lors de la réception d'un évènement.
Attention
Les triggers
declareticketwebhook
, resolve
et unsnooze
n'étant pas déclenchés par des évènements, ils ne sont pas utilisables avec les event_patterns
.
Paramètres spécifiques¶
Changestate¶
state
: obligatoire. Criticité dans laquelle sera verrouillée l'alarme (0 : Info, 1 : Minor, 2 : Major, 3 : Critical). Le champ est de typeinteger
.output
: optionel. Commentaire du changestate. Le champ est de typestring
.author
: optionel. Auteur du changestate. Le champ est de typestring
.
PBehavior¶
rrule
: optionnel. Règle de récurrence pour le pbehavior. Le champ est de typestring
.enabled
: obligatoire. Détermine si le pbehavior est actif ou non. Le champ est de typeboolean
.author
: obligatoire. Auteur du pbehavior. Le champ est de typestring
.name
: obligatoire. Nom du pbehavior. Le champ est de typestring
.tstart
: obligatoire. Date de début du pbehavior. Le champ est de typeinteger
en UNIX timestamp.tstop
: obligatoire. Date de fin du pbehavior. Le champ est de typeinteger
en UNIX timestamp.type_
: obligatoire. Type du pbehavior. Le champ est de typestring
.reason
: obligatoire. Raison du pbehavior. Le champ est de typestring
.timezone
: optionnel. Timezone du pbehavior. Le champ est de typestring
.comments
: optionnel. Commentaire du pbehavior. Le champ est de typearray
.author
: optionnel. Auteur du commentaire. Le champ est de typestring
.message
: optionnel. Commentaire du pbehavior. Le champ est de typestring
.exdate
: optionnel. Date d'expiration, peut être composée de plusieurs valeurs. Le champ est de typeinteger
en UNIX timestamp.
Snooze¶
message
: optionnel. Commentaire de la mise en veille. Le champ est de typestring
.duration
: optionnel. Durée de la mise en veille en secondes. Le champ est de typeinteger
.author
: optionnel. Auteur de la mise en veille. Le champ est de typestring
.
Ack¶
output
: optionnel. Commentaire de l'acquittement. Le champ est de typestring
.author
: optionnel. Auteur de l'acquittement. Le champ est de typestring
.
Ackremove¶
output
: optionnel. Commentaire de l'acquittement. Le champ est de typestring
.author
: optionnel. Auteur de l'acquittement. Le champ est de typestring
.
Assocticket¶
output
: optionnel. Commentaire de l'acquittement. Le champ est de typestring
.author
: optionnel. Auteur de l'acquittement. Le champ est de typestring
.
Declareticket¶
output
: optionnel. Commentaire de l'acquittement. Le champ est de typestring
.author
: optionnel. Auteur de l'acquittement. Le champ est de typestring
.
Cancel¶
output
: optionnel. Commentaire de l'acquittement. Le champ est de typestring
.author
: optionnel. Auteur de l'acquittement. Le champ est de typestring
.
Collection MongoDB associée¶
Les actions sont stockées dans la collection MongoDB default_action
(voir API Action pour la création d'actions). Le champ type
de l'objet définit le type d'action. Par exemple, avec un comportement périodique, le champ type
vaut pbehavior
:
{
"_id" : "xyz",
"type": "pbehavior",
"hook": {
"event_patterns": [
{
"resource": "CPU_2"
},
{
"resource": "HDD_2"
}
],
"triggers": [
"create"
]
},
"delay" : "1m",
"parameters" : {
"author" : "whalefact",
"name" : "Big",
"reason" : "Most whales are legally unemployed",
"type" : "Pause",
"rrule" : "",
"tstart" : 0,
"tstop" : 253402297199,
}
}
Un exemple d'action concernant la mise en veille automatique (le type
d'action est donc snooze
). Il a lieu à la création de l'alarme et si le champ resource
de l'évènement contient les termes CPU
ou HDD
.
Dans les parameters
, on définit la durée de la mise en veille (600 secondes, soit 10 minutes dans cet exemple), l'auteur et le message accompagnant la mise en veille.
{
"_id": "temporisation-10m",
"type": "snooze",
"hook": {
"event_patterns": [{
"resource": {
"regex_match": "CPU"
}
},
{
"resource": {
"regex_match": "HDD"
}
}
],
"triggers": [
"create"
]
},
"parameters": {
"author": "action",
"message": "Temporisation de l'alarme pendant 10 minutes",
"duration": 600
}
}