- play_arrow Overview
- play_arrow Junos Automation Scripts Overview
- play_arrow Junos XML Management Protocol and Junos XML API Overview
-
- play_arrow Automation Scripting Using XSLT
- play_arrow XSLT Overview
- play_arrow Standard XPath and XSLT Functions Used in Automation Scripts
- play_arrow Standard XSLT Elements and Attributes Used in Automation Scripts
-
- play_arrow Automation Scripting Using SLAX
- play_arrow SLAX Overview
- SLAX Overview
- SLAX Syntax Rules Overview
- SLAX Elements and Element Attributes Overview
- SLAX Elements as Function Arguments
- Understanding SLAX Default Namespaces
- XPath Expressions Overview for SLAX
- SLAX Templates Overview
- SLAX Functions Overview
- SLAX Parameters Overview
- SLAX Variables Overview
- SLAX Statements Overview
- XSLT Elements Without SLAX Equivalents
- SLAX Operators
- play_arrow SLAX Statements
- append
- apply-imports
- apply-templates
- attribute
- attribute-set
- call
- copy-node
- copy-of
- decimal-format
- element
- else
- else if
- expr
- fallback
- for
- for-each
- function
- if
- import
- key
- match
- message
- mode
- mvar
- number
- output-method
- param
- preserve-space
- priority
- processing-instruction
- result
- set
- sort
- strip-space
- template
- terminate
- trace
- uexpr
- use-attribute-sets
- var
- version
- while
- with
- play_arrow The libslax Distribution for Automation Scripting
- libslax Distribution Overview
- libslax Library and Extension Libraries Overview
- Download and Install the libslax Distribution
- libslax Default Extension Libraries: bit, curl, db, os, and xutil
- Understanding the SLAX Processor (slaxproc)
- How to Use the SLAX Processor (slaxproc)
- SLAX Debugger, Profiler, and callflow
-
- play_arrow Automation Scripting Using Python
- play_arrow Python Overview
- Understanding Python Automation Scripts for Junos Devices
- Requirements for Executing Python Automation Scripts on Junos Devices
- Overview of Python Modules on Junos Devices
- How to Use Python Interactive Mode on Devices Running Junos OS
- How to Use the psutil Module to Retrieve Process and System Information on Devices Running Junos OS
- How to Use the Requests Library for Python on Devices Running Junos OS
- IPv6 Support in Python Automation Scripts
- How to Specify the Routing Instance in Python 3 Applications on Devices Running Junos OS Evolved
-
- play_arrow Automation Script Input
- play_arrow Global Parameters in Automation Scripts
-
- play_arrow Extension Functions and Named Templates for Automation Scripts
- play_arrow Extension Functions for Automation Scripting
- play_arrow Extension Functions in the jcs and slax Namespaces
- base64-decode() Function (SLAX)
- base64-encode() Function (SLAX)
- break-lines() Function (SLAX and XSLT)
- close() Function (SLAX and XSLT)
- dampen() Function (Python, SLAX, and XSLT)
- document() Function (SLAX)
- emit_error() Function (Python)
- emit_snmp_attributes Function (Python)
- emit_warning() Function (Python)
- empty() Function (SLAX and XSLT)
- evaluate() Function (SLAX)
- execute() Function (SLAX and XSLT)
- first-of() Function (SLAX and XSLT)
- get-command() Function (SLAX)
- get-hello() Function (SLAX and XSLT)
- get-input() Function (SLAX and XSLT) and get_input() (Python)
- get-protocol() Function (SLAX and XSLT)
- get-secret() Function (SLAX and XSLT) and get_secret() (Python)
- get_snmp_action() Function (Python)
- get_snmp_oid() Function (Python)
- hostname() Function (Python, SLAX, and XSLT)
- invoke() Function (SLAX and XSLT)
- open() Function (SLAX and XSLT)
- output() Function (Python, SLAX, and XSLT)
- parse-ip() Function (SLAX and XSLT) and parse_ip() (Python)
- printf() Function (Python, SLAX, and XSLT)
- progress() Function (Python, SLAX, and XSLT)
- regex() Function (SLAX and XSLT)
- set_routing_instance() Function (Python)
- sleep() Function (SLAX and XSLT)
- split() Function (SLAX and XSLT)
- sysctl() Function (Python, SLAX, and XSLT)
- syslog() Function (Python, SLAX, and XSLT)
- trace() Function (Python, SLAX, and XSLT)
- play_arrow Named Templates for Automation Scripting
- play_arrow Named Templates in the jcs Namespace
-
- play_arrow Manage Automation Scripts
- play_arrow Store and Enable Scripts
- play_arrow Configure a Remote Source for Scripts
- play_arrow Configure the Session Protocol for Scripts
- play_arrow Control Execution of Scripts
- play_arrow Synchronize Scripts Between Routing Engines
- play_arrow Convert Scripts Between SLAX and XSLT
-
- play_arrow Commit Scripts
- play_arrow Commit Scripts Overview
- play_arrow Create and Execute Commit Scripts
- Required Boilerplate for Commit Scripts
- XML Syntax for Common Commit Script Tasks
- Design Considerations for Commit Scripts
- How to Avoid Potential Conflicts When Using Multiple Commit Scripts
- Line-by-Line Explanation of Sample Commit Scripts
- Control the Execution of Commit Scripts During Commit Operations
- Control the Execution of Commit Scripts in the QFabric System
- Configure Checksum Hashes for a Commit Script
- How to Process Large Configurations Against Commit Scripts
- Example: Retrieve the Pre-Inheritance Candidate Configuration in a Commit Script
- play_arrow Generate a Custom Warning, Error, or System Log Message Using Commit Scripts
- Overview of Generating Custom Warning, Error, and System Log Messages
- Generate a Custom Warning, Error, or System Log Message in Commit Scripts
- SLAX and XSLT Commit Script Tag Elements to Use When Generating Messages
- Example: Generate a Custom Warning Message
- Example: Generate a Custom Error Message
- Example: Generate a Custom System Log Message
- play_arrow Generate Persistent or Transient Configuration Changes Using Commit Scripts
- Overview of Generating Persistent or Transient Configuration Changes Using Commit Scripts
- Generate a Persistent or Transient Configuration Change in SLAX and XSLT Commit Scripts
- Generate a Persistent or Transient Configuration Change in Python Commit Scripts
- SLAX and XSLT Commit Script Tag Elements to Use When Generating Persistent and Transient Configuration Changes
- Remove a Persistent or Transient Configuration Change Using Commit Scripts
- Example: Generate Persistent and Transient Configuration Changes Using Commit Scripts
- play_arrow Create Custom Configuration Syntax with Commit Script Macros
- Overview of Creating Custom Configuration Syntax with Commit Script Macros
- Create Custom Configuration Syntax with Commit Script Macros
- Create a Commit Script Macro to Read the Custom Syntax and Generate Related Configuration Statements
- Example: Creating Custom Configuration Syntax with Commit Script Macros
- play_arrow Commit Script Examples
- Example: Adding a Final then accept Term to a Firewall
- Example: Adding T1 Interfaces to a RIP Group
- Example: Assign a Classifier Using a Commit Script
- Example: Automatically Configure Logical Interfaces and IP Addresses
- Example: Configure Administrative Groups for LSPs
- Example: Configure a Default Encapsulation Type
- Example: Configure Dual Routing Engines
- Example: Configure an Interior Gateway Protocol on an Interface
- Example: Control IS-IS and MPLS Interfaces
- Example: Control LDP Configuration
- Example: Create a Complex Configuration Based on a Simple Interface Configuration
- Example: Impose a Minimum MTU Setting
- Example: Limit the Number of ATM Virtual Circuits
- Example: Limit the Number of E1 Interfaces
- Example: Load a Base Configuration
- Example: Prepend a Global Policy
- Example: Prevent Import of the Full Routing Table
- Example: Require Internal Clocking on T1 Interfaces
- Example: Require and Restrict Configuration Statements
- play_arrow Junos XML and XSLT Tag Elements Used in Commit Scripts
- play_arrow Troubleshoot Commit Scripts
-
- play_arrow Op Scripts
- play_arrow Op Scripts Overview
- play_arrow Create and Execute Op Scripts
- Required Boilerplate for Op Scripts
- Map Operational Mode Commands and Output Fields to Junos XML Notation
- How to Use RPCs and Operational Mode Commands in Op Scripts
- Declare and Use Command-Line Arguments in Op Scripts
- Configure Help Text for Op Scripts
- Define Operational Mode Commands to Allow in an Op Script
- Enable an Op Script and Define a Script Alias
- Configure Checksum Hashes for an Op Script
- Execute an Op Script on the Local Device
- Execute an Op Script from a Remote Site
- Disable an Op Script
- play_arrow Op Script Examples
- Change the Configuration Using SLAX and XSLT Scripts
- Example: Change the Configuration Using SLAX and XSLT Op Scripts
- Example: Change the Configuration Using Python Op Scripts
- Example: Customize Output of the show interfaces terse Command Using an Op Script
- Example: Display DNS Hostname Information Using an Op Script
- Example: Find LSPs to Multiple Destinations Using an Op Script
- Example: Restart an FPC Using an Op Script
- Example: Export Files Using an Op Script
- Example: Import Files Using an Op Script
- Example: Search Files Using an Op Script
- play_arrow Provision Services Using Service Template Automation
- play_arrow Troubleshoot Op Scripts
-
- play_arrow SNMP Scripts
- play_arrow SNMP Scripts Overview
- play_arrow Create and Execute SNMP Scripts
- play_arrow SNMP Script Example
- play_arrow Troubleshoot SNMP Scripts
-
- play_arrow Configuration Statements and Operational Commands
Junos Logger Utility
Use the Junos logger utility to record custom system log messages or generate event notifications for validating event policies in a test environment.
The Junos software includes a logger utility, which enables you to:
Record custom messages in the system log file
Simulate Junos event notifications
Junos Logger Overview
The Junos logger is a shell utility that you can use to log custom messages to the system log file and artificially generate event notifications. The logger enables you to successfully test event policies and event scripts even when the trigger event is difficult to reproduce.
You can configure event policies on Junos devices to execute specific actions in response to an event or series of events. It is important to test an event policy before deploying it in a production environment to ensure that the policy triggers as expected and performs the correct actions. In some cases, it is difficult to simulate the environment that generates the events required to trigger an event policy. In these cases, you can use the Junos logger utility to generate event notifications to trigger the policy.
The Junos event logger is an unsupported shell utility that should not be used on devices in a production environment. However, the utility is well suited for use in lab environments where you are developing and verifying event policies and event scripts.
The logger utility also enables you to record a message in the system log without triggering an event notification. Thus, you can log supplementary information about the system in addition to the messages and events that are automatically logged during normal device operations.
When you use the logger utility to generate event notifications or record custom log
messages, the device uses a modified version of the base OS's
logger
utility. The modified utility accepts a specialized set
of options that are designed for use with the Junos software.
Junos Logger Syntax (Generate an Event)
Syntax (Junos OS)
logger -e EVENT_ID -a attribute=value -d process -l logical-system-name -p priority "message"
Syntax (Junos OS Evolved)
eventd_logger -e EVENT_ID -a attribute=value -d process -l logical-system-name -p priority "message"
Description
Generate an event notification and also log the event in the system log, provided that the device is configured to log events with the specified priority.
Options
Table 1 outlines the required and optional arguments for the Junos event logger utility.
Option | Description | Example |
---|---|---|
| (Optional) Attribute associated with the event. The
attribute name must be lowercase. To specify multiple
attributes, include the For more information about the attributes associated with a particular Junos event, view the event's details in the System Log Explorer tool. |
|
| (Optional) Junos process (daemon) to use as the event's source process. If you do not specify a process, Junos OS uses
|
|
| Event for which to generate the event notification. The event identifier must be uppercase. |
|
| (Optional) Generate and log an event notification in the log file for the specified logical system. |
|
| (Optional) Log the event with the given priority, specified numerically or as a syslog facility.severity pair. The default priority is |
|
message | (Optional) Message string to record in the system log. Quotes are not required, but they are recommended for clarity. | "This is a manually generated test event." |
Junos Logger Syntax (Log a Message)
Syntax (Junos OS)
logger -46Ais -f file -h host -p priority -t tag "message"
Syntax (Junos OS Evolved)
eventd_logger -is -f file -p priority -t tag "message"
Description
Log entries in the system log, provided that the device is configured to log messages with the specified priority.
On devices running Junos OS Evolved, you can also use the Linux logger utility in the system shell to record messages in the system log.
Options
When you use the Junos logger utility to record custom messages in the system
log, the device calls the logger
utility for the underlying
base OS. Only a subset of the logger
options are supported on
Junos devices. Table 2 outlines the supported options.
Option | Description |
---|---|
| (Optional) On Junos OS, use IPv4 or IPv6 addresses only. |
| (Optional) On Junos OS, attempt to send the message to all addresses. |
| (Optional) Copy the contents of the specified file into the system log file. |
| (Optional) On Junos OS, send the message to the specified remote host instead of logging it locally. |
| (Optional) Log the process ID of the logger process with each line. |
| (Optional) Generate the event with the given priority, specified numerically or as a syslog facility.severity pair. The default priority is |
| (Optional) Log the message to standard error, in addition to the system log file. |
| (Optional) Log the entry with the specified tag instead of the default tag, which is the current username. |
message | (Optional) Message string to record in the system log. Quotes are not required, but they are recommended for clarity. |
Use the Junos Logger to Generate Events
The Junos event logger is a shell utility. To use the utility, you must first start a system shell.
To generate an event notification and also log it in the system log file:
The event notification is sent to the eventd
process. The device
also records the event information and specified message in the system log file,
provided you have configured the device to log messages of the given facility
and severity level.
user@host> show log messages | match UI_COMMIT Nov 4 16:26:41 host mgd: UI_COMMIT: This is a test event.
You can use the Junos event logger utility to generate one or more event notifications to trigger and test an event policy when it is difficult to reproduce the events in a given lab environment. In the previous example, the device will execute any policies that trigger on the UI_COMMIT event.
Use the Junos Logger to Log Messages
The Junos logger is a shell utility. To use the utility, you must first start a system shell.
To log information in the system log file:
In this example, the message string is recorded in the system log with the CUSTOM_LOG tag, provided you have configured the device to log messages of the given facility and severity level.
user@host> show log messages | match CUSTOM_LOG Nov 16 14:38:31 host CUSTOM_LOG[21905]: The server is up.