Templates can be assigned to a single or a group of rules and can contain any kind of text. There is also a default template which is used for any rule that isn't associated with a template. This template can be found under Alert Templates page and can be edited. It also has an option revert it back to its default content.

The template-parser understands if and foreach controls and replaces certain placeholders with information gathered about the alert.




Placeholders are special variables that if used within the template will be replaced with the relevant data, I.e:

The device %hostname has been up for %uptime seconds would result in the following The device localhost has been up for 30344 seconds.

Placeholders can be used within the subjects for templates as well although %faults is most likely going to be worthless.

NOTE: Placeholder names which are contained within another need to be ordered correctly. As an example:

Limit: %value.sensor_limit / %value.sensor_limit_low

Should be done as:

Limit: %value.sensor_limit_low / %value.sensor_limit

The Default Template is a 'one-size-fit-all'. We highly recommend defining your own templates for your rules to include more specific information.


Default Template:

Severity: %severity
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp
Unique-ID: %uid
Rule: {if %name}%name{else}%rule{/if}
{if %faults}Faults:
{foreach %faults}  #%key: %value.string{/foreach}{/if}
Alert sent to: {foreach %contacts}%value <%key> {/foreach}

Ports Utilization Template:

Device Name: %sysName
Severity: %severity
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp
Rule: {if %name}%name{else}%rule{/if}
{if %faults}
{foreach %faults}
Device: %value.sysname
Physical Interface: %value.ifDescr
Interface Description: %value.ifAlias
Interface Speed in Bits: %value.ifSpeed
Inbound Utilization: {calc (((%value.ifInOctets_rte8)/%value.ifSpeed)100)}%
Outbound Utilization: {calc (((%value.ifOutOctets_rate8)/%value.ifSpeed)100)}%

Conditional formatting example, will display a link to the host in email or just the hostname in any other transport:

{if %transport == mail}<a href="https://my.librenms.install/device/device=%hostname/">%hostname</a>

Note the use of double-quotes. Single quotes (') in templates will be escaped (replaced with \') in the output and should therefore be avoided.


We include a few templates for you to use, these are specific to the type of alert rules you are creating. For example if you create a rule that would alert on BGP sessions then you can assign the BGP template to this rule to provide more information.

The included templates apart from the default template are: