Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden korrelierter Ereignisse zum Auslösen einer Ereignisrichtlinie

Konfigurieren Sie eine Ereignisrichtlinie, die ausgeführt wird, wenn zwei oder mehr korrelierte Ereignisse eintreten.

Verstehen korrelierter Ereignisse

Sie können nicht nur eine Ereignisrichtlinie konfigurieren, die bei einem einzelnen Ereignis ausgelöst wird, sondern auch eine Ereignisrichtlinie, die zwei oder mehr Ereignisse korreliert. Wenn die Ereignisse wie angegeben eintreten, führt die Ereignisrichtlinie die konfigurierten Aktionen aus. Sie können z. B. bestimmte Befehle für den Betriebsmodus ausgeben, wenn ein UI_CONFIGURATION_ERROR Ereignis innerhalb von fünf Minuten nach einem UI_COMMIT_PROGRESS Ereignis generiert wird. Ein weiteres Beispiel ist das Hochladen einer bestimmten Datei, wenn innerhalb eines Intervalls von 60 Sekunden zweimal ein DCD_INTERFACE_DOWN Ereignis generiert wird.

Um Ereignisse in einer Ereignisrichtlinie zu korrelieren, schließen Sie die folgenden Anweisungen auf Hierarchieebene [edit event-options] ein:

In der events Anweisung können Sie mehrere Auslöseereignisse auflisten. Informationen zum Definieren von Ereignissen in Ereignisrichtlinien finden Sie unter Übersicht über Ereignisrichtlinien und Ereignisbenachrichtigungen. Um diese Ereignisse mit anderen Ereignissen zu korrelieren, konfigurieren Sie die within und/oder die attributes-match Anweisungen.

Die within Anweisung definiert die korrelierenden Ereignisse, die innerhalb eines bestimmten Zeitintervalls vor einem Auslöseereignis auftreten müssen (oder nicht). Die attributes-match Anweisung ermöglicht es dem System, neben dem Ereignis selbst auch die Attribute eines Ereignisses zu berücksichtigen. Die attributes-match Anweisung kann das Attribut eines Ereignisses mit dem Attribut eines anderen Ereignisses oder mit einem regulären Ausdruck korrelieren.

Die Ereignisrichtlinie führt die in der then Anweisung konfigurierten Aktionen nur aus, wenn die angegebenen Bedingungen erfüllt sind. In den folgenden Abschnitten wird die Verwendung der Anweisungen erläutert.

Korrelieren von Ereignissen nach Zeitintervall

Sie können eine Ereignisrichtlinie so konfigurieren, dass sie nur ausgeführt wird, wenn ein Auslöserereignis innerhalb eines bestimmten Zeitintervalls nach einem anderen Ereignis eintritt. Sie tun dies, indem Sie die Anweisung within seconds events konfigurieren. Die Richtlinie wird ausgeführt, wenn eines der in der within seconds events Anweisung definierten korrelierenden Ereignisse innerhalb der konfigurierten Anzahl von Sekunden vor einem der in der ersten events Anweisung definierten Auslöseereignisse eintritt. Die Anzahl der Sekunden kann zwischen 60 und 604.800 liegen. Die not Anweisung bewirkt, dass die Richtlinie nur ausgeführt wird, wenn die korrelierenden Ereignisse nicht innerhalb des konfigurierten Zeitintervalls vor einem Auslöseereignis auftreten.

Das Gerät führt z. B. die folgende Richtlinie aus, wenn eines der auslösenden Ereignisse event3, event4oder event5innerhalb von 60 Sekunden nach dem Eintreten eines der korrelierenden Ereignisse event1 oder event2, eintritt:

So konfigurieren Sie eine Ereignisrichtlinie, um Ereignisse nach Zeitintervall zu korrelieren:

  1. Konfigurieren Sie ein oder mehrere Trigger-Ereignisse.

  2. Konfigurieren Sie die korrelierenden Ereignisse, die vor einem Auslöserereignis und innerhalb des angegebenen Zeitintervalls auftreten müssen oder nicht auftreten dürfen.

    • Wenn Sie angeben möchten, dass ein korrelierendes Ereignis innerhalb des angegebenen Zeitintervalls vor einem auslösenden Ereignis auftreten muss, lassen Sie das not Schlüsselwort weg.

    • Wenn Sie angeben möchten, dass ein korrelierendes Ereignis nicht innerhalb des angegebenen Zeitintervalls vor einem auslösenden Ereignis auftreten darf, fügen Sie das not Schlüsselwort ein.

  3. Konfigurieren Sie die Aktionen, die die Ereignisrichtlinie ausführt, wenn die Bedingungen erfüllt sind.

