Zabbix : un trigger actif seulement à certains moments de la journée

Publié le 05 December 2018

Dans Zabbix (jusqu’à la version 3.4), les maintenances ne peuvent s’appliquer qu’à des équipements entiers. Si on veut que certains trigger, mais pas tous, soient en maintenance à certains moments de la journée, il faut ruser. Il y a deux techniques principales.

Pour un seul trigger

Les fonctions date et dayofweek sont faites pour vous. dayofmonth existe aussi mais est moins utile.

{Template Windows:agent.ping.nodata(5m)}=1 and {Template Windows:agent.ping.time(0)}>090000 and {Template Windows:agent.ping.time(0)}<180000 and {Template Windows:agent.ping.dayofweek(0)}<6

Le trigger ci-dessus contient un test d’agent ping standard. J’ai rajouté deux conditions sur l’heure (.time(0)}>090000 et .time(0)}<180000, pour alerter seulement entre 9h et 18h). J’ai également ajouté une condition sur le jour de la semaine (.dayofweek(0)}<6),pour n’alerte que du lundi au vendredi.

Nous pouvons remarquer que les triggers de type date doivent obligatoirement s’appliquer sur un item, mais que sa valeur ne sert à rien dans l’évaluation de la condition.

Pour un gros groupes de triggers

La technique ci-dessus est assez contraignante si on a beaucoup de triggers. Dans ce cas il est possible de faire plus simple. On créé d’abord un trigger :

{Template Windows:agent.ping.time(0)}<090000 or {Template Windows:agent.ping.time(0)}>180000 or {Template Windows:agent.ping.dayofweek(0)}>4

Sur le même principe que la première technique, ce trigger sera systématiquement en alerte la semaine entre 18h et 9h, ainsi que le samedi et le dimanche. Il faut le mettre en sévérité Information pour qu’il ne remonte pas en MCO et ne dérange pas l’astreinte. Ensuite il n’y a plus qu’à faire une dépendance entre ce trigger et ceux qui devront être en maintenance :

De cette manière, le vrai trigger ne sonnera pas quand le trigger maintenance sera en alerte, c’est à dire la nuit et le week-end.

Cette technique est plus efficace pour gérer un grand nombre de triggers sur la même plage de maintenance.