Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x
- Puppet >= 5.5.8 < 7.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-rsyslog', '4.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-rsyslog
This module was first published as crayfishx/rsyslog
. It has now moved to puppet/rsyslog
and is managed by the community group Vox Pupuli.
Table of Contents
Description
This module manages the rsyslog server and client configuration. It supports rsyslog v8 and defaults to configuring most things in the newer rainerscript configuration style. Where possible, common configuration patterns have been abstracted so they can be defined in a structured way from hiera. Though there are a lot of customization options with the configuration, highly complex rsyslog configurations are not easily represented in simple data structures and in these circumstances you may have to provide raw rainerscript code to acheive what you need. However, the aim of this module is to abstract as much as possible.
This module is only compatible with Puppet 4.0.0+
Usage
Simply include the rsyslog::client
or rsyslog::server
class
class { 'rsyslog::server': }
Public classes
rsyslog
Configures base rsyslog packages, service and general configuration
rsyslog::server
Configuration directives for a server
rsyslog::client
Configuration directives for a client
Configuration
Configuration options should be configured in Hiera. Defaults are defined in data/common.yaml within the module
Main system configuration
rsyslog::confdir
Specifies the main directory where the module will place all configuration files (default: /etc/rsyslog.d
)
rsyslog::package_name
The package to install (default: rsyslog)
rsyslog::package_version
Package version/state to install, (default: installed)
rsyslog::feature_packages
An array containing a list of extra packages (features) to install.
rsyslog::manage_package
Enable or disable managing the package (default: true)
rsyslog::manage_confdir
Enable or disable managing the configuration directory (confdir) (default: true)
rsyslog::purge_config_files
When rsyslog::manage_confdir
is set to true, this option defines whether or not to purge unmanaged files within the configuration directory (default: true)
rsyslog::config_file
Location of rsyslog main configuration file (default: /etc/rsyslog.conf)
rsyslog::override_default_config
When set to true, the default configuration file is overridden with just an include statement to the configuration directory .d (default: true)
rsyslog::manage_service
Manage the service or not (default: true)
rsyslog::service_name
Name of the service (default: rsyslog)
rsyslog::service_status
State of the service (default: running)
rsyslog::service_enabled
Whether or not to enable the service (default: true)
rsyslog::external_service
Whether or not to use an external service, be it managed by another module (such as a container service managed by garethr-docker
) or unmanaged. MUST be used with rsyslog::service_name
and cannot be used with rsyslog::manage_service
. (default: false)
Rsyslog Configuration Directives
Config file
By default, everything is configured in a single file under $confdir
called 50_rsyslog.conf. This means that packages and other OS specific configurations can also be included (see purge_config_files above). The default file can be changed using the rsyslog::target_file
directive and is relative to the confdir.
eg:
rsyslog::target_file: 50_rsyslog.conf
You can, however, define custom confdirs and/or custom paths for configuration files. All configuration options have the following global options you can add to their hiera keys:
priority
- Order in the file to place the config value relative to the other config options in the file. Takes an integer. Defaults to the priority set for the configuration type. See Ordering for more.target
- Target file to place the config values in. Defaults to 50_rsyslog.conf in the default$confdir
.confdir
- Target configuration directory. Defaults to/etc/rsyslog.d
.
Ordering
The following configuration parameters are defaults for the order of configuration object types within the configuration file. They can be overriden for individual object definitions (see configuring objects below)
## Default object type priorities (can be overridden)
rsyslog::global_config_priority: 10
rsyslog::module_load_priority: 20
rsyslog::input_priority: 30
rsyslog::main_queue_priority: 40
rsyslog::parser_priority: 45
rsyslog::template_priority: 50
rsyslog::filter_priority: 55
rsyslog::action_priority: 60
rsyslog::ruleset_priority: 65
rsyslog::lookup_table_priority: 70
rsyslog::legacy_config_priority: 80
rsyslog::custom_priority: 90
Ordering is done numerically. I.E. 111 is after 110 is after 99.
Configuring Objects
Configuration objects are written to the configuration file in rainerscript format and can be configured in a more abstract way directly from Hiera. The following configuration object types are supported
- Modules
- Global configuration
- Main queue options
- Templates
- Actions
- Inputs
- Lookup_tables
- Parser
- Rulesets
- Filters
- legacy_config
Configuration objects should be declared in the rsyslog::server or rsyslog::client namespaces accordingly.
rsyslog::server::modules
A hash of hashes, hash key represents the module name and accepts a hash with values or an empty hash as its value. The hash accepts the following three values:
type
: values can beexternal or builtin
the default value is external and need not be specified explicitly.config
: its a hash which provides optional parameters to the module loaded.priority
: The module load order can be priortised based on the optionalpriority
value.
eg:
rsyslog::server::modules:
imuxsock: {}
imudp:
config:
threads: "2"
TimeRequery: "8"
batchSize: "128"
omusrmsg:
type: "builtin"
omfile:
type: "builtin"
config:
fileOwner: "syslog"
fileGroup: "adm"
dirGroup: "adm"
fileCreateMode: "0640"
dirCreateMode: "0755"
impstats:
type: "external"
priority: 29
config:
interval: "60"
severity: "7"
log.syslog: "off"
log.file: "/var/log/rsyslog/logs/stats/stats.log"
Ruleset: "remote"
will produce
module (load="imuxsock")
module (load="imudp"
threads="2"
TimeRequery="8"
batchSize="128"
)
module (load="builtin:omusrmsg")
module (load="builtin:omfile"
fileOwner="syslog"
fileGroup="adm"
dirGroup="adm"
fileCreateMode="0640"
dirCreateMode="0755"
)
module (load="impstats"
interval="60"
severity="7"
log.syslog="off"
log.file="/var/log/rsyslog/logs/stats/stats.log"
Ruleset="remote"
)
rsyslog::server::global_config
rsyslog::client::global_config
A hash of hashes, they key represents the configuration setting and the value is a hash with the following keys:
value
: the value of the settingtype
: the type of format to use (legacy or rainerscript), if omitted rainerscript is used.
eg:
rsyslog::server::global_config:
umask:
value: '0000'
type: legacy
priority: 01
RepeatedMsgReduction:
value: 'on'
type: legacy
PrivDropToUser:
value: 'syslog'
type: legacy
PrivDropToGroup:
value: 'syslog'
type: legacy
parser.escapeControlCharactersOnReceive:
value: 'on'
workDirectory:
value: '/var/spool/rsyslog'
maxMessageSize:
value: '64k'
will produce
$umask 0000
$PrivDropToGroup syslog
$PrivDropToUser syslog
$RepeatedMsgReduction on
global (
parser.escapeControlCharactersOnReceive="on"
workDirectory="/var/spool/rsyslog"
maxMessageSize="64k"
)
rsyslog::server::main_queue_opts
Configures the main_queue
object in rsyslog as a hash. eg:
rsyslog::server::main_queue_opts:
queue.maxdiskspace: 1000G
queue.dequeuebatchsize: 1000
will produce
main_queue(
queue.maxdiskspace="1000G"
queue.dequeuebatchsize="1000"
)
rsyslog::server::templates
Configures template
objects in rsyslog. Each element is a hash containing the name of the template, the type and the template data. The type parameter can be one of string
, subtree
, plugin
or list
eg:
rsyslog::server::templates:
remote:
type: string
string: "/var/log/rsyslog/logs/%fromhost-ip%/%fromhost-ip%.log"
tpl2:
type: subtree
subtree: "$1!$usr"
someplug:
type: plugin
plugin: foobar
will produce
template (name="remote" type="string"
string="/var/log/rsyslog/logs/%fromhost-ip%/%fromhost-ip%.log"
)
When using list
, the list_descriptions
hash should contain an array of single element hashes, the key should be constant
or property
with their corresponding parameters in a sub hash.
eg:
plain-syslog:
type: list
list_descriptions:
- constant:
value: '{'
- constant:
value: '\"@timestamp\":\"'
- property:
name: timereported
dateFormat: rfc3339
- constant:
value: '\",\"host\":\"'
- property:
name: hostname
- constant:
value: '\",\"severity\":\"'
- property:
name: syslogseverity-text
- constant:
value: '\",\"facility\":\"'
- property:
name: syslogfacility-text
- constant:
value: '\",\"tag\":\"'
- property:
name: syslogtag
format: json
- constant:
value: '\",\"message\":\"'
- property:
name: msg
format: json
- constant:
value: '\"}'
will produce
template (name="plain-syslog" type="list"
)
{
constant(value="{" )
constant(value="\"@timestamp\":\"" )
property(name="timereported" dateFormat="rfc3339" )
constant(value="\",\"host\":\"" )
property(name="hostname" )
constant(value="\",\"severity\":\"" )
property(name="syslogseverity-text" )
constant(value="\",\"facility\":\"" )
property(name="syslogfacility-text" )
constant(value="\",\"tag\":\"" )
property(name="syslogtag" format="json" )
constant(value="\",\"message\":\"" )
property(name="msg" format="json" )
constant(value="\"}" )
}
rsyslog::server::actions
rsyslog::client::actions
Configures action objects in rainerscript. Each element of the hash contains the type of action, followed by a hash of configuration options. It also accepts an optional facility parameter and the content is formatted based on the no of config options passed and if the facility option is present.
eg:
rsyslog::server::actions:
all_logs:
type: omfile
facility: "*.*;auth,authpriv.none"
config:
dynaFile: "remoteSyslog"
specifics: "/var/log/test"
kern_logs:
type: omfile
facility: "kern.*"
config:
dynaFile: "remoteSyslog"
file: "/var/log/kern.log"
cmd: "/proc/cmdline"
elasticsearch:
type: omelasticsearch
config:
queue.type: "linkedlist"
queue.spoolDirectory: /var/log/rsyslog/queue
will produce
#Note: There is only 2 options passed so formats in a single line.
# all_logs
*.*;auth,authpriv.none action(type="omfile" dynaFile="remoteSyslog" specifics="/var/log/test" )
#Note: There is more than 2 options passed so formats into multi line with facility.
# kern_logs
kern.* action(type="omfile"
dynaFile="remoteSyslog"
file="/var/log/kern.log"
cmd="/proc/cmdline"
)
#Note: There is no facility option passed so formats it without facility.
action(type="omelasticsearch"
queue.type="linkedlist"
queue.spoolDirectory="/var/log/rsyslog/queue"
)
rsyslog::server::inputs
rsyslog::client::inputs
Configures input objects in rainerscript. Each element of the hash contains the type of input, followed by a hash of configuration options. Eg:
rsyslog::server::inputs:
imudp:
type: imudp
config:
port: '514'
will produce
input(type="imudp"
port="514"
)
rsyslog::server::lookup_tables
Configures lookup_tables objects in rainerscript AND generates the JSON lookup_table file. Each key of the hash contains the name of the lookup/lookup_table.
The elements of the hash contain a json
hash containing the values for the JSON file, a lookup_file element that is the path to where the JSON file will be stored,
and a reload_on_hup boolean.
The json hash contains 4 elements: version
, nolookup
, type
, and table
. They MUST be specified in this order as per the
lookup_tables documentation:
version
- Integer denoting the version/revision of the lookup_table file.nolookup
- String denoting what should be returned if a lookup doesn't find a match in the table.type
- Enumerable denoting the type of lookup table. This can bestring
,array
, orsparseArray
.table
- An Array of hashes containing the table index and value for each lookup.
rsyslog::server::lookup_tables:
ip_lookup:
lookup_json:
version: 1
nolookup: 'unk'
type: 'string'
table:
- index: '1.1.1.1'
value: 'AB'
- index: '2.2.2.2'
value: 'CD'
lookup_file: '/etc/rsyslog.d/tables/ip_lookup.json'
reload_on_hup: true
will produce
# /etc/rsyslog.d/tables/ip_lookup.json
{
"version": 1,
"nomatch": "unk",
"type": "string",
"table": [
{
"index": "1.1.1.1",
"value": "A"
},
{
"index": "2.2.2.2",
"value": "B"
}
]
}
and
lookup_table(name="ip_lookup" file="/etc/rsyslog.d/tables/ip_lookup.json" reloadOnHUP="on")
NOTE: This does not create the actual lookup()
call in the Rsyslog configuration file(s). Currently that is only supported via
the rsyslog::server::custom_config
and rsyslog::client::custom_config
resources as it requires setting rsyslog variables (I.E. - set $.iplook = lookup('ip_lookup', $hostname)
).
rsyslog::server::parser
Configures parser objects in rainerscript. Each Element of the hash contains the type of parser, followed by a hash of configuration options. Eg:
rsyslog::server::parser:
pmrfc3164_hostname_with_slashes:
type: pmrfc3164
config:
permit.slashesinhostname: 'on'
will produce
parser(name="pmrfc3164_hostname_with_slashes"
type="pmrfc3164"
permit.slashesinhostname="on"
)
rsyslog::server::rulesets
Configures Rsyslog ruleset blocks in rainerscript. There are two elements in the rulesets hash:
parameters
- settings to pass to the ruleset determining things such as which rsyslog parser to use or the ruleset's queue size.rules
- the actual content that goes inside the ruleset. Currently the following are supported:action
- rsyslog actions defined inside of the ruleset.lookup
- Sets a variable to the results of an rsyslog lookup.set
- Set an rsyslog variable or property. Property explicitly requires that the set name be a string beginning with$!
, while a variable can be a plain string or a string starting with$.
.- NOTE: Setting the variable with a string that does NOT begin with
$.
is deprecated and will be removed in the next major release!
- NOTE: Setting the variable with a string that does NOT begin with
call
- call a specific action.exec
- execute the following system commandexpression_filter
- Filter based on one or more expressions.property_filter
- Filter based on one or more RsyslogD properties.
stop
- a Boolean to set if the ruleset ends with a stop or not.
NOTE: For any rule
key that can also be a standalone rsyslog resource (action
, expression_filter
, or property_filter
), the user MUST define a name key that will be passed as the resource name to the template. This will be simplified in a future release.
rsyslog::server::rulesets:
ruleset_eth0_514_tcp:
parameters:
parser: pmrfc3164.hostname_with_slashes
queue.size: '10000'
rules:
- set:
# Set a Property with a value from a template.
$!rcv_time: 'exec_template("s_rcv_time")'
- set:
# Set a Variable with a value from a template.
$.utime_gen: 'exec_template("s_unixtime_generated")'
- set:
# Set a Variable using the deprecated method with a value from $uuid
uuid: '$uuid'
- action:
name: utf8-fix
type: mmutf8fix
- action:
name: test-action
type: omfile
facility: "*.*;auth,authpriv.none"
config:
dynaFile: "remoteSyslog"
specifics: "/var/log/test"
- action:
name: test-action2
type: omfile
config:
dynaFile: "remoteSyslog"
specifics: "/var/log/test"
- lookup:
var: srv
lookup_table: srv-map
expr: '$fromhost-ip'
- call: 'action.parse.rawmsg'
- call: 'action.parse.r_msg'
- exec: '/bin/echo'
stop: true
Will produce:
ruleset (name="ruleset_eth0_514_tcp"
parser="pmrfc3164.hostname_with_slashes"
queue.size="10000"
) {
set $.rcv_time = exec_template("s_rcv_time");
set $.utime_gen = exec_template("s_unixtime_generated");
set $.uuid = $uuid;
# utf8-fix action
action(type="mmutf8fix"
name="utf8-fix"
)
# test-action action
*.*;auth,authpriv.none action(type="omfile"
name="test-action"
dynaFile="remoteSyslog"
specifics="/var/log/test"
)
# test-action2 action
action(type="omfile"
name="test-action2"
dynaFile="remoteSyslog"
specifics="/var/log/test"
)
set $.srv = lookup("srv-map", $fromhost-ip);
call action.parse.rawmsg
call action.parse.r_msg
^/bin/echo
stop
}
Rulesets can also contain filtering logic for calling other rulesets, setting other variables, or even dropping logs based on specific values. Filtering logic is required to utilize lookup_tables
and lookup
calls.
Rsyslog puppet supports two kinds of filters:
expression_filter
property_filter
More information about Rsyslog Filters can be found at: http://www.rsyslog.com/doc/v8-stable/configuration/filters.html
Ruleset Expression Filter
Expression filters use traditional if/else
and if/else if/else
logic to execute rules on specific return values. lookup_tables
are compatible ONLY with expression_filters
The Ruleset expression_filter
key has a few different keys than the rsyslog::server::expression_filters
parameter:
name
- Currently required to prevent errors. This is logical and only used by Puppet.filter
- Thefilter
key is synonymous with theconditionals
key found in thersyslog::server::expression_filters
parameter. See the Expression Filter Docs for more info.
Example:
rsyslog::server::rulesets:
ruleset_eth0_514_udp:
parameters:
queue.type: LinkedList
rules:
- expression_filter:
filter:
if:
expression: '$fromhost-ip == "192.168.255.1"'
tasks:
- call: "ruleset.action.rawlog.standard"
- stop: true
- call: "ruleset.client.log.standard"
- call: "ruleset.unknown.standard"
stop: true
will produce:
ruleset (name="ruleset_eth0_514_tcp"
queue.type="LinkedList"
) {
if $fromhost-ip == "192.168.255.1" then {
call ruleset.action.rawlog.standard
stop
}
call ruleset.client.log.standard
call ruleset.unknown.standard
stop
}
Example with lookup:
rsyslog::server::lookup_tables:
srv-map:
lookup_json:
version: 1
nolookup: 'unk'
type: 'string'
table:
- index: '192.168.255.10'
value: 'windows'
- index: '192.168.255.11'
value: 'windows'
- index: '192.168.255.12'
value: 'linux'
lookup_file: '/etc/rsyslog.d/tables/srv-map.json'
reload_on_hup: true
rsyslog::server::rulesets:
ruleset_lookup_set_windows_by_ip:
rules:
- lookup:
var: srv
lookup_table: srv-map
expr: '$fromhost-ip'
- expression_filter:
filter:
if:
expression: '$.srv == "windows"'
tasks:
- call: "ruleset.action.forward.windows"
- stop: true
"else if":
expression: '$.srv == "unk"'
tasks:
- call: "ruleset.action.drop.unknown"
- stop: true
else:
tasks:
- stop: true
stop: true
Will produce:
#/etc/rsyslog.d/tables/srv-map.json
{
"version": 1,
"nomatch": "unk",
"type": "string",
"table": [
{
"index": "192.168.255.10",
"value": "windows"
},
{
"index": "192.168.255.11",
"value": "windows"
},
{
"index": "192.168.255.12",
"value": "linux"
}
]
}
#rsyslog.conf
lookup_table(name="srv-map" file="/etc/rsyslog.d/tables/srv-map.json" reloadOnHUP=on)
ruleset(name="ruleset_lookup_set_windows_by_ip"
) {
set $.srv = lookup("srv-map", $fromhost-ip);
if ($.srv == "windows") then {
call ruleset.action.forward.windows
stop
} else if ($.srv == "unk") then {
call ruleset.action.drop.unknown
stop
} else {
stop
}
}
Ruleset Property Filters
property_filters
are unique to rsyslogd. They allow to filter on any property, like HOSTNAME, syslogtag and msg. property_filters
are faster than expression_filters
as they us built-in rsyslog properties to lookup and match data.
Example:
rsyslog::server::rulesets:
ruleset_msg_check_for_error:
rules:
- property_filter:
property: 'msg'
operator: 'contains'
value: 'error'
tasks:
- call: 'ruleset.action.error'
- stop: true
Will Generate:
#rsyslog.conf
ruleset(name="ruleset_msg_check_for_error"
) {
:msg, contains, "informational" {
call ruleset.action.error
stop
}
}
rsyslog::server::property_filters
rsyslog::server::expression_filters
Rsyslog has the ability to filter each log line based on log properties and/or variables.
There are four kinds of filters in Rsyslog:
- "traditional" severity/facility based Selectors - handled in the Actions parameter.
- BSD-style blocks - not supported in Rsyslog 7+ and as such are not supported in this module.
- Property-based Filters
- Expression-based Filters
This section covers Property and Expression based filters.
Property-based Filters
Property-based filters are unique to rsyslogd. They allow to filter on any property, like HOSTNAME, syslogtag and msg. Property-based filters are only supported with native properties in Rsyslog. See Rsyslog Properties for a list of supported properties.
The rsyslog::server::property_filters
parameter is a Hash of hashes where the hash-key is the logical name for the filter. This name is for Puppet resource naming purposes only and has no other function. The filter name has several additional child keys as well:
property
- the Rsyslogd property the filter will lookup.operator
- the Rsyslogd property filter-supported operator to compare the property value with the expected value. See Rsyslog Property Compare-Operations for a list of supported operators. These operators are validated with theRsyslog::PropertyOperator
data type.value
- the value that the property filter will match against.tasks
- A hash of actions to take in the event of a filter match.- All sub-keys for the
tasks
hash maps to another rsyslog configuration object.
- All sub-keys for the
eg:
rsyslog::server::property_filters:
hostname_filter:
property: hostname
operator: contains
value: some_hostname
tasks:
- action:
name: omfile_defaults
type: omfile
facility: "*.*;auth,authpriv.none"
config:
dynaFile: "remoteSyslog"
specifics: "/var/log/test"
- stop: true
ip_filter:
property: fromhost-ip
operator: startswith
value: '192'
tasks:
- stop: true
will produce
:hostname, contains, "some_hostname" {
*.*;auth,authpriv.none action(type="omfile" dynaFile="remoteSyslog" specifics="/var/log/test")
stop
}
:fromhost-ip, startswith, "192" {
stop
}
Expression-based Filters
Expression-based filters allow filtering on arbitrary complex expressions, which can include boolean, arithmetic and string operations.
Expression-based filters are also what are used to match against lookup_table data.
The rsyslog::server::expression_filters
parameter is a Hash of hashes where the hash-key is the logical name for the filter. This name is for Puppet resource naming purposes only and has no other function. The filter name has a few additional child keys as well:
conditionals
- Hash containing one of three keys (if
,else if
, andelse
), which are hashes of hashes.if
/else if
/else
- Hash of hashes. Must be one ofif
,else if
, orelse
expression
- The string "expression" that will be used to match values. With all the potential options for logic, this was the easiest way to provide everyone with what they may need.tasks
- A hash of actions to take in the event of a filter match.- All sub-keys for the
tasks
hash maps to another rsyslog configuration object.
- All sub-keys for the
eg:
rsyslog::server::expression_filters:
hostname_filter:
conditionals:
if:
expression: '$msg contains "error"'
tasks:
- action:
name: omfile_error
type: omfile
config:
specifics: /var/log/errlog
will produce
if $msg contains "error" then {
action(type="omfile" specifics="/var/log/errlog")
}
NOTE: Due to the amount of potential options available to the user, the expression
key is a plain text string field and the expression logic must be written out. See next example for more details.
eg:
rsyslog::server::expression_filters:
complex_filter:
if:
expression: '$syslogfacility-text == "local0" and $msg startswith "DEVNAME" and ($msg contains "error1" or $msg contains "error0")'
tasks:
- stop: true
else:
tasks:
- action:
name: error_log
type: omfile
config:
specifics: /var/log/errlog
will produce:
if $syslogfacility-text == "local0" and $msg startswith "DEVNAME" and ($msg contains "error1" or $msg contains "error0") then {
stop
}
else {
action(type="omfile" specifics="/var/log/errlog")
}
rsyslog::server::legacy_config
Legacy config support is provided to facilitate backwards compatibility with sysklogd
format as this module mainly supports rainerscript
format.
A hash of hashes, each hash name is used as the comment/reference for the setting and the hash will have the following values:
key
: the key/logger rule settingvalue
: the value/target of the settingtype
: the type of format to use (legacy or sysklogd), if omitted sysklogd is used. If legacy type is usedkey
can be skipped and one long string can be provided as value.
eg:
rsyslog::client::legacy_config:
auth_priv_rule:
key: "auth,authpriv.*"
value: "/var/log/auth.log"
auth_none_rule:
key: "*.*;auth,authpriv.none"
value: "/var/log/syslog"
syslog_all_rule:
key: "syslog.*"
value: "/var/log/rsyslog.log"
mail_error_rule:
key: "mail.err"
value: "/var/log/mail.err"
news_critical_rule:
key: "news.crit"
value: "/var/log/news/news.crit"
will produce
# auth_priv_rule
auth,authpriv.* /var/log/auth.log
# auth_none_rule
*.*;auth,authpriv.none /var/log/syslog
# syslog_all_rule
syslog.* /var/log/rsyslog.log
# mail_error_rule
mail.err /var/log/mail.err
# news_critical_rule
news.crit /var/log/news/news.crit
legacy type values can be passed as one long string skipping the key parameter like below and you can also override the priority in the hash to rearrange the contents eg:
emergency_rule:
key: "*.emerg"
value: ":omusrmsg:*"
testing_legacy_remotelog:
value: "*.* @@logmonster.cloudfront.net:1514"
type: "legacy"
priority: 12
testing_legacy_rule:
value: "*.* >dbhost,dbname,dbuser,dbpassword;dbtemplate"
type: "legacy"
will produce
# emergency_rule
*.emerg :omusrmsg:*
# testing_legacy_rule
*.* >dbhost,dbname,dbuser,dbpassword;dbtemplate
# testing_legacy_remotelog
*.* @@logmonster.cloudfront.net:1514
Positioning
All rsyslog object types are positioned according to the default variables (see Ordering). The position can be overridden for any object by adding the optional priority
parameter.
eg:
rsyslog::server::actions:
elasticsearch:
type: omelasticsearch
config:
queue.type: "linkedlist"
queue.spoolDirectory: "/var/log/rsyslog/queue"
priority: 35
Formatting
This module attempts to abstract rainerscript objects into data structures that can be handled easily within hiera, however there are clearly times when you need to add some more code structure around an object, such as conditionals. For simple code additions, the template
, action
, input
and global_config
object types support the optional parameter of format
which takes Puppet EPP formatted template as a value, using the variable $content
to signify the object itself. For example, to wrap an action in a simple conditional you could format it as
eg:
rsyslog::server::actions:
elasticsearch:
type: omelasticsearch
config:
queue.type: "linkedlist"
queue.spoolDirectory: "/var/log/rsyslog/queue"
format: |
if [ $fromhost == "foo.localdomain"] then {
<%= $content %>
}
For more complicated code structures that don't lend themselves well to a structured format, like multiple nested conditionals there is also a special configuration object type called custom_config. custom_config
takes two arguments, priority
to determine where in the file it should be configured, and content
a text string to insert. By default the priority is set by the custom_config_priority
parameter (see Ordering)
rsyslog::server::custom_config:
localhost_action:
priority: 45
content: |
if $fromhost == ["foo.localdomain","localhost"] then {
action(type="omfile" file="/var/log/syslog")
} else {
action(type="omelasticsearch"
queue.type="linkedlist"
queue.spoolDirectory="/var/log/rsyslog/queue"
)
}
stop:
content: |
if [ $fromhost == "foo" ] then stop
Known Issues
- Designed specifically for Rsyslog 8+ and the Rainerscript configuration format. Legacy configuration/Rsyslog < 8 support requires the use of the
custom_config
parameter. - The upstream repository for EL8 is currently broken and will not work.
License
- This module is licensed under Apache 2.0, see LICENSE for more details
Maintainer
- This module is maintained by Vox Pupuli. It was originally written by Craig Dunn (craig@craigdunn.org) @crayfishx.
- Sponsored by Skyscape Cloud Services
Reference
Table of Contents
Classes
rsyslog
: Class: rsyslog =========================== Full description of class rsyslog here. Parameters ---------- Document parameters here. * `samrsyslog::base
: Class: rsyslog::base Description ----------- This class manages the base installation for rsyslogrsyslog::client
:rsyslog::config
:rsyslog::config::actions
:rsyslog::config::custom
:rsyslog::config::expression_filters
:rsyslog::config::global
:rsyslog::config::inputs
:rsyslog::config::legacy
:rsyslog::config::lookup_tables
:rsyslog::config::main_queue
:rsyslog::config::modules
:rsyslog::config::parsers
:rsyslog::config::property_filters
:rsyslog::config::rulesets
:rsyslog::config::templates
:rsyslog::server
: Class that manages Rsyslog Server config
Defined types
rsyslog::component::action
:rsyslog::component::custom_config
: This is a catch-all definition for use in edge cases where some code needs inserting somewhere in rsyslog.d according to priority but cannotrsyslog::component::expression_filter
:rsyslog::component::global_config
:rsyslog::component::input
:rsyslog::component::legacy_config
:rsyslog::component::lookup_table
:rsyslog::component::main_queue
:rsyslog::component::module
:rsyslog::component::parser
:rsyslog::component::property_filter
:rsyslog::component::ruleset
:rsyslog::component::template
:rsyslog::generate_concat
:
Data types
Rsyslog::Actions
: Struct data type alias for Rsyslog ActionsRsyslog::Actions::Outputs::Omamqp1
:Rsyslog::Actions::Outputs::Omelasticsearch
:Rsyslog::Actions::Outputs::Omfile
:Rsyslog::Actions::Outputs::Omfwd
:Rsyslog::Actions::Outputs::Omhiredis
:Rsyslog::Actions::Outputs::Omhttpfs
:Rsyslog::Actions::Outputs::Omjournal
: Struct data type for the Rsyslog JournalD module's Action optionsRsyslog::Actions::Outputs::Omkafka
: Struct data type for the Rsyslog Kafka module's Action optionsRsyslog::Actions::Outputs::Omlibdbi
: Struct data type for the Rsyslog libdbi module's Action optionsRsyslog::Actions::Outputs::Ommail
: Struct data type for the Rsyslog E-Mail module's Action optionsRsyslog::Actions::Outputs::Ommongodb
: Struct data type for the Rsyslog MongoDB output module's Action optionsRsyslog::Actions::Outputs::Ommysql
: Struct data type alias for MySQL Rsyslog output module.Rsyslog::Actions::Outputs::Ompgsql
: Struct data type for the Rsyslog PostgreSQL module's Action options Not allowing the serverport, uid, or pwd rsyslog options as they are ideRsyslog::Actions::Outputs::Ompipe
: Struct data type for the Rsyslog Pipe module's Action optionsRsyslog::Actions::Outputs::Omprog
: Struct data type for the Rsyslog Program module's Action optionsRsyslog::Actions::Outputs::Omrelp
: Struct data type for the Rsyslog RELP module's Action optionsRsyslog::Actions::Outputs::Omsnmp
: Struct data type for the Rsyslog SNMP module's Action optionsRsyslog::Actions::Outputs::Omudpspoof
: Struct data type for the Rsyslog UDP Spoof module's Action optionsRsyslog::Actions::Outputs::Omusrmsg
: Struct data type for the Rsyslog User MSG module's Action Parameters.Rsyslog::Actions::Parameters
: Struct data type for general Rsyslog Action parametersRsyslog::Inputs::Imbatchreports
: Data type for Rsyslog Input module parameters for batch report inputs.Rsyslog::Inputs::Imfile
: Data type for Rsyslog Input module input parameters for file inputs.Rsyslog::Inputs::Imgssapi
: Data type for Rsyslog Input module input parameters for gssapi.Rsyslog::Inputs::Imkafka
: Data type for Rsyslog Input module input parameters for Apache Kafka.Rsyslog::Inputs::Improg
: Data type for Rsyslog Input module input parameters for Program inputRsyslog::Inputs::Imptcp
: Data type for Rsyslog Plain TCP input moduleRsyslog::Inputs::Imrelp
: Data type for Rsyslog Plain TCP input moduleRsyslog::Inputs::Imtcp
: Data type for Rsyslog TCP input moduleRsyslog::Inputs::Imtuxedoulog
: Data for Rsyslog Input Tuxedo ULOG moduleRsyslog::Inputs::Imudp
: Data type for Rsyslog UDP input moduleRsyslog::Inputs::Imuxsock
: Data type for Rsyslog Unix Socket input moduleRsyslog::Modules::Input
:Rsyslog::Modules::Inputs::Imdocker
: Data type for Rsyslog module parameters for imdockerRsyslog::Modules::Inputs::Imfile
: Data type for Rsyslog Input module parameters for file inputs.Rsyslog::Modules::Inputs::Imjournal
: Rsyslog imjournal Module parameter data typeRsyslog::Modules::Message
:Rsyslog::Modules::Output
:Rsyslog::Modules::Parser
:Rsyslog::Modules::String
:Rsyslog::PropertyOperator
: Enumerable custom type for rsyslog property operatorsRsyslog::Queue::Parameters
:Rsyslog::Syslog::Facility
: Syslog facility data typeRsyslog::Syslog::Severity
: Syslog severoty data type
Classes
rsyslog
Class: rsyslog
Full description of class rsyslog here.
Parameters
Document parameters here.
sample parameter
Explanation of what this parameter affects and what it defaults to. e.g. "Specify one or more upstream ntp servers as an array."
Variables
Here you should define a list of variables that this module would require.
sample variable
Explanation of how this variable affects the function of this class and if it has a default. e.g. "The parameter enc_ntp_servers must be set by the External Node Classifier as a comma separated list of hostnames." (Note, global variables should be avoided in favor of class parameters as of Puppet 2.6.)
Examples
Authors
Author Name author@domain.com
Copyright
Copyright 2016 Your name here, unless otherwise noted.
Examples
class { 'rsyslog':
servers => [ 'pool.ntp.org', 'ntp.local.company.com' ],
}
Parameters
The following parameters are available in the rsyslog
class.
confdir
Data type: String
package_name
Data type: String
package_version
Data type: String
config_file
Data type: String
feature_packages
Data type: Array
module_load_priority
Data type: Integer
service_name
Data type: String
service_status
Data type: String
service_enabled
Data type: Boolean
override_default_config
Data type: Boolean
manage_package
Data type: Boolean
use_upstream_repo
Data type: Boolean
manage_confdir
Data type: Boolean
manage_service
Data type: Boolean
external_service
Data type: Boolean
purge_config_files
Data type: Boolean
global_config_priority
Data type: Integer
legacy_config_priority
Data type: Integer
template_priority
Data type: Integer
action_priority
Data type: Integer
input_priority
Data type: Integer
custom_priority
Data type: Integer
main_queue_priority
Data type: Integer
lookup_table_priority
Data type: Integer
parser_priority
Data type: Integer
ruleset_priority
Data type: Integer
filter_priority
Data type: Integer
target_file
Data type: String
rsyslog::base
Class: rsyslog::base
Description
This class manages the base installation for rsyslog
rsyslog::client
The rsyslog::client class.
Parameters
The following parameters are available in the rsyslog::client
class.
global_config
Data type: Optional[Hash]
Default value: {}
legacy_config
Data type: Optional[Hash]
Default value: {}
actions
Data type: Optional[Hash]
Default value: {}
inputs
Data type: Optional[Hash]
Default value: {}
custom_config
Data type: Optional[Hash]
Default value: {}
modules
Data type: Optional[Hash]
Default value: {}
lookup_tables
Data type: Optional[Hash]
Default value: {}
rulesets
Data type: Hash
Default value: {}
property_filters
Data type: Hash
Default value: {}
expression_filters
Data type: Hash
Default value: {}
rsyslog::config
The rsyslog::config class.
Parameters
The following parameters are available in the rsyslog::config
class.
global_config
Data type: Optional[Hash]
Default value: {}
legacy_config
Data type: Optional[Hash]
Default value: {}
templates
Data type: Optional[Hash]
Default value: {}
actions
Data type: Optional[Hash]
Default value: {}
inputs
Data type: Optional[Hash]
Default value: {}
custom_config
Data type: Optional[Hash]
Default value: {}
main_queue_opts
Data type: Optional[Hash]
Default value: {}
modules
Data type: Optional[Hash]
Default value: {}
lookup_tables
Data type: Optional[Hash]
Default value: {}
parsers
Data type: Optional[Hash]
Default value: {}
rulesets
Data type: Optional[Hash]
Default value: {}
property_filters
Data type: Hash
Default value: {}
expression_filters
Data type: Hash
Default value: {}
rsyslog::config::actions
The rsyslog::config::actions class.
rsyslog::config::custom
The rsyslog::config::custom class.
rsyslog::config::expression_filters
The rsyslog::config::expression_filters class.
rsyslog::config::global
The rsyslog::config::global class.
rsyslog::config::inputs
The rsyslog::config::inputs class.
rsyslog::config::legacy
The rsyslog::config::legacy class.
rsyslog::config::lookup_tables
The rsyslog::config::lookup_tables class.
rsyslog::config::main_queue
The rsyslog::config::main_queue class.
rsyslog::config::modules
The rsyslog::config::modules class.
rsyslog::config::parsers
The rsyslog::config::parsers class.
rsyslog::config::property_filters
The rsyslog::config::property_filters class.
rsyslog::config::rulesets
The rsyslog::config::rulesets class.
rsyslog::config::templates
The rsyslog::config::templates class.
rsyslog::server
Class that manages Rsyslog Server config
Parameters
The following parameters are available in the rsyslog::server
class.
global_config
Data type: Optional[Hash]
Default value: {}
legacy_config
Data type: Optional[Hash]
Default value: {}
templates
Data type: Optional[Hash]
Default value: {}
actions
Data type: Optional[Hash]
Default value: {}
inputs
Data type: Optional[Hash]
Default value: {}
custom_config
Data type: Optional[Hash]
Default value: {}
main_queue_opts
Data type: Optional[Hash]
Default value: {}
modules
Data type: Optional[Hash]
Default value: {}
lookup_tables
Data type: Optional[Hash]
Default value: {}
parsers
Data type: Optional[Hash]
Default value: {}
rulesets
Data type: Optional[Hash]
Default value: {}
property_filters
Data type: Hash
Default value: {}
expression_filters
Data type: Hash
Default value: {}
Defined types
rsyslog::component::action
The rsyslog::component::action class.
Parameters
The following parameters are available in the rsyslog::component::action
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
type
Data type: String
config
Data type: Optional[Hash]
facility
Data type: Optional[String]
Default value: 'default'
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::custom_config
This is a catch-all definition for use in edge cases where some code needs inserting somewhere in rsyslog.d according to priority but cannot be modelled with any of the shipped models.
Parameters
The following parameters are available in the rsyslog::component::custom_config
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
content
Data type: String
filename_part
Data type: String
Default value: $name
rsyslog::component::expression_filter
The rsyslog::component::expression_filter class.
Parameters
The following parameters are available in the rsyslog::component::expression_filter
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
conditionals
Data type: Hash
format
Data type: String
Default value: '<%= $content %>'
rsyslog::component::global_config
The rsyslog::component::global_config class.
Parameters
The following parameters are available in the rsyslog::component::global_config
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
value
Data type: Optional[String]
Default value: ''
config
Data type: Optional[Hash]
Default value: {}
type
Data type: Optional[String]
Default value: 'rainerscript'
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::input
The rsyslog::component::input class.
Parameters
The following parameters are available in the rsyslog::component::input
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
type
Data type: String
config
Data type: Optional[Hash]
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::legacy_config
The rsyslog::component::legacy_config class.
Parameters
The following parameters are available in the rsyslog::component::legacy_config
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
value
Data type: String
key
Data type: Optional[String]
Default value: 'legacy_key'
type
Data type: Optional[String]
Default value: 'sysklogd'
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::lookup_table
The rsyslog::component::lookup_table class.
Parameters
The following parameters are available in the rsyslog::component::lookup_table
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
lookup_json
Data type: Hash
lookup_file
Data type: Stdlib::AbsolutePath
reload_on_hup
Data type: Boolean
rsyslog_in_docker
Data type: Boolean
Default value: false
json_file
Data type: Optional[Stdlib::AbsolutePath]
Default value: undef
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::main_queue
The rsyslog::component::main_queue class.
Parameters
The following parameters are available in the rsyslog::component::main_queue
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
config
Data type: Hash
rsyslog::component::module
The rsyslog::component::module class.
Parameters
The following parameters are available in the rsyslog::component::module
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
config
Data type: Optional[Hash]
Default value: {}
type
Data type: Optional[String]
Default value: 'external'
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::parser
The rsyslog::component::parser class.
Parameters
The following parameters are available in the rsyslog::component::parser
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
type
Data type: String
config
Data type: Optional[Hash]
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::property_filter
The rsyslog::component::property_filter class.
Parameters
The following parameters are available in the rsyslog::component::property_filter
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
property
Data type: String
operator
Data type: Rsyslog::PropertyOperator
value
Data type: String
tasks
Data type: Array
Default value: []
format
Data type: String
Default value: '<%= $content %>'
rsyslog::component::ruleset
The rsyslog::component::ruleset class.
Parameters
The following parameters are available in the rsyslog::component::ruleset
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
rules
Data type: Optional[Array]
Default value: []
stop
Data type: Optional[Boolean]
Default value: false
parameters
Data type: Optional[Hash]
Default value: {}
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::component::template
The rsyslog::component::template class.
Parameters
The following parameters are available in the rsyslog::component::template
defined type.
priority
Data type: Integer
target
Data type: String
confdir
Data type: String
type
Data type: Enum['string', 'list', 'subtree', 'plugin']
list_descriptions
Data type: Optional[Array]
Default value: []
string
Data type: Optional[String]
Default value: ''
subtree
Data type: Optional[String]
Default value: ''
plugin
Data type: Optional[String]
Default value: ''
options
Data type: Optional[Hash]
Default value: {}
format
Data type: Optional[String]
Default value: '<%= $content %>'
rsyslog::generate_concat
The rsyslog::generate_concat class.
Parameters
The following parameters are available in the rsyslog::generate_concat
defined type.
confdir
Data type: String
target
Data type: String
Data types
Rsyslog::Actions
Struct data type alias for Rsyslog Actions
Alias of Array[Struct[{ name => String[1], type => Rsyslog::Modules::Output, facility => Optional[String[1]], action_params => Optional[Rsyslog::Actions::Parameters], queue_params => Optional[Rsyslog::Queue::Parameters], output_params => Optional[Variant[ Rsyslog::Actions::Outputs::Omamqp1, Rsyslog::Actions::Outputs::Omelasticsearch, Rsyslog::Actions::Outputs::Omfile, Rsyslog::Actions::Outputs::Omfwd, Rsyslog::Actions::Outputs::Omhiredis, Rsyslog::Actions::Outputs::Omhttpfs, Rsyslog::Actions::Outputs::Omjournal, Rsyslog::Actions::Outputs::Omkafka, Rsyslog::Actions::Outputs::Omlibdbi, Rsyslog::Actions::Outputs::Ommail, Rsyslog::Actions::Outputs::Ommongodb, Rsyslog::Actions::Outputs::Ommysql, Rsyslog::Actions::Outputs::Ompgsql, Rsyslog::Actions::Outputs::Ompipe, Rsyslog::Actions::Outputs::Omprog, Rsyslog::Actions::Outputs::Omrelp, Rsyslog::Actions::Outputs::Omsnmp, Rsyslog::Actions::Outputs::Omudpspoof, Rsyslog::Actions::Outputs::Omusrmsg, ]], }]]
Rsyslog::Actions::Outputs::Omamqp1
The Rsyslog::Actions::Outputs::Omamqp1 data type.
Alias of Struct[{ host => String[1], target => String[1], username => Optional[String[1]], password => Optional[String[1]], template => Optional[String[1]], idletimeout => Optional[Integer], reconnectdelay => Optional[Integer], maxretries => Optional[Integer], disablesasl => Optional[Integer], }]
Rsyslog::Actions::Outputs::Omelasticsearch
The Rsyslog::Actions::Outputs::Omelasticsearch data type.
Alias of Struct[{ server => Optional[Variant[Stdlib::Host, Array[Stdlib::Host]]], serverport => Optional[Stdlib::Port], healthchecktimeout => Optional[Integer], searchindex => Optional[String[1]], dynsearchindex => Optional[Enum['on', 'off']], searchtype => Optional[String[1]], dynsearchtype => Optional[Enum['on', 'off']], pipelinename => Optional[String[1]], dynpipelinename => Optional[Enum['on', 'off']], usehttps => Optional[Enum['on', 'off']], timeout => Optional[Pattern[/^([0-9]+)(ms|s|m)$/]], template => Optional[String[1]], bulkmode => Optional[Enum['on', 'off']], maxbytes => Optional[Pattern[/^([0-9]+)[kKmMgGtT]$/]], parent => Optional[String[1]], dynparent => Optional[Enum['on', 'off']], uid => Optional[String[1]], pwd => Optional[String[1]], errorfile => Optional[Stdlib::Absolutepath], 'tls.cacert' => Optional[Stdlib::Absolutepath], 'tls.mycert' => Optional[Stdlib::Absolutepath], 'tls.myprivkey' => Optional[Stdlib::Absolutepath], bulkid => Optional[String[1]], dynbulkid => Optional[Enum['on', 'off']], writeoperation => Optional[Enum['index', 'create']], retryfailures => Optional[Enum['on', 'off']], retryruleset => Optional[String[1]], 'ratelimit.interval' => Optional[Integer], 'ratelimit.burst' => Optional[Integer], }]
Rsyslog::Actions::Outputs::Omfile
The Rsyslog::Actions::Outputs::Omfile data type.
Alias of Struct[{ file => Optional[Stdlib::Absolutepath], dynafile => Optional[String[1]], template => Optional[String[1]], closetimeout => Optional[Integer], dynafilecachesize => Optional[Integer], ziplevel => Optional[Integer], veryrobustzip => Optional[Enum['on', 'off']], flushinterval => Optional[Integer], asyncwriting => Optional[Enum['on', 'off']], flushontxend => Optional[Enum['on', 'off']], iobuffersize => Optional[Pattern[/^([0-9]+)[kKmMgGtT]$/]], dirowner => Optional[String[1]], dirownernum => Optional[Integer], dirgroup => Optional[String[1]], dirgroupnum => Optional[Integer], fileowner => Optional[String[1]], fileownernum => Optional[Integer], filegroup => Optional[String[1]], filegroupnum => Optional[Integer], filecreatemode => Optional[Pattern[/^(([0-7]{1,4})*)$/]], dircreatemode => Optional[Pattern[/^(([0-7]{1,4})*)$/]], failonchownfailure => Optional[Enum['on', 'off']], createdirs => Optional[Enum['on', 'off']], sync => Optional[Enum['on', 'off']], 'sig.provider' => Optional[Enum['ksi_ls12']], 'cry.provider' => Optional[Enum['gcry']], }]
Rsyslog::Actions::Outputs::Omfwd
The Rsyslog::Actions::Outputs::Omfwd data type.
Alias of Struct[{ target => Optional[Stdlib::Host], port => Optional[Stdlib::Port], protocol => Optional[Enum['tcp', 'udp', 'ossl', 'gtls']], networknamespace => Optional[String[1]], address => Optional[Stdlib::IP::Address], ipfreebind => Optional[Integer[0, 2]], device => Optional[String[1]], tcp_framing => Optional[Enum['traditional', 'octet-counted']], tcp_framedelimiter => Optional[Integer[0, 255]], ziplevel => Optional[Integer[0, 9]], 'compression.mode' => Optional[Enum['none', 'single', 'stream:always']], 'compression.stream.flushontxend' => Optional[Enum['on', 'off']], rebindinterval => Optional[Integer], keepalive => Optional[Enum['on', 'off']], 'keepalive.probes' => Optional[Integer], 'keepalive.interval' => Optional[Integer], 'keepalive.time' => Optional[Integer], streamdriver => Optional[Enum['tcp', 'ossl', 'gtls']], streamdrivermode => Optional[Integer], streamdriverauthmode => Optional[String[1]], streamdriverpermittedpeers => Optional[String[1]], resendlastmsgonreconnect => Optional[Enum['on', 'off']], 'udp.sendtoall' => Optional[Enum['on', 'off']], 'udp.senddelay' => Optional[Integer], gnutlsprioritystring => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Omhiredis
The Rsyslog::Actions::Outputs::Omhiredis data type.
Alias of Struct[{ server => Optional[Stdlib::Host], serverport => Optional[Stdlib::Port], serverpassword => Optional[String[1]], mode => Optional[Enum['queue', 'publish', 'template']], template => Optional[String[1]], key => Optional[String[1]], userpush => Optional[Enum['on', 'off']] }]
Rsyslog::Actions::Outputs::Omhttpfs
The Rsyslog::Actions::Outputs::Omhttpfs data type.
Alias of Struct[{ host => Optional[Stdlib::Host], port => Optional[Stdlib::Port], user => Optional[String[1]], https => Optional[Enum['on', 'off']], file => String[1], isdynfile => Optional[Enum['on', 'off']], template => Optional[String[1]] }]
Rsyslog::Actions::Outputs::Omjournal
Struct data type for the Rsyslog JournalD module's Action options
Alias of Struct[{ template => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Omkafka
Struct data type for the Rsyslog Kafka module's Action options
Alias of Struct[{ broker => Optional[String[1]], topic => String[1], key => Optional[String[1]], dynatopic => Optional[Enum['on', 'off']], 'dynatopic.cachesize' => Optional[Integer], 'partitions.auto' => Optional[Enum['on', 'off']], 'partitions.number' => Optional[Integer], 'partitions.usefixed' => Optional[Integer], errorfile => Optional[String[1]], confparam => Optional[Array[String[1]]], topicconfparam => Optional[Array[String[1]]], template => Optional[String[1]], closetimeout => Optional[Integer], resubmitonfailure => Optional[Enum['on', 'off']], keepfailedmessages => Optional[Enum['on', 'off']], failedmsgfile => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Omlibdbi
Struct data type for the Rsyslog libdbi module's Action options
Alias of Struct[{ driver => Enum[ 'firebird', 'ingres', 'msql', 'Oracle', 'sqlite', 'sqlite3', 'freetds', ], server => Stdlib::Host, uid => String[1], pwd => String[1], db => String[1], template => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Ommail
Struct data type for the Rsyslog E-Mail module's Action options
Alias of Struct[{ server => Stdlib::Host, port => Stdlib::Port, mailfrom => Pattern[/.+@.+\..+/], mailto => Pattern[/.+@.+\..+/], 'subject.template' => Optional[String[1]], 'subject.text' => Optional[String[1]], 'body.enable' => Optional[Enum['on', 'off']], template => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Ommongodb
Struct data type for the Rsyslog MongoDB output module's Action options
Alias of Struct[{ uristr => Optional[String[1]], ssl_cert => Optional[Stdlib::Absolutepath], ssl_ca => Optional[Stdlib::Absolutepath], db => Optional[String[1]], collection => Optional[String[1]], allowed_error_codes => Optional[Array[String[1]]], template => Optional[String[1]], server => Optional[Stdlib::Host], serverported => Optional[Stdlib::Port], uid => Optional[String[1]], pwd => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Ommysql
Struct data type alias for MySQL Rsyslog output module.
- See also https://www.rsyslog.com/doc/v8-stable/configuration/modules/ommysql.html Rsyslog MySQL output module
Alias of Struct[{ server => Stdlib::Host, socket => Optional[Stdlib::Absolutepath], db => String[1], uid => String[1], pwd => String[1], serverport => Optional[Stdlib::Port], 'mysqlconfig.file' => Optional[Stdlib::Absolutepath], 'mysqlconfig.section' => Optional[String[1]], template => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Ompgsql
Struct data type for the Rsyslog PostgreSQL module's Action options
Not allowing the serverport, uid, or pwd rsyslog options as they are identical to port, user, and pass respectively. The latter make more sense to the general user and the former are redundant.
Alias of Struct[{ server => Stdlib::Host, port => Optional[Stdlib::Port], db => String[1], user => Optional[String[1]], pass => Optional[String[1]], template => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Ompipe
Struct data type for the Rsyslog Pipe module's Action options
Alias of Struct[{ pipe => String[1], }]
Rsyslog::Actions::Outputs::Omprog
Struct data type for the Rsyslog Program module's Action options
Alias of Struct[{ template => Optional[String[1]], binary => Stdlib::Absolutepath, confirmmessages => Optional[Enum['on', 'off']], confirmtimeout => Optional[Integer], reportfailures => Optional[Enum['on', 'off']], usetransactions => Optional[Enum['on', 'off']], begintransactionmark => Optional[String[1]], committransactionmark => Optional[String[1]], output => Optional[Stdlib::Absolutepath], filecreatemode => Optional[Stdlib::Filemode], 'hup.signal' => Optional[Enum['HUP', 'USR1', 'USR2', 'INT', 'TERM']], signalonclose => Optional[Enum['on', 'off']], closetimeout => Optional[Integer], killunresponsive => Optional[Enum['on', 'off']], forcesingleinstance => Optional[Enum['on', 'off']], }]
Rsyslog::Actions::Outputs::Omrelp
Struct data type for the Rsyslog RELP module's Action options
Alias of Struct[{ target => Variant[Stdlib::Fqdn, Stdlib::IP::Address], port => Optional[Stdlib::Port], template => Optional[String[1]], timeout => Optional[Integer], 'conn.timeout' => Optional[Integer], rebindinterval => Optional[Integer], windowsize => Optional[Integer], tls => Optional[Enum['on', 'off']], 'tls.compression' => Optional[Enum['on', 'off']], 'tls.permittedpeer' => Optional[Array[String[1]]], 'tls.automode' => Optional[Enum['fingerprint', 'name']], 'tls.cacert' => Optional[Stdlib::Absolutepath], 'tls.mycert' => Optional[Stdlib::Absolutepath], 'tls.myprivkey' => Optional[Stdlib::Absolutepath], 'tls.prioritystring' => Optional[String[1]], localclientip => Optional[Stdlib::IP::Address], }]
Rsyslog::Actions::Outputs::Omsnmp
Struct data type for the Rsyslog SNMP module's Action options
Alias of Struct[{ server => Stdlib::Host, port => Optional[Stdlib::Port], transport => Optional[String[1]], version => Optional[Integer[0,1]], community => Optional[String[1]], trapoid => Optional[String[1]], messageoid => Optional[String[1]], enterpriseoid => Optional[String[1]], specifictype => Optional[Integer], traptype => Optional[Integer[0,6]], }]
Rsyslog::Actions::Outputs::Omudpspoof
Struct data type for the Rsyslog UDP Spoof module's Action options
Alias of Struct[{ target => Stdlib::Host, port => Optional[Stdlib::Port], sourcetemplate => Optional[String[1]], 'sourceport.start' => Optional[Stdlib::Port], 'sourceport.end' => Optional[Stdlib::Port], mtu => Optional[Integer], template => Optional[String[1]], }]
Rsyslog::Actions::Outputs::Omusrmsg
Struct data type for the Rsyslog User MSG module's Action Parameters.
Alias of Struct[{ users => String[1], template => Optional[String[1]], }]
Rsyslog::Actions::Parameters
Struct data type for general Rsyslog Action parameters
- See also https://www.rsyslog.com/doc/v8-stable/configuration/actions.html#general-action-parameters Rsyslog General Action Parameters
Alias of Struct[{ 'action.writeallmarkmessages' => Optional[Enum['on', 'off']], 'action.execonlyeverynthtime' => Optional[Integer], 'action.execonlyeverynthtimeout' => Optional[Integer], 'action.errorfile' => Optional[Stdlib::Absolutepath], 'action.execonlyonceeveryinterval' => Optional[Integer], 'action.execonlywhenpreviousissuspended' => Optional[Enum['on', 'off']], 'action.repeatedmsgcontainsoriginalmsg' => Optional[Enum['on', 'off']], 'action.resumeretrycount' => Optional[Integer], 'action.resumeinterval' => Optional[Integer], 'action.reportsuspension' => Optional[Enum['on', 'off']], 'action.reportsuspensioncontinuation' => Optional[Enum['on', 'off']], 'action.copymsg' => Optional[Enum['on', 'off']] }]
Rsyslog::Inputs::Imbatchreports
Data type for Rsyslog Input module parameters for batch report inputs.
Alias of Struct[{ reports => String[1], tag => String[1], facility => Optional[Rsyslog::Syslog::Facility], severity => Optional[Rsyslog::Syslog::Severity], deduplicatespaces => Optional[Enum['on', 'off']], delete => Optional[String[1]], rename => Optional[String[1]], programkey => Optional[String[1]], timestampkey => Optional[String[1]], }]
Rsyslog::Inputs::Imfile
Data type for Rsyslog Input module input parameters for file inputs.
Alias of Struct[{ file => String[1], tag => String[1], facility => Optional[Rsyslog::Syslog::Facility], severity => Optional[Rsyslog::Syslog::Severity], persiststateinterval => Optional[Integer], 'startmsg.regex' => Optional[String[1]], 'endmsg.regex' => Optional[String[1]], readtimeout => Optional[Integer], readmode => Optional[Integer[0, 2]], escapelf => Optional[Enum['on', 'off']], maxlinesatonce => Optional[Integer], maxsubmitatonce => Optional[Integer], deletestateonfiledelete => Optional[Enum['on', 'off']], ruleset => Optional[String[1]], addmetadata => Optional[Enum['on', 'off']], addceetag => Optional[Enum['on', 'off']], reopenontruncate => Optional[Enum['on', 'off']], trimlineoverbytes => Optional[Integer], freshstarttail => Optional[Enum['on', 'off']], discardtruncatedmsg => Optional[Enum['on', 'off']], msgdiscardingerror => Optional[Enum['on', 'off']], neeparse => Optional[Enum['on', 'off']], }]
Rsyslog::Inputs::Imgssapi
Data type for Rsyslog Input module input parameters for gssapi.
Alias of Struct[{ inputgssserverrun => Optional[Stdlib::Port], inputgssserverservicename => Optional[String[1]], inputgssserverpermitplaintcp => Optional[Enum['on', 'off']], inputgssservermaxsessions => Optional[Integer], inputgssserverkeepalive => Optional[Enum['on', 'off']], inputgsslistenportfilename => Optional[Stdlib::Port], }]
Rsyslog::Inputs::Imkafka
Data type for Rsyslog Input module input parameters for Apache Kafka.
Alias of Struct[{ broker => Optional[String[1]], topic => String[1], confparam => Optional[Array[String[1]]], consumergroup => Optional[String[1]], ruleset => Optional[String[1]], parsehostname => Optional[Enum['on', 'off']], }]
Rsyslog::Inputs::Improg
Data type for Rsyslog Input module input parameters for Program input
Alias of Struct[{ binary => String[1], tag => String[1], facility => Optional[Rsyslog::Syslog::Facility], severity => Optional[Rsyslog::Syslog::Severity], confirmmessages => Optional[Enum['on', 'off']], signalonclose => Optional[Enum['on', 'off']], closetimeout => Optional[Integer], killunresponsive => Optional[Enum['on', 'off']], }]
Rsyslog::Inputs::Imptcp
Data type for Rsyslog Plain TCP input module
Alias of Struct[{ port => Optional[Stdlib::Port], path => Optional[Stdlib::Absolutepath], discardtruncatedmsg => Optional[Enum['on', 'off']], fileowner => Optional[String[1]], fileownernum => Optional[Integer], filegroup => Optional[String[1]], filegroupnum => Optional[Integer], filecreatemode => Optional[Stdlib::Filemode], failonchownfailure => Optional[Enum['on', 'off']], unlink => Optional[Enum['on', 'off']], name => Optional[String[1]], ruleset => Optional[String[1]], maxframesize => Optional[Integer], address => Optional[Stdlib::IP::Address::V4], addtlframedelimiter => Optional[Integer], supportoctetcountetframing => Optional[Enum['on', 'off']], notifyonconnectionclose => Optional[Enum['on', 'off']], notifyonconnectionopen => Optional[Enum['on', 'off']], keepalive => Optional[Enum['on', 'off']], 'keepalive.probes' => Optional[Integer], 'keepalive.interval' => Optional[Integer], 'keepalive.time' => Optional[Integer], 'ratelimit.interval' => Optional[Integer], 'ratelimit.burst' => Optional[Integer], 'compression.mode' => Optional[Enum['none', 'single', 'stream:always']], flowcontrol => Optional[Enum['on', 'off']], multiline => Optional[Enum['on', 'off']], 'framing.delimiter.regex' => Optional[String[1]], socketbacklog => Optional[Integer], defaulttz => Optional[String[1]], 'framingfix.cisco.asa' => Optional[Enum['on', 'off']], listenportfilename => Optional[String[1]], }]
Rsyslog::Inputs::Imrelp
Data type for Rsyslog Plain TCP input module
Alias of Struct[{ port => Stdlib::Port, address => Optional[Stdlib::IP::Address::V4], name => Optional[String[1]], ruleset => Optional[String[1]], maxdatasize => Optional[Pattern[/^([0-9]+)[kKmMgGtT]$/]], tls => Optional[Enum['on', 'off']], 'tls.compression' => Optional[Enum['on', 'off']], 'tls.dhbits' => Optional[Integer], 'tls.permittedpeer' => Optional[Array[String[1]]], 'tls.authmode' => Optional[Enum['fingerprint', 'name']], 'tls.cacert' => Optional[String[1]], 'tls.mycert' => Optional[String[1]], 'tls.myprivkey' => Optional[String[1]], 'tls.prioritystring' => Optional[String[1]], keepalive => Optional[Enum['on', 'off']], 'keepalive.probes' => Optional[Integer], 'keepalive.interval' => Optional[Integer], 'keepalive.time' => Optional[Integer], oversizemode => Optional[Enum['truncate', 'abort', 'accept']], }]
Rsyslog::Inputs::Imtcp
Data type for Rsyslog TCP input module
Alias of Struct[{ port => Stdlib::Port, address => Optional[Stdlib::IP::Address::V4], name => Optional[String[1]], ruleset => Optional[String[1]], supportoctetcountedframing => Optional[Enum['on', 'off']], 'ratelimit.interval' => Optional[Integer], 'ratelimit.burst' => Optional[Integer], listenportfilename => Optional[String[1]], }]
Rsyslog::Inputs::Imtuxedoulog
Data for Rsyslog Input Tuxedo ULOG module
Alias of Struct[{ ulogbase => Stdlib::Absolutepath, tag => String[1], facility => Optional[Rsyslog::Syslog::Facility], severity => Optional[Rsyslog::Syslog::Severity], persiststateinterval => Optional[Integer], maxlinesatonce => Optional[Integer], maxsubmitatonce => Optional[Integer], }]
Rsyslog::Inputs::Imudp
Data type for Rsyslog UDP input module
Alias of Struct[{ address => Optional[Stdlib::Host], port => Stdlib::Port, ipfreebind => Optional[Integer[0,2]], device => Optional[String[1]], ruleset => Optional[String[1]], 'ratelimit.interval' => Optional[Integer], 'ratelimit.burst' => Optional[Integer], name => Optional[String[1]], 'name.appendport' => Optional[Enum['on', 'off']], defaulttz => Optional[String[1]], rcvbufsize => Optional[Variant[Integer, String[1]]], }]
Rsyslog::Inputs::Imuxsock
Data type for Rsyslog Unix Socket input module
Alias of Struct[{ ruleset => Optional[String[1]], ignoretimestamp => Optional[Enum['on', 'off']], ignoreownmessages => Optional[Enum['on', 'off']], flowcontrol => Optional[Enum['on', 'off']], 'ratelimit.interval' => Optional[Integer], 'ratelimit.burst' => Optional[Integer], 'ratelimit.severity' => Optional[Integer[0,7]], usepidfromsystem => Optional[Enum['on', 'off']], usesystimestamp => Optional[Enum['on', 'off']], createpath => Optional[Enum['on', 'off']], socket => Optional[String[1]], hostname => Optional[String[1]], annotate => Optional[Enum['on', 'off']], parsetrusted => Optional[Enum['on', 'off']], unlink => Optional[Enum['on', 'off']], usespecialparser => Optional[Enum['on', 'off']], parsehostname => Optional[Enum['on', 'off']], }]
Rsyslog::Modules::Input
The Rsyslog::Modules::Input data type.
Alias of Enum['im3195', 'imfile', 'imgssapi', 'imjournal', 'imkafka', 'imklog', 'imkmsg', 'immark', 'impstats', 'imptcp', 'imrelp', 'imsolaris', 'imtcp', 'imupd', 'imuxsock']
Rsyslog::Modules::Inputs::Imdocker
Data type for Rsyslog module parameters for imdocker
Alias of Struct[{ dockerapiunixsockaddr => Optional[Stdlib::Absolutepath], apiversionstr => Optional[Pattern[/^v([0-9]+)\.([0-9]+)/]], pollinginterval => Optional[Integer], listcontaineroptions => Optional[String[1]], getcontainerlogoptions => Optional[String[1]], retrievenewlogsfromstart => Optional[Integer[0,1]], defaultfacility => Optional[Rsyslog::Syslog::Facility], defaultseverity => Optional[Rsyslog::Syslog::Severity], escapelf => Optional[Enum['on', 'off']], }]
Rsyslog::Modules::Inputs::Imfile
Data type for Rsyslog Input module parameters for file inputs.
Alias of Struct[{ mode => Optional[Enum['inotify', 'polling']], readtimeout => Optional[Integer], timeoutgranularity => Optional[Enum['on', 'off']], sortfiles => Optional[Enum['on', 'off']], pollinginterval => Optional[Integer], }]
Rsyslog::Modules::Inputs::Imjournal
Rsyslog imjournal Module parameter data type
Alias of Struct[{ persiststateinterval => Optional[Integer], statefile => Optional[Stdlib::Absolutepath], 'ratelimit.interval' => Optional[Integer], 'ratelimit.burst' => Optional[Integer], ignorepreviousmessage => Optional[Enum['on', 'off']], defaultseverity => Optional[Rsyslog::Syslog::Severity], defaultfacility => Optional[Rsyslog::Syslog::Facility], usepidfromsystem => Optional[Enum['on', 'off']], usepid => Optional[Enum['syslog', 'system', 'both']], ignorenonvalidstatefile => Optional[Enum['on', 'off']], workaroundjournalbug => Optional[Enum['on', 'off']], }]
Rsyslog::Modules::Message
The Rsyslog::Modules::Message data type.
Alias of Enum['mmanon', 'mmcount', 'mmdblookup', 'mmexternal', 'mmfields', 'mmjsonparse', 'mmkubernetes', 'mmnormalize', 'mmpstructdata', 'mmrfc5424addhmac', 'mmrm1stspace', 'mmsequence', 'mmsnmptrapd', 'mmutf8fix']
Rsyslog::Modules::Output
The Rsyslog::Modules::Output data type.
Alias of Enum['omamqp1', 'omelasticsearch', 'omfile', 'omfwd', 'omhdfs', 'omhiredis', 'omhttpfs', 'omjournal', 'omkafka', 'omlibdbi', 'ommail', 'ommongodb', 'ommysql', 'ompgsql', 'ompipe', 'omprog', 'omrelp', 'omsnmp', 'omudpspoof', 'omusrmsg', 'omuxsock']
Rsyslog::Modules::Parser
The Rsyslog::Modules::Parser data type.
Alias of Enum['pmciscoios', 'pmlastmsg', 'pmnormalize', 'pmnull', 'pmrfc3164', 'pmrfc3164sd', 'pmrfc5424']
Rsyslog::Modules::String
The Rsyslog::Modules::String data type.
Alias of Enum['smfile', 'smfwd', 'smtradfile', 'smtradfwd']
Rsyslog::PropertyOperator
Enumerable custom type for rsyslog property operators
Alias of Enum['contains', 'isequal', 'startswith', 'regex', 'ereregex', '!contains', '!isequal', '!startswith', '!regex', '!ereregex']
Rsyslog::Queue::Parameters
The Rsyslog::Queue::Parameters data type.
Alias of Struct[{ 'queue.filename' => Optional[String[1]], 'queue.spoolDirectory' => Optional[Stdlib::Absolutepath], 'queue.size' => Optional[Integer], 'queue.dequeueBatchSize' => Optional[Integer], 'queue.maxDiskSpace' => Optional[Integer], 'queue.highWatermark' => Optional[Integer], 'queue.lowWatermark' => Optional[Integer], 'queue.fullDelaymark' => Optional[Integer], 'queue.lightDelaymark' => Optional[Integer], 'queue.discardMark' => Optional[Integer], 'queue.discardSeverity' => Optional[Integer], 'queue.checkpointInterval' => Optional[Integer], 'queue.syncqueuefiles' => Optional[Enum['on', 'off']], 'queue.samplingInterval' => Optional[Integer], 'queue.type' => Optional[Enum['FixedArray', 'LinkedList', 'Direct', 'Disk']], 'queue.workerThreads' => Optional[Integer], 'queue.workerThreadMinimumMessages' => Optional[Integer], 'queue.timeoutWorkerthreadShutdown' => Optional[Integer], 'queue.timeoutshutdown' => Optional[Integer], 'queue.timeoutActionCompletion' => Optional[Integer], 'queue.timeoutEnqueue' => Optional[Integer], 'queue.maxFileSize' => Optional[Pattern[/^([0-9]+)(m|M|g|G)$/]], 'queue.saveOnShutdown' => Optional[Enum['on', 'off']], 'queue.dequeueSlowDown' => Optional[Integer], 'queue.dequeueTimeBegin' => Optional[Integer[1, 24]], 'queue.dequeueTimeEnd' => Optional[Integer[1, 25]], }]
Rsyslog::Syslog::Facility
Syslog facility data type
Alias of Variant[Enum[ 'kern', 'user', 'mail', 'daemon', 'auth', 'syslog', 'lpr', 'news', 'uucp', 'cron', 'authpriv', 'ftp', 'ntp', 'security', 'console', 'solaris-cron', 'local0', 'local1', 'local2', 'local3', 'local4', 'local5', 'local6', 'local7' ], Integer[0, 23]]
Rsyslog::Syslog::Severity
Syslog severoty data type
Alias of Variant[Enum[ 'emerg', 'alert', 'crit', 'err', 'warning', 'notice', 'info', 'debug', ], Integer[0, 7]]
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v4.0.0 (2019-10-20)
Breaking changes:
- modulesync 2.7.0 and drop puppet 4 #115 (bastelfreak)
Implemented enhancements:
- Add remaining rsyslog module types #111 (dhollinger)
- Rsyslog Action Data Types and Queue Options #106 (dhollinger)
Fixed bugs:
- Ruleset expression filter: problem with documention #112
- Allow puppetlabs/concat 6.x, puppetlabs/stdlib 6.x #120 (dhoppe)
Closed issues:
Merged pull requests:
- Clean up acceptance spec helper #132 (ekohl)
- Add EL 8 support #129 (dhollinger)
- Generate REFERENCE.md #128 (bastelfreak)
- Add Input module data types #125 (dhollinger)
- types updates #124 (kenyon)
- base.pp: add final newline to rsyslog.conf #123 (kenyon)
- More input module data types #119 (dhollinger)
- Fix template output if value is array #118 (waipeng)
- Allow puppetlabs/apt 7.x #116 (dhoppe)
- Add imfile and im3195 input types #114 (dhollinger)
- #112 Fix ruleset expression filter examples #113 (dhollinger)
- README.md: correct default of rsyslog::confdir #105 (kenyon)
v3.3.0 (2018-10-14)
Implemented enhancements:
- warning with recent puppet #95
- Add '^' (execute program) rsyslog feature to ruleset tasks #80
- Allow puppetlabs/stdlib 5.x and puppetlabs/concat 5.x #94 (bastelfreak)
- Add Feature: Allow 'execute program' (^) as a task in in rulesets #81 (itbane)
Closed issues:
- imfile to send apache logs to remote syslog not working #102
- Error: Evaluation Error: Resource type not found: PrivDropToUser (file: /tmp/kitchen/manifests/site.pp, line: 141, column: 9) on node 21a40dd4ec00 #93
- check fedora support #84
- No clue how to configure a client with this module #64
Merged pull requests:
- Add support to use upstream repos in Ubuntu and EL #101 (dhollinger)
- Add support for puppet 6 #100 (dhollinger)
- Update metadata.json to remove hiera 4 and support Fedora, drop Ubuntu 14.04 support and add 18.04 #99 (dhollinger)
- Add a Debian 9 hiera exemple #96 (hdep)
v3.2.0 (2018-06-14)
Implemented enhancements:
- Add the ability to create custom properties with 'set' #86 (dhollinger)
- Add support to rsyslog::client for providing property_filters and exp… #78 (fatmcgav)
Merged pull requests:
- Update code to more cleanly format nested configuration #85 (dhollinger)
- drop EOL OSs; fix puppet version range #83 (bastelfreak)
- use gitrepos in .fixtures.yml #82 (bastelfreak)
- Rely on beaker-hostgenerator for docker nodesets #79 (ekohl)
v3.1.1 (2018-03-29)
Fixed bugs:
- Fix action template issue that causes an error when an empty config hash is passed #76 (dhollinger)
Merged pull requests:
v3.1.0 (2018-03-22)
Implemented enhancements:
- Add docker support for lookup_tables #73 (dhollinger)
v3.0.0 (2018-03-21)
Breaking changes:
- Switch datatype from Hash to array fo task param #71 (dhollinger)
Fixed bugs:
- Lookup table fix #70 (dhollinger)
v2.3.2 (2018-03-12)
Implemented enhancements:
- Filters require a unique name when used in rulesets. #65
- Test travis release fix #68 (dhollinger)
- Remove unique name requirement for Filters inside of a Ruleset resource #66 (dhollinger)
Merged pull requests:
- Release 2.3.2 #67 (dhollinger)
v2.3.1 (2018-02-24)
Fixed bugs:
- facility not present in out put of rulsets when using - action #59
- #59 Fix action facility bug #61 (dhollinger)
v2.3.0 (2018-01-24)
Implemented enhancements:
- Add new data type for property filter operators #54 (dhollinger)
Fixed bugs:
- Remove invalid property filter operators #55 (dhollinger)
Merged pull requests:
- Update documentation around filters #56 (dhollinger)
- Property filter operators #53 (dhollinger)
v2.2.1 (2018-01-05)
Closed issues:
Merged pull requests:
- Set concat order numeric #51 (dhollinger)
- Updated docs to correctly reflect the priority functionality #50 (dhollinger)
v2.2.0 (2018-01-04)
Implemented enhancements:
- Refactor rulesets #40 (dhollinger)
- Add filters #39 (dhollinger)
Closed issues:
- Add acceptance tests #43
- Add OS Compatibility matrix #42
- Add acceptance test config and helpers #41
- Refactor Rulesets and Filters #32
Merged pull requests:
- bump lowest puppet version 4.4.0->4.10.9 #48 (bastelfreak)
- Add unit and acceptance tests #44 (dhollinger)
v2.1.0 (2017-12-06)
Implemented enhancements:
- Add basic support for rsyslog filters in rulesets #31 (dhollinger)
Closed issues:
- Support Filters #30
Merged pull requests:
- Fix up README markdown and LICENSE file #37 (alexjfisher)
v2.0.0 (2017-12-06)
Merged pull requests:
- Add additional README.md shields #35 (dhollinger)
- modulesync 1.5.0 #34 (dhollinger)
1.1.0 (2017-10-17)
- Feature: Added an
external_service
boolean parameter for allowing puppet-rsyslog to manage configs/logs shared with other processes that may be managed by other modules. (https://github.com/crayfishx/puppet-rsyslog/pull/28)
1.0.0
This release contains many new enhancements and features, and brings the module to a 1.0.0 release. Many thanks to @dhollinger for the many contributions to this release.
- Enhancement: Added flag to enable/disable service management
- Enhancement: Add custom config dirs and target files
- Feature: Rsyslog 8.x lookup table support
- Feature: Support for the rsyslog parser() function
- Feature: Support for multi ruleset generation
- Feature: Support for ruleset stops
- Bugfix: Solve the lack of errors when a component concat::fragment doesn't generate content due to a missing parent concat resource
0.2.0
- Fixed variable scoping styling and rake validation fixes
- Support for legacy options
- README fixes
- Option support for modules
- Updated the action component to support logger facility
- Added more tests for the legacy_config / main_queue class
- Documentation Updates
- Fixed the global params config styling
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs-apt (>= 5.0.0 < 8.0.0)
- puppetlabs-concat (>= 4.1.0 < 7.0.0)
- puppetlabs-stdlib (>= 4.25.0 < 7.0.0)
Copyright 2016 Craig Dunn <craig@craigdunn.org> Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.