Subtree template type

Builds output from a full JSON subtree (CEE). Best used when the schema has already been remapped and an appropriate variable tree exists.

Name:

type="subtree"

Scope:

template

Type:

subtree

Introduced:

7.1.4

Description

The subtree template type generates output from a complete (CEE/JSON) subtree. This is useful when working with data pipelines where schema mapping is done beforehand and a full variable tree (e.g. $!ecs) is available.

This method is required when an entire subtree must be placed at the root of the generated object. With other template types, only sub-containers can be produced. Constant text cannot be inserted inside subtree templates.

Subtree templates are often used with structured outputs such as ommongodb, omelasticsearch, or with text-based outputs like omfile.

They are particularly effective after message transformation with parsing modules such as mmjsonparse, mmaudit, or mmleefparse.

Example: ECS mapping

A typical workflow is to normalize message content into an ECS-compatible subtree and then export it with a subtree template:

set $!ecs!event!original = $msg;
set $!ecs!host!hostname = $hostname;
set $!ecs!log!level = $syslogseverity-text;
set $!ecs!observer!type = "rsyslog";
template(name="ecs_tpl" type="subtree" subtree="$!ecs")

Here the message is mapped into ECS fields under $!ecs. The complete ECS subtree is then emitted as JSON by the template.

Data pipeline usage

Subtree templates are a natural part of rsyslog data pipelines:

        flowchart TD
   A["Input<br>(imudp, imtcp, imkafka)"]
   B["Parser<br>(mmjsonparse, mmaudit, ...)"]
   C["Schema Tree<br>($!ecs)"]
   D["Template<br>type=subtree"]
   E["Action<br>(omfile, omkafka, ...)"]

   A --> B --> C --> D --> E
    

Alternative mapping approach

If you do not yet have a remapped schema tree, consider using a list template instead. List templates allow mapping fields one-by-one into structured output before exporting.

Notes

  • Use subtree templates when a full schema tree is already present.

  • Use list templates when building or remapping the schema incrementally.

See also


Support: rsyslog Assistant | GitHub Discussions | GitHub Issues: rsyslog source project

Contributing: Source & docs: rsyslog source project

© 2008–2025 Rainer Gerhards and others. Licensed under the Apache License 2.0.