{{ ansible_managed | comment }} module(load="mmrm1stspace") {% set input_modules = { "relp": "imrelp", "udp": "imudp", } %} {% for module in rsyslog_inputs | map(attribute="proto") | map("extract", input_modules) | list | unique %} module(load="{{ module }}") {% endfor %} template(name="incomingFilename" type="list") { constant(value="{{ rsyslog_collector_base_dir }}/") property(name="fromhost-ip") constant(value="/") property(name="timegenerated" dateFormat="year") constant(value="-") property(name="timegenerated" dateFormat="month") constant(value="-") property(name="timegenerated" dateFormat="day") constant(value=".log") } ruleset(name="handleIncomingLogs") { action(type="mmrm1stspace") action( type="omfile" dynaFile="incomingFilename" template="RSYSLOG_FileFormat" ) call sendLogsToRemote } # TODO: add protocol-specific options (eg. TLS) {% for input in rsyslog_inputs %} input( type="{{ input_modules[input.proto] }}" {% if "address" in input %} address="{{ input.address }}" {% endif %} port="{{ input.port }}" ruleset="handleIncomingLogs" ) {% endfor %} # Store local logs too call handleIncomingLogs