Release 0.1.0 - Codename Adze

This is the very first napalm-logs public release.

The main goal of this project is to provide a uniform, vendor-agnostic structure based on the raw syslog messages from the network devices. The documents produced by napalm-logs follow the hierarcy standardised in the OpenConfig and IETF YANG models. There are however corner cases where a YANG model is not available yet, or the information cannot be mapped, at least, at the time being. In this case we still provide a cross-platform structure, even though not using an industry standard.

The syslog messages can be received over a pluggable interface named Listener (see the available Listener modules in this release). The napalm-logs daemon extracts the information from the syslog snippets and maps it into structures defined in the OpenConfig or IETF YANG models. The messages are then published on various channels through the Publisher interface, which is also pluggable.

Messages comming from platforms that could not be identified, or the message mapping is not yet defined (i.e., missing Device Profiles) are by default dropped. Using the Logger interface, the user can externalise these partially-parsed messages to various systems for logging purpose.

Architecture

The napalm-logs daemon starts a list of processes:

The messages are received on the Listener interface vie one of the pluggable modules available (see Listener), and queued to the Server. The Server is the separate process that identifies the platform name based on the structure of the syslog message, then triages them into separate queues, one per platform. For each platform there is a dedicated process started, that reads the messages from the appropriate queue and generates the structured object based on the standard YANG hierarchy. After the object is generated, it is passed to the Publisher which binary serialises the document, encrypts and publishes it on the selected channel.

The internal communitcation between the napalm-logs processes is realised using unidirectional multiprocessing Pipes.

Available Modules

This release provides few modules for the pluggable interfaces:

Listener

Publisher