Anmerkung:

Das Gerät führt eine Ereignisrichtlinie aus, wenn eines der korrelierenden Ereignisse vor einem Auslöseereignis eintritt (oder nicht eintritt, wenn Sie das not Schlüsselwort konfigurieren). Wenn Sie festlegen möchten, dass vor einem Auslöserereignis mehrere korrelierende Ereignisse auftreten (oder nicht auftreten), konfigurieren Sie mehrere within Anweisungen. Jede Anweisung muss ein anderes Zeitintervall angeben.

Die within Anweisung unterstützt auch das Ausführen einer Ereignisrichtlinie, wenn das auslösende Ereignis eine bestimmte Anzahl von Malen innerhalb eines bestimmten Zeitintervalls auftritt. Weitere Informationen finden Sie unter Auslösen einer Ereignisrichtlinie basierend auf der Ereignisanzahl.

Korrelieren von Ereignissen auf der Grundlage von Ereignisattributen

Viele Ereignisse verfügen über ein oder mehrere Attribute, auf die Sie in Ereignisrichtlinien verweisen können. Betrachten Sie z. B. die folgende Systemprotokollmeldung für ein UI_COMMIT Ereignis:

Die generische UI_COMMIT Ereignismeldung lautet: User 'username' requested 'command' operation (comment: message).

Es hat die folgenden drei Attribute: username, commandund message.

Die attributes-match Anweisung ermöglicht es Ihnen, einen genaueren Abgleich von Ereignisrichtlinien zu erstellen, indem Sie Ereignisattribute mithilfe von , matchesund starts-with mit den equalsgewünschten Werten vergleichen. Die Anweisung korreliert Ereignisse wie folgt:

  • event1.attribute-name equals event2.attribute-name– Führen Sie die Richtlinie nur aus, wenn das event1 Attribut und das event2 Attribut denselben Wert haben.

  • event.attribute-name matches regular-expression– Die Richtlinie wird nur ausgeführt, wenn der event Attributwert mit dem angegebenen regulären Ausdruck übereinstimmt. Weitere Informationen finden Sie unter Verwenden regulärer Ausdrücke zum Verfeinern der Ereignisse, die eine Richtlinie auslösen.

  • event1.attribute-name starts-with event2.attribute-name: Führen Sie die Richtlinie nur aus, wenn der event1 Attributwert mit dem Wert des event2 Attributs beginnt.

Bei den Ereignissen, auf die in den attributes-match Anweisungen verwiesen wird, muss es sich entweder um das auslösende Ereignis oder um die korrelierenden Ereignisse handeln, die in den within Anweisungen der Ereignisrichtlinie enthalten sind. Sie müssen eine oder mehrere within Anweisungen definieren, wenn die attributes-match Anweisung:

  • Enthält einen oder-Vergleich equals starts-with

  • Enthält einen matches Vergleich, der eine Klausel für ein Ereignis enthält, bei dem es sich nicht um ein Triggerereignis handelt.

Eine attributes-match Anweisung kann mehrere equalsmatches, und starts-with Vergleichsanweisungen enthalten. Das System wertet mehrere Vergleichsanweisungen mit einem logischen UND-Operator aus. Um die Ereignisrichtlinie ausführen zu können, müssen daher alle attributes-match Bedingungen als wahr ausgewertet werden.

Angenommen, Sie konfigurieren mehrere Tests für die Echtzeitleistungsüberwachung (Real-Time Performance Monitoring, RPM), und einer dieser Tests verwendet den Namen Connectivity des Besitzers und verfügt über einen Test mit dem Namen Management. Wenn Sie in einer Ereignisrichtlinie auf das Ereignis des Tests ping_test_failed verweisen, möchten Sie unterscheiden, welcher RPM-Testtest das Ereignis generiert hat. Die folgende Ereignisrichtlinie stimmt mit den Attributen test-owner test-name und des ping_test_failed Ereignisses überein, sodass die Ereignisrichtlinie nur für den richtigen Test ausgelöst wird. Die Ereignisrichtlinie wird nur ausgeführt, wenn beide Übereinstimmungsbedingungen erfüllt sind.

Auf ähnliche Weise wird die folgende Ereignisrichtlinie für das nicht standardmäßige SYSTEM-Ereignis ausgelöst, das über ein messages Attribut verfügt. In der attributes-match Anweisung müssen alle matches Anweisungen wahr sein, um die Ereignisrichtlinie aufzurufen:

