Générer des événements internes pour déclencher des stratégies d’événements
Comprendre les événements internes
Les événements internes sont des événements que vous créez pour déclencher une stratégie d’événements. Les événements internes ne sont pas générés par les processus Junos OS et ne sont associés à aucun message de journal système. Vous pouvez configurer jusqu’à 10 événements internes et générer un événement interne en fonction d’un intervalle de temps ou de l’heure de la journée. Les stratégies d’événements peuvent correspondre à des événements internes de la même manière qu’à d’autres événements.
Si vous tentez de valider une configuration avec plus de 10 événements internes, Junos OS génère une erreur et la validation échoue.
Pour configurer un événement interne, incluez les instructions suivantes au niveau de la [edit event-options]
hiérarchie :
[edit event-options] generate-event { event-name (time-interval seconds <start-time start-time> | time-of-day time) <no-drift>; }
Vous pouvez configurer l’option time-interval
pour générer des événements à une fréquence spécifique, ou vous pouvez configurer l’option pour générer des événements à un moment spécifique de la time-of-day
journée. À partir de Junos OS version 14.1, vous pouvez configurer l’option pour les no-drift
événements internes. Lorsque vous configurez no-drift
, Junos OS ne propage pas le délai causé par le déclenchement d’un événement au déclenchement de l’événement suivant.
Cette start-time
option vous permet de spécifier la date et l’heure de début des événements basés sur des intervalles. Ainsi, l’option start-time
doit être configurée avec l’option time-interval
. Si vous configurez l’option start-time
seule ou avec l’option time-of-day
et validez la configuration, l’appareil génère une erreur et la validation échoue. Par exemple:
[edit event-options generate-event event-midnight start-time] 'start-time "2020-9-1.16:50:00 -0700"' 'time-interval' is mandatory for 'start-time' configuration error: commit failed: (statements constraint check failed)
Comment générer des événements à un moment précis de la journée
Pour générer un événement à une heure spécifique de la journée, configurez l’instruction time-of-day
et spécifiez l’heure à laquelle l’événement se produira. Un time-of-day
événement est relatif à l’heure de l’appareil local et est configuré à l’aide du format hh:mm:ss
d’heure 24 heures . Vous pouvez éventuellement inclure un décalage UTC pour spécifier une heure relative à UTC (temps universel coordonné). La syntaxe est hh:mm:ss(+|-)hhmm
, où le signe est plus (+) pour l’est de UTC et moins (-) pour l’ouest de UTC.
Le temps universel coordonné est l’heure sur le méridien de longitude 0°, également connu sous le nom de méridien de Greenwich. Dans la plupart des fuseaux horaires, l’heure standard correspond à un nombre entier d’heures décalées par rapport à UTC.
Si vous omettez le décalage UTC, Junos OS génère automatiquement le décalage de l’instruction time-of-day
dans la configuration en fonction du paramètre de fuseau horaire local du périphérique. Prenons l’exemple d’un appareil qui utilise l’heure normale de l’Est (UTC−05:00) pour son heure locale. La commande suivante configure un événement interne appelé event-midnight
, qui est généré à 12 h 00 (00 h 00 min 00 s) chaque nuit.
[edit] user@host# set event-options generate-event event-midnight time-of-day 00:00:00
La configuration résultante inclut automatiquement le décalage de l’appareil par rapport à UTC.
user@host# show event-options generate-event { event-midnight time-of-day "00:00:00 -0500"; }
Si vous configurez l’heure par rapport à UTC et que le décalage est différent de celui du périphérique, Junos OS convertit automatiquement l’heure pour refléter l’heure locale du périphérique et le décalage par rapport à UTC dans la configuration. L’exemple suivant configure un événement interne supplémentaire appelé event-midnight-cst
qui est généré chaque nuit à 12 h 00 (00 h 00 min 00 s) avec un décalage qui a six heures de retard sur UTC.
[edit] user@host# set event-options generate-event event-midnight-cst time-of-day 00:00:00-0600
La configuration résultante affiche l'événement à l'aide de l'heure locale de l'appareil et du décalage UTC.
user@host# show event-options generate-event { event-midnight time-of-day "00:00:00 -0500"; event-midnight-cst time-of-day "01:00:00 -0500"; }
Si le même appareil est expédié à un emplacement différent et qu’il est configuré pour utiliser un nouveau fuseau horaire, tous les événements internes configurés reflètent le nouveau décalage horaire et de fuseau horaire local. Par exemple:
[edit] user@host# set system time-zone America/Los_Angeles user@host# commit
user@host# show event-options generate-event { event-midnight time-of-day "21:00:00 -0800"; event-midnight-cst time-of-day "22:00:00 -0800"; }
Si vous modifiez l’heure système en exécutant la commande en set date
mode opérationnel, nous vous recommandons d’émettre également la commit full
commande ou la restart event-process
commande. Dans le cas contraire, un événement interne basé sur l’heure de la journée risque de ne pas être généré à l’heure configurée.
Par exemple, si vous configurez l’appareil pour générer un événement interne à 15:55:00, puis que vous modifiez l’heure système de 15:47:17 à 15:53:00, l’événement est généré lorsque l’heure système est approximativement 16:00 au lieu de l’heure configurée, 15:55:00. Vous pouvez corriger ce problème en exécutant la commit full
commande ou la restart event-process
commande.
Les stratégies d’événements peuvent correspondre à des événements internes de la même manière qu’à d’autres événements. L’exemple suivant génère un événement interne appelé it-is-midnight
à 12 h 00 (00 h 00 min 00 s) chaque nuit. Lorsque le processus eventd reçoit l’événement it-is-midnight
, il déclenche la stratégie d’événements midnight-chores
, qui effectue certaines actions.
[edit event-options] generate-event { it-is-midnight time-of-day "00:00:00 -0500"; } policy midnight-chores { events it-is-midnight; then { ... actions ... } }
Comment générer des événements à intervalles de temps répétés
Vous pouvez générer un événement à intervalles répétés, par exemple toutes les heures, en configurant l’instruction time-interval
et en spécifiant la fréquence de l’intervalle en secondes. L’intervalle de temps peut aller de 60 à 2 592 000 secondes. Junos OS génère le premier événement à partir d’environ un intervalle de temps après la validation de la configuration.
Par exemple, la commande suivante configure un événement appelé event-every-hour
qui est généré toutes les heures :
[edit] user@host# set event-options generate-event event-every-hour time-interval 3600
La stratégie d’événement suivante effectue certaines actions toutes les 3600 secondes lors de la génération de l’événement event-every-hour
:
[edit event-options] generate-event { event-every-hour time-interval 3600; } policy hourly-checks { events event-every-hour; then { ... actions ... } }
Sur les périphériques pris en charge, vous pouvez éventuellement configurer la date et l’heure auxquelles Junos OS commence à générer des événements basés sur des intervalles. La configuration d’une heure de démarrage permet à l’appareil de générer des événements à des heures prévisibles, par exemple, même après le redémarrage d’un appareil. Pour spécifier l’heure de début d’un événement, configurez l’option start-time
en plus de l’option time-interval
. L’heure de début est relative à l’heure de l’appareil local et est configurée à l’aide du format d’heure 24 heures. La syntaxe est la suivante : yyyy-mm-dd.hh:mm
. Par exemple:
[edit event-options generate-event] user@host# set every-fifteen-minutes time-interval 900 start-time 2020-09-01.16:50
Si vous ne configurez pas l’option start-time
, Junos OS génère le premier événement à environ un intervalle de temps après la validation de la configuration, en fonction du temps nécessaire pour que l’opération de validation se termine. Si vous configurez une heure de début qui se produit après l’heure de validation, Junos OS génère le premier événement à l’heure de début configurée et l’événement suivant à un intervalle de temps après l’heure de début, et ainsi de suite. Si vous configurez une heure de début qui précède chronologiquement l’heure de validation, Junos OS génère le premier événement à l’instant suivant qui est un nombre entier d’intervalles de temps après l’heure de début. Le Tableau 1 compare les différents scénarios pour les heures d’événement initiales en fonction de l’heure de début, si elle est configurée, et de l’heure à laquelle la configuration est validée.
|
|
Temps d’engagement |
Premier événement |
Deuxième événement |
---|---|---|---|---|
900 |
– |
2020-09-01.17:00:08 |
2020-09-01.17:15:30 |
2020-09-01.17:30:30 |
900 |
2020-09-01.17:10 |
2020-09-01.17:00:08 |
2020-09-01.17:10:00 |
2020-09-01.17:25:00 |
900 |
2020-09-01.16:50 |
2020-09-01.17:00:08 |
2020-09-01.17:05:00 |
2020-09-01.17:20:00 |
900 |
2020-09-01.16:50 |
2020-09-01.17:17:08 |
2020-09-01.17:20:00 |
2020-09-01.17:35:00 |
De même, si vous configurez une heure de début, Junos OS génère toujours l’événement suivant en fonction de l’heure de début configurée, même si vous redémarrez le périphérique ou redémarrez le processus d’événement. Le Tableau 2 compare les heures d’événement initiales après le redémarrage de l’appareil. Comme indiqué dans le tableau, lorsque vous spécifiez une heure de début, l’appareil génère de manière prévisible l’événement suivant sous la forme d’un nombre entier d’intervalles de temps après l’heure de début. Lorsque vous ne spécifiez pas d’heure de début, l’événement suivant se produit un intervalle de temps après que l’appareil se soit remis en ligne et ait démarré le processus d’événement. Dans ce cas, il a fallu plusieurs minutes au périphérique pour redémarrer et démarrer les processus Junos OS, de sorte que l’événement se produit bien après l’heure du prochain événement attendu.
|
|
Premier événement |
Temps de redémarrage |
Prochain événement |
---|---|---|---|---|
900 |
– |
2020-09-01.16:50:00 |
2020-09-01.16:55:00 |
2020-09-01.17:13:08 |
900 |
2020-09-01.16:50 |
2020-09-01.16:50:00 |
2020-09-01.16:55:00 |
2020-09-01.17:05:00 |
Vous pouvez éventuellement inclure un décalage UTC pour spécifier une heure de début par rapport à UTC en ajoutant (+|-)hhmm
à l’heure, où le signe est plus (+) pour l’est de UTC et moins (-) pour l’ouest de UTC, par exemple, 2020-09-14.11:00-0800. Même si vous spécifiez un décalage UTC, la start-time
configuration affiche toujours l’heure et le décalage UTC pour le fuseau horaire local de l’appareil.
L’exemple suivant configure l’heure de début avec un décalage UTC :
[edit event-options generate-event] user#host# set every-twenty-minutes time-interval 1200 start-time 2020-09-16.20:30-0200
La configuration résultante affiche l’heure de l’événement et le décalage UTC pour le fuseau horaire local de l’appareil.
[edit event-options generate-event] user@host# show every-twenty-minutes time-interval 1200 start-time "2020-9-16.17:30:00 -0500";