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
.
Note
Depuis la version 3.39.0, les actions ack, ackremove, assocticket, declareticket, et cancel sont disponibles.
Par ailleurs il existe aussi la possibilité de déclencher les actions après un délai paramétré
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
}
}