Sie können Ereignisrichtlinienvariablen innerhalb der attributes-match Anweisung verwenden, um zwischen einem auslösenden Ereignisattribut und einem korrelierenden Ereignisattribut zu unterscheiden. Triggerereignisse sind Ereignisse, die Sie auf Hierarchieebene [edit event-options policy policy-name events] konfigurieren. Das doppelte Dollarzeichen ($$) stellt das Ereignis dar, das eine Richtlinie auslöst, und {$$.attribute-name} wird in den Wert des Attributs des auslösenden Ereignisses aufgelöst. Bei korrelierten Ereignissen stellt das einzelne Dollarzeichen mit der Ereignisname($event)-Notation das letzte Ereignis dar, das mit dem Ereignisnamen übereinstimmt, und {$event.attribute-name} wird in den Wert des Attributs aufgelöst, das diesem Ereignis zugeordnet ist.

Die folgende Ereignisrichtlinie führt z. B. die Aktionen unter der then Anweisung aus, wenn vier oder mehr Commits innerhalb eines Zeitraums von 5 Minuten ausgeführt werden und der Benutzername eines oder mehrerer der korrelierenden Ereignisse mit dem Benutzernamen des auslösenden Ereignisses identisch ist.

Es gibt viele Möglichkeiten, die Attribute zu finden, auf die Sie für ein bestimmtes Ereignis verweisen können, z. B.:

  • Verwenden Sie den Systemprotokoll-Explorer.

  • Verwenden Sie den help syslog event Befehl "Betriebsmodus" in der CLI.

  • Verwenden Sie die kontextsensitive Hilfe im Konfigurationsmodus, wenn Sie das Attribut konfigurieren.

Mit der Anwendung Systemprotokoll-Explorer können Sie die Standard-Systemprotokollmeldungen für ein bestimmtes Betriebssystem und eine bestimmte Version durchsuchen. Die Nachrichtendetails enthalten die Attribute, auf die Sie für dieses Ereignis verweisen können.

Alternativ zeigt der help syslog event Befehl "Betriebsmodus" in der CLI auch eine Liste der Attribute an, auf die Sie für ein bestimmtes Ereignis verweisen können. In der Befehlsausgabe werden die Ereignisattribute in spitzen Klammern (<>) angezeigt. Die folgende Ausgabe zeigt, dass das Ereignis über drei Attribute verfügt, auf die ACCT_ACCOUNTING_SMALL_FILE_SIZE Sie verweisen können: filename, file-sizeund record-size.

Anmerkung:

Sie können die Ausgabe einer Suche filtern, indem Sie den senkrechten Strich (|) verwenden. Weitere Informationen zur Verwendung des senkrechten Strichs finden Sie im CLI-Benutzerhandbuch.

Sie können auch Ereignisattribute anzeigen, indem Sie den set attributes-match event? Befehl configuration mode auf der [edit event-options policy policy-name] Hierarchieebene ausgeben, wie im folgenden Beispiel gezeigt:

Anmerkung:

In diesem set Befehl befindet sich kein Leerzeichen zwischen dem Ereignisnamen und dem Fragezeichen (?).

Darstellung von auslösenden und korrelierten Ereignissen in einer Ereignisrichtlinie

In Ereignisskriptargumenten und unterstützten Ereignisrichtlinienanweisungen wie der execute-commands Anweisung können Sie Ereignisrichtlinienvariablen verwenden, um zwischen einem auslösenden Ereignis und einem korrelierenden Ereignis zu unterscheiden. Auslösende und korrelierende Ereignisse werden in den folgenden Anweisungen auf Hierarchieebene [edit event-options policy policy-name] konfiguriert:

  • Auslösendes Ereignis – Konfiguriert in der events Anweisung
  • Korrelierendes Ereignis – Konfiguriert in der within seconds events Anweisung

Sie können Ereignisrichtlinienvariablen der folgenden Formen verwenden, um auslösende und korrelierende Ereignisse darzustellen:

  • {$$.attribute-name}Das doppelte Dollarzeichen ($$) stellt das Ereignis dar, das die Richtlinie auslöst. In Kombination mit einem Attributnamen wird die Variable in den Wert des Attributs aufgelöst, das dem auslösenden Ereignis zugeordnet ist. Wird z. B. in den Schnittstellennamen aufgelöst, {$$.interface-name} der dem auslösenden Ereignis zugeordnet ist.

  • {$event.attribute-name}—Das einzelne Dollarzeichen mit der Notation "Ereignisname" ($event) steht für das letzte Ereignis, das mit übereinstimmt event. In Kombination mit einem Attributnamen wird die Variable in den Wert des Attributs aufgelöst, das diesem Ereignis zugeordnet ist. Wenn der Befehl z. B. von einer Richtlinie ausgegeben show interfaces {$COSD_CHAS_SCHED_MAP_INVALID.interface-name} wird, wird die Variable {$COSD_CHAS_SCHED_MAP_INVALID.interface-name} in den Schnittstellennamen aufgelöst, der dem letzten COSD_CHAS_SCHED_MAP_INVALID Ereignis zugeordnet ist, das vom Ereignisprozess zwischengespeichert wurde.

  • {$*.attribute-name}Das Dollarzeichen mit dem Sternchen ($*) steht für das letzte Ereignis, das mit einem der korrelierenden Ereignisse übereinstimmt. Die Variable wird in den Wert des Attributs aufgelöst, das dem letzten Ereignis zugeordnet ist, das mit einem der korrelierten Ereignisse übereinstimmt, die in der Richtlinienkonfiguration angegeben sind.

