Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Beispiel: Generieren einer benutzerdefinierten Systemprotokollmeldung

Junos OS-Commit-Skripte können während eines Commit-Vorgangs benutzerdefinierte Systemprotokollmeldungen generieren, die Sie warnen, wenn die Konfiguration nicht den benutzerdefinierten Konfigurationsregeln entspricht. Der Commit-Prozess wird durch das Generieren von Systemprotokollmeldungen nicht beeinflusst. In diesem Beispiel wird ein Commitskript erstellt, das eine benutzerdefinierte Systemprotokollmeldung generiert, wenn eine bestimmte Anweisung nicht in der Gerätekonfiguration enthalten ist.

Anforderungen

Junos OS Version 16.1R3 oder höher bei Verwendung eines Python-Skripts.

Übersicht und Commit-Skript

Schreiben Sie mithilfe eines Commitskripts eine benutzerdefinierte Systemprotokollmeldung, die angezeigt wird, wenn die read-write Anweisung nicht auf der Hierarchieebene [edit snmp community community-name authorization] enthalten ist.

Das Skript wird in XSLT, SLAX und Python angezeigt.

XSLT-Syntax

SLAX-Syntax

Python-Syntax

Konfiguration

Verfahren

Schritt-für-Schritt-Anleitung

Laden Sie das Skript herunter, aktivieren und testen Sie es. Um zu testen, ob ein Commit-Skript eine Systemprotokollmeldung ordnungsgemäß generiert, stellen Sie sicher, dass die Kandidatenkonfiguration die Bedingung enthält, die die Systemprotokollmeldung auslöst. Stellen Sie in diesem Beispiel sicher, dass die read-write Anweisung nicht auf der [edit snmp community community-name authorization] Hierarchieebene enthalten ist.

So testen Sie das Beispiel in diesem Thema:

  1. Kopieren Sie das Skript in eine Textdatei, nennen Sie die Datei read-write.xsl, read-write.slax oder read-write.py nach Bedarf und kopieren Sie sie in das Verzeichnis /var/db/scripts/commit/ auf dem Gerät.

    Anmerkung:

    Unsignierte Python-Skripte müssen entweder im Besitz von root oder eines Benutzers in der Junos OS-Anmeldeklasse super-user sein, und nur der Dateieigentümer kann Schreibberechtigungen für die Datei haben.

  2. Konfigurieren Sie im Konfigurationsmodus die file Anweisung und den Skriptdateinamen auf Hierarchieebene [edit system scripts commit] .

  3. Wenn das Skript in Python geschrieben ist, aktivieren Sie die Ausführung von Python-Skripten ohne Vorzeichen.

    Anmerkung:

    Konfigurieren Sie die Anweisung für die language python3 Verwendung von Python 3 zum Ausführen von Python-Skripts, oder konfigurieren Sie die Anweisung für die language python Verwendung von Python 2.7 zum Ausführen von Python-Skripts. Weitere Informationen finden Sie unter Sprache.

  4. (Optional) Um die Bedingung zu testen, löschen Sie vorübergehend die Berechtigung für eine vorhandene SNMP-Community, wenn die read-write Anweisung auf der [edit snmp community community-name authorization] Hierarchieebene für jede Community enthalten ist.

  5. Geben Sie den folgenden Befehl aus, um zu überprüfen, ob die Systemprotokollierung so konfiguriert ist, dass in eine Datei geschrieben wird (ein häufig verwendeter Dateiname ist messages):

    Informationen zur Konfiguration des Systemprotokolls finden Sie im Systemprotokoll-Explorer.

  6. Geben Sie den Befehl aus, um die commit Konfiguration zu bestätigen.

Verifizierung

Überprüfen der Skriptausführung

Zweck

Überprüfen Sie die vom Commit-Skript generierte Systemprotokollmeldung.

Anmerkung:

Systemprotokollmeldungen werden während eines Commit-Vorgangs für Python-, SLAX- und XSLT-Skripte generiert, aber nur während eines Commit-Check-Vorgangs für Python-Skripts. Dies bedeutet, dass Sie die Befehle für den commit check | display xml Konfigurationsmodus oder commit check | display detail nicht verwenden können, um die Ausgabe von Systemprotokollmeldungen für SLAX- und XSLT-Skripte zu überprüfen.

Aktion

Wenn der Commit-Vorgang abgeschlossen ist, überprüfen Sie die Systemprotokolldatei. Das Standardverzeichnis für Protokolldateien ist /var/log/. Zeigen Sie die Protokolldatei an, indem Sie den Befehl für den show log filename Betriebsmodus eingeben. Wenn z. B. Nachrichten in der Nachrichtendatei protokolliert sind, geben Sie den folgenden Befehl aus:

Systemprotokolleinträge, die von Commit-Skripten generiert werden, haben das folgende Format:

Da die Anweisung read-write nicht auf der [edit snmp community community-name authorization] Hierarchieebene enthalten war, sollte das Commit-Skript die Meldung "SNMP-Community hat keinen Lese-/Schreibzugriff" in der Systemprotokolldatei generieren.