Generieren interner Ereignisse zum Auslösen von Ereignisrichtlinien
Interne Ereignisse verstehen
Interne Ereignisse sind Ereignisse, die Sie erstellen, um eine Ereignisrichtlinie auszulösen. Interne Ereignisse werden nicht von Junos OS-Prozessen generiert, und ihnen sind keine Systemprotokollmeldungen zugeordnet. Sie können bis zu 10 interne Ereignisse konfigurieren und ein internes Ereignis basierend auf einem Zeitintervall oder der Tageszeit generieren. Ereignisrichtlinien können bei internen Ereignissen genauso übereinstimmen wie bei anderen Ereignissen.
Wenn Sie versuchen, eine Konfiguration mit mehr als 10 internen Ereignissen zu bestätigen, generiert Junos OS einen Fehler, und der Commit schlägt fehl.
Um ein internes Ereignis zu konfigurieren, fügen Sie die folgenden Anweisungen auf Hierarchieebene [edit event-options]
ein:
[edit event-options] generate-event { event-name (time-interval seconds <start-time start-time> | time-of-day time) <no-drift>; }
Sie können die time-interval
Option so konfigurieren, dass Ereignisse mit einer bestimmten Häufigkeit generiert werden, oder Sie können die time-of-day
Option so konfigurieren, dass Ereignisse zu einer bestimmten Tageszeit generiert werden. Ab Junos OS Version 14.1 können Sie die no-drift
Option für interne Ereignisse konfigurieren. Bei der Konfiguration no-drift
gibt Junos OS die Verzögerung, die beim Auslösen eines Ereignisses verursacht wird, nicht auf das Auslösen des nächsten Ereignisses weiter.
Mit dieser start-time
Option können Sie das Startdatum und die Startzeit für intervallbasierte Ereignisse angeben. Daher muss die start-time
Option mit der time-interval
Option konfiguriert werden. Wenn Sie die start-time
Option allein oder mit der time-of-day
Option konfigurieren und die Konfiguration bestätigen, generiert das Gerät einen Fehler, und der Commit schlägt fehl. Zum Beispiel:
[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)
So generieren Sie Ereignisse zu einer bestimmten Tageszeit
Um ein Ereignis zu einer bestimmten Tageszeit zu generieren, konfigurieren Sie die time-of-day
Anweisung, und geben Sie die Uhrzeit an, zu der das Ereignis eintreten soll. Ein time-of-day
Ereignis bezieht sich auf die lokale Gerätezeit und wird im 24-Stunden-Zeitformat hh:mm:ss
konfiguriert. Sie können optional einen UTC-Offset angeben, um eine Zeit relativ zur UTC (Coordinated Universal Time) anzugeben. Die Syntax lautet hh:mm:ss(+|-)hhmm
, wobei das Vorzeichen plus (+) für östlich von UTC und minus (-) für westlich von UTC ist.
Die koordinierte Weltzeit ist die Zeit auf dem Meridian 0° Längengrad, auch bekannt als Greenwich-Meridian. Die Standardzeit in den meisten Zeitzonen ist eine ganzzahlige Anzahl von Stunden, die von UTC abweichen.
Wenn Sie den UTC-Offset weglassen, generiert Junos OS automatisch den Offset für die time-of-day
Anweisung in der Konfiguration basierend auf der lokalen Zeitzoneneinstellung für das Gerät. Stellen Sie sich zum Beispiel ein Gerät vor, das die Eastern Standard Time (UTC−05:00) als Ortszeit verwendet. Mit dem folgenden Befehl wird ein internes Ereignis mit dem Namen event-midnight
konfiguriert, das jede Nacht um 12:00 Uhr (00:00:00) generiert wird.
[edit] user@host# set event-options generate-event event-midnight time-of-day 00:00:00
Die resultierende Konfiguration enthält automatisch den Offset des Geräts von UTC.
user@host# show event-options generate-event { event-midnight time-of-day "00:00:00 -0500"; }
Wenn Sie die Zeit relativ zu UTC konfigurieren und sich der Offset von dem des Geräts unterscheidet, konvertiert Junos OS die Zeit automatisch, um die Ortszeit des Geräts und den Offset von UTC in der Konfiguration widerzuspiegeln. Im folgenden Beispiel wird ein zusätzliches internes Ereignis namens event-midnight-cst
konfiguriert, das jede Nacht um 12:00 Uhr (00:00:00) mit einem Offset generiert wird, der sechs Stunden hinter UTC liegt.
[edit] user@host# set event-options generate-event event-midnight-cst time-of-day 00:00:00-0600
Die resultierende Konfiguration zeigt das Ereignis unter Verwendung der Ortszeit und des UTC-Offsets des Geräts an.
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"; }
Wenn dasselbe Gerät an einen anderen Standort geliefert wird und für die Verwendung einer neuen Zeitzone konfiguriert ist, spiegeln alle konfigurierten internen Ereignisse die neue Ortszeit und den neuen Zeitzonenoffset wider. Zum Beispiel:
[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"; }
Wenn Sie die Systemzeit ändern, indem Sie den set date
Befehl Betriebsmodus absetzen, empfehlen wir, auch den commit full
Befehl oder abzugeben restart event-process
. Andernfalls wird ein internes Ereignis, das auf der Tageszeit basiert, möglicherweise nicht zur konfigurierten Uhrzeit generiert.
Wenn Sie z. B. das Gerät so konfigurieren, dass ein internes Ereignis um 15:55:00 Uhr generiert wird, und Sie dann die Systemzeit von 15:47:17 Uhr auf 15:53:00 Uhr ändern, wird das Ereignis generiert, wenn die Systemzeit ungefähr 16:00 Uhr beträgt, anstatt zur konfigurierten Zeit 15:55:00. Sie können dieses Problem beheben, indem Sie den commit full
Befehl oder restart event-process
eingeben.
Ereignisrichtlinien können bei internen Ereignissen genauso übereinstimmen wie bei anderen Ereignissen. Im folgenden Beispiel wird ein internes Ereignis generiert, das jede Nacht um 12:00 Uhr (00:00:00) aufgerufen wird it-is-midnight
. Wenn der ereignisgesteuerte Prozess das it-is-midnight
Ereignis empfängt, löst er die midnight-chores
Ereignisrichtlinie aus, die bestimmte Aktionen ausführt.
[edit event-options] generate-event { it-is-midnight time-of-day "00:00:00 -0500"; } policy midnight-chores { events it-is-midnight; then { ... actions ... } }
Generieren von Ereignissen in wiederholten Zeitintervallen
Sie können ein Ereignis in wiederholten Intervallen, z. B. stündlich, generieren, indem Sie die time-interval
Anweisung konfigurieren und die Intervallhäufigkeit in Sekunden angeben. Das Zeitintervall kann zwischen 60 und 2.592.000 Sekunden liegen. Junos OS generiert das erste Ereignis, das ungefähr in einem Zeitintervall beginnt, nachdem Sie die Konfiguration bestätigt haben.
Mit dem folgenden Befehl wird z. B. ein Ereignis namens event-every-hour
konfiguriert, das stündlich generiert wird:
[edit] user@host# set event-options generate-event event-every-hour time-interval 3600
Die folgende Ereignisrichtlinie führt alle 3600 Sekunden bestimmte Aktionen aus, wenn das Ereignis event-every-hour
generiert wird:
[edit event-options] generate-event { event-every-hour time-interval 3600; } policy hourly-checks { events event-every-hour; then { ... actions ... } }
Auf unterstützten Geräten können Sie optional das Datum und die Uhrzeit konfigurieren, zu der Junos OS mit der Generierung intervallbasierter Ereignisse beginnt. Durch die Konfiguration einer Startzeit kann das Gerät Ereignisse zu vorhersehbaren Zeiten generieren, z. B. auch nach einem Neustart des Geräts. Um eine Startzeit für ein Ereignis anzugeben, konfigurieren Sie die start-time
Option zusätzlich zur time-interval
Option. Die Startzeit bezieht sich auf die lokale Gerätezeit und wird im 24-Stunden-Zeitformat konfiguriert. Die Syntax lautet: yyyy-mm-dd.hh:mm
. Zum Beispiel:
[edit event-options generate-event] user@host# set every-fifteen-minutes time-interval 900 start-time 2020-09-01.16:50
Wenn Sie die start-time
Option nicht konfigurieren, generiert Junos OS das erste Ereignis in ungefähr einem Zeitintervall nach dem Commit der Konfiguration, abhängig von der Zeit, die für den Abschluss des Commit-Vorgangs erforderlich ist. Wenn Sie eine Startzeit konfigurieren, die nach der Commit-Zeit eintritt, generiert Junos OS das erste Ereignis zur konfigurierten Startzeit und das nächste Ereignis in einem Zeitintervall nach der Startzeit usw. Wenn Sie eine Startzeit konfigurieren, die chronologisch vor der Commit-Zeit liegt, generiert Junos OS das erste Ereignis zum nächsten Zeitpunkt, d. h. eine ganzzahlige Anzahl von Zeitintervallen nach der Startzeit. In Tabelle 1 werden die verschiedenen Szenarien für die anfänglichen Ereigniszeiten basierend auf der Startzeit, falls konfiguriert, und dem Zeitpunkt, zu dem die Konfiguration festgeschrieben wird, verglichen.
|
|
Commit-Zeit |
Erstes Ereignis |
Zweites Ereignis |
---|---|---|---|---|
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 |
Wenn Sie eine Startzeit konfigurieren, generiert Junos OS auch dann das nächste Ereignis basierend auf der konfigurierten Startzeit, wenn Sie das Gerät neu starten oder den Ereignisprozess neu starten. In Tabelle 2 werden die anfänglichen Ereigniszeiten nach dem Neustart des Geräts verglichen. Wie in der Tabelle dargestellt, generiert das Gerät beim Angeben einer Startzeit das nächste Ereignis vorhersehbar als ganzzahlige Anzahl von Zeitintervallen nach der Startzeit. Wenn Sie keine Startzeit angeben, ist das nächste Ereignis ein Zeitintervall, nachdem das Gerät wieder online ist und den Ereignisprozess startet. In diesem Fall dauerte es mehrere Minuten, bis das Gerät neu gestartet und die Junos OS-Prozesse gestartet waren, sodass das Ereignis weit nach der Zeit für das nächste erwartete Ereignis auftritt.
|
|
Erstes Ereignis |
Zeit für den Neustart |
Nächste Veranstaltung |
---|---|---|---|---|
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 |
Sie können optional einen UTC-Offset einschließen, um eine Startzeit relativ zu UTC anzugeben, indem Sie (+|-)hhmm
an die Zeit anhängen, wobei das Vorzeichen plus (+) für östlich von UTC und minus (-) für westlich von UTC ist, z. B. 2020-09-14.11:00-0800. Auch wenn Sie einen UTC-Offset angeben, zeigt die start-time
Konfiguration immer die Uhrzeit und den UTC-Offset für die lokale Zeitzone des Geräts an.
Im folgenden Beispiel wird die Startzeit mit einem UTC-Offset konfiguriert:
[edit event-options generate-event] user#host# set every-twenty-minutes time-interval 1200 start-time 2020-09-16.20:30-0200
Die resultierende Konfiguration zeigt die Ereigniszeit und den UTC-Offset für die lokale Zeitzone des Geräts an.
[edit event-options generate-event] user@host# show every-twenty-minutes time-interval 1200 start-time "2020-9-16.17:30:00 -0500";