In Ereignisrichtlinien können Sie mithilfe von Ereignisrichtlinienvariablen auf bestimmte Ereignisse verweisen. Beachten Sie die folgende Ereignisrichtlinie:

show interfaces {$$.interface-name} Im Befehl wird der Wert des interface-name Attributs von event e1, e2oder e3 die {$$.interface-name} Variable ersetzt.

show interfaces {$e4.interface-name} Im Befehl wird die {$e4.interface-name} Variable durch den Wert des interface-name Attributs des letzten e4 Ereignisses ersetzt.

show interfaces {$*.interface-name} Im Befehl wird die {$*.interface-name} Variable durch den Wert des interface-name Attributs des letzten e4e5, oder e6 Ereignisses ersetzt. Wenn einer von e1, e2oder e3 innerhalb von 60 Sekunden nach e4, e5oder e6auftritt, wird der Wert des Attributs interface-name für dieses korrelierende Ereignis (e4, e5oder e6) durch die {$*.interface-name} Variable ersetzt. Wenn das korrelierende Ereignis kein interface-name Attribut hat, führt die Software den show interfaces {$*.interface-name} Befehl nicht aus.

Wenn e1 innerhalb von 60 Sekunden nach und e4 e5auftritt, wird die {$*.interface-name} Variable durch den Wert des interface-name Attributs for e4 ersetzt. Dies liegt daran, dass der Ereignisprozess (eventd) in sequenzieller Reihenfolge nach korrelierenden Ereignissen sucht, wie in der Anweisung within konfiguriert. In diesem Fall ist e4 der Auftrag > e5 > e6.

Beispiel: Korrelieren von Ereignissen basierend auf dem Empfang anderer Ereignisse innerhalb eines bestimmten Zeitintervalls

Die Ereignisrichtlinie in diesem Beispiel gibt eine Reihe von Befehlen aus und lädt die resultierende Ausgabedatei auf eine Archivwebsite hoch. Die Richtlinie wird ausgeführt, wenn eines der auslösenden Ereignisse event3, event4oder event5innerhalb von 60 Sekunden nach dem Eintreten eines der korrelierenden Ereignisse event1 oder event2eintritt. Der Pseudocode für die Richtlinie lautet wie folgt:

Die Ereignisrichtlinie gibt zwei Archivstandorte in der Konfiguration an. Das Gerät versucht, an den ersten Archivstandort in der Liste zu übertragen und wird nur dann zum nächsten Standort verschoben, wenn die Übertragung fehlschlägt. Die Konfiguration der Ereignisrichtlinie lautet:

Beispiel: Korrelieren von Ereignissen basierend auf Ereignisattributen

In der folgenden Ereignisrichtlinie werden die beiden Ereignisse korreliert, wenn ihre Ereignisattributwerte übereinstimmen. Durch den Abgleich der Attribute beider Ereignisse wird sichergestellt, dass die beiden Ereignisse miteinander in Beziehung stehen. In diesem Fall müssen die Schnittstellenadressen und die Namen der physischen Schnittstellen (ifd) übereinstimmen.

Der RPD_KRT_IFDCHANGE Fehler tritt auf, wenn der Routing-Protokollprozess (rpd) eine Anforderung an den Kernel sendet, um den Status einer Schnittstelle zu ändern, und die Anforderung fehlschlägt. Der RPD_RDISC_NOMULTI Fehler tritt auf, wenn eine Schnittstelle für die Routererkennung konfiguriert ist, die Schnittstelle jedoch nicht die erforderlichen IP-Multicast-Vorgänge unterstützt.

In diesem Beispiel rpd_rdisc_nomulti.interface-name könnte so-0/0/0.0 und rpd_krt_ifdchange.ifd-index so-0/0/0 sein.