summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--manifests/config.pp1
-rw-r--r--manifests/imfile.pp4
-rw-r--r--manifests/init.pp12
-rw-r--r--manifests/modload.pp15
-rw-r--r--manifests/params.pp34
-rw-r--r--manifests/snippet.pp3
-rw-r--r--metadata.json10
-rw-r--r--templates/imfile.erb3
-rw-r--r--templates/modload.erb3
-rw-r--r--templates/rsyslog.conf.erb4
-rw-r--r--tests/log_templates.pp4
-rw-r--r--tests/multiple_hosts.pp18
13 files changed, 86 insertions, 27 deletions
diff --git a/README.md b/README.md
index ffd8181..d929286 100644
--- a/README.md
+++ b/README.md
@@ -161,7 +161,7 @@ The following lists all the class parameters this module accepts.
remote_forward_format STRING Which forward format for remote servers should be used. Only used if remote_servers is false.
log_local true,false Log locally. Defaults to false.
log_auth_local true,false Just log auth facility locally. Defaults to false.
- custom_config STRING Specify your own template to use for client config. Defaults to undef. Example usage: custom_config => 'rsyslog/my_config.erb
+ custom_config STRING Specify your own template to use for client config. Defaults to undef. Example usage: custom_config => 'rsyslog/my_config.erb'
custom_params TODO TODO
server STRING Rsyslog server to log to. Will be used in the client configuration file. Only used, if remote_servers is false.
port '514' Remote server port. Only used if remote_servers is false.
diff --git a/manifests/config.pp b/manifests/config.pp
index dbb37cc..813e784 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -43,6 +43,7 @@ class rsyslog::config {
ensure => directory,
owner => 'root',
group => $rsyslog::run_group,
+ seltype => 'syslogd_var_lib_t',
require => Class['rsyslog::install'],
notify => Class['rsyslog::service'],
}
diff --git a/manifests/imfile.pp b/manifests/imfile.pp
index 28665f8..bd0afa3 100644
--- a/manifests/imfile.pp
+++ b/manifests/imfile.pp
@@ -29,10 +29,12 @@ define rsyslog::imfile(
$polling_interval = 10,
$file_severity = 'notice',
$run_file_monitor = true,
- $persist_state_interval = 0
+ $persist_state_interval = 0,
) {
+
include rsyslog
+ $extra_modules = $rsyslog::extra_modules
file { "${rsyslog::rsyslog_d}${name}.conf":
ensure => file,
diff --git a/manifests/init.pp b/manifests/init.pp
index 6cd0da8..76d6102 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,6 +1,7 @@
# == Class: rsyslog
#
-# Meta class to install rsyslog with a basic configuration. You probably want rsyslog::client or rsyslog::server
+# Meta class to install rsyslog with a basic configuration.
+# You probably want rsyslog::client or rsyslog::server
#
# === Parameters
#
@@ -38,9 +39,16 @@ class rsyslog (
$server_conf = $rsyslog::params::server_conf,
$ssl = $rsyslog::params::ssl,
$modules = $rsyslog::params::modules,
- $preserve_fqdn = $rsyslog::params::preserve_fqdn
+ $preserve_fqdn = $rsyslog::params::preserve_fqdn,
+ $max_message_size = $rsyslog::params::max_message_size,
+ $extra_modules = $rsyslog::params::extra_modules
) inherits rsyslog::params {
class { 'rsyslog::install': }
class { 'rsyslog::config': }
+
+ if $extra_modules != [] {
+ class { 'rsyslog::modload': }
+ }
+
class { 'rsyslog::service': }
}
diff --git a/manifests/modload.pp b/manifests/modload.pp
new file mode 100644
index 0000000..7a838af
--- /dev/null
+++ b/manifests/modload.pp
@@ -0,0 +1,15 @@
+# == Class: rsyslog::modload
+#
+
+class rsyslog::modload (
+ $modload_filename = '10-modload.conf',
+) {
+ file { "${rsyslog::rsyslog_d}${modload_filename}":
+ ensure => file,
+ owner => 'root',
+ group => $rsyslog::run_group,
+ content => template('rsyslog/modload.erb'),
+ require => Class['rsyslog::install'],
+ notify => Class['rsyslog::service'],
+ }
+}
diff --git a/manifests/params.pp b/manifests/params.pp
index b0014d2..0519037 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -1,6 +1,7 @@
# == Class: rsyslog::params
#
-# This defines default configuration values for rsyslog. You don't want to use it directly.
+# This defines default configuration values for rsyslog.
+# You don't want to use it directly.
#
# === Parameters
#
@@ -12,6 +13,8 @@
#
class rsyslog::params {
+ $max_message_size = '2k'
+
case $::osfamily {
debian: {
$rsyslog_package_name = 'rsyslog'
@@ -45,6 +48,8 @@ class rsyslog::params {
$preserve_fqdn = false
$service_hasrestart = true
$service_hasstatus = true
+ $extra_modules = []
+
}
redhat: {
if $::operatingsystem == 'Amazon' {
@@ -120,12 +125,14 @@ class rsyslog::params {
$preserve_fqdn = false
$service_hasrestart = true
$service_hasstatus = true
+ $extra_modules = []
}
- sles: {
+ suse: {
$rsyslog_package_name = 'rsyslog'
- $relp_package_name = 'rsyslog-module-relp'
- $mysql_package_name = 'rsyslog-module-mysql'
- $pgsql_package_name = 'rsyslog-module-pgsql'
+ $relp_package_name = false
+ $mysql_package_name = false
+ $pgsql_package_name = false
+ $gnutls_package_name = false
$package_status = 'latest'
$rsyslog_d = '/etc/rsyslog.d/'
$rsyslog_conf = '/etc/rsyslog.conf'
@@ -134,14 +141,20 @@ class rsyslog::params {
$run_group = 'root'
$log_user = 'root'
$log_group = 'root'
- $log_style = 'sles'
+ $log_style = 'debian'
$perm_file = '0600'
$perm_dir = '0750'
$spool_dir = '/var/spool/rsyslog/'
$service_name = 'syslog'
- $client_conf = "${rsyslog_d}client.conf"
- $server_conf = "${rsyslog_d}server.conf"
- }
+ $client_conf = 'client'
+ $server_conf = 'server'
+ $modules = [
+ '$ModLoad imuxsock # provides support for local system logging',
+ '$ModLoad imklog # provides kernel logging support (previously done by rklogd)',
+ '#$ModLoad immark # provides --MARK-- message capability',
+ ]
+ $extra_modules = []
+ }
freebsd: {
$rsyslog_package_name = 'sysutils/rsyslog5'
$relp_package_name = 'sysutils/rsyslog5-relp'
@@ -174,6 +187,7 @@ class rsyslog::params {
$preserve_fqdn = false
$service_hasrestart = true
$service_hasstatus = true
+ $extra_modules = []
}
default: {
@@ -210,6 +224,8 @@ class rsyslog::params {
$preserve_fqdn = false
$service_hasrestart = true
$service_hasstatus = true
+ $extra_modules = []
+
}
default: {
fail("The ${module_name} module is not supported on ${::osfamily}/${::operatingsystem}.")
diff --git a/manifests/snippet.pp b/manifests/snippet.pp
index 9edf179..f638396 100644
--- a/manifests/snippet.pp
+++ b/manifests/snippet.pp
@@ -1,6 +1,7 @@
# == Define: rsyslog::snippet
#
-# This class allows for you to create a rsyslog configuration file with whatever content you pass in.
+# This class allows for you to create a rsyslog configuration file with
+# whatever content you pass in.
#
# === Parameters
#
diff --git a/metadata.json b/metadata.json
index 677b972..741b9a4 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,6 +1,6 @@
{
"name": "saz-rsyslog",
- "version": "3.2.0",
+ "version": "3.3.0",
"author": "saz",
"summary": "Manage rsyslog client and server",
"license": "Apache License, Version 2.0",
@@ -18,6 +18,12 @@
"operatingsystem": "CentOS"
},
{
+ "operatingsystem": "SuSe"
+ },
+ {
+ "operatingsystem": "SLES"
+ },
+ {
"operatingsystem": "OracleLinux"
},
{
@@ -39,7 +45,7 @@
"requirements": [
{
"name": "pe",
- "version_requirement": "3.2.x"
+ "version_requirement": ">= 3.2.0 < 3.4.0"
},
{
"name": "puppet",
diff --git a/templates/imfile.erb b/templates/imfile.erb
index 8b24edb..4a11c72 100644
--- a/templates/imfile.erb
+++ b/templates/imfile.erb
@@ -1,4 +1,7 @@
+<% if @extra_modules.empty?() or !@extra_modules.include?('imfile') -%>
$ModLoad imfile
+<% end -%>
+
$InputFileName <%= @file_name %>
$InputFileTag <%= @file_tag %>
diff --git a/templates/modload.erb b/templates/modload.erb
new file mode 100644
index 0000000..a14a612
--- /dev/null
+++ b/templates/modload.erb
@@ -0,0 +1,3 @@
+<% @extra_modules.each do |mod| -%>
+$ModLoad <%= mod %>
+<% end -%>
diff --git a/templates/rsyslog.conf.erb b/templates/rsyslog.conf.erb
index ef2a05e..f024569 100644
--- a/templates/rsyslog.conf.erb
+++ b/templates/rsyslog.conf.erb
@@ -11,6 +11,10 @@
###########################
#### GLOBAL DIRECTIVES ####
###########################
+#
+# Set max message size for sending and receiving
+#
+$MaxMessageSize <%= scope.lookupvar('rsyslog::max_message_size') %>
#
# Set the default permissions for all log files.
diff --git a/tests/log_templates.pp b/tests/log_templates.pp
index 79f1e8f..a6bf75b 100644
--- a/tests/log_templates.pp
+++ b/tests/log_templates.pp
@@ -1,4 +1,4 @@
-class{'rsyslog::client':
+class { 'rsyslog::client':
log_templates => [
{
name => 'RFC3164fmt',
@@ -6,4 +6,4 @@ class{'rsyslog::client':
},
],
actionfiletemplate => 'RFC3164fmt',
-} \ No newline at end of file
+}
diff --git a/tests/multiple_hosts.pp b/tests/multiple_hosts.pp
index 0852047..9e5a60e 100644
--- a/tests/multiple_hosts.pp
+++ b/tests/multiple_hosts.pp
@@ -1,17 +1,17 @@
-class{'rsyslog::client':
+class { 'rsyslog::client':
remote_servers => [
{
- host => 'logs.example.org',
+ host => 'logs.example.org',
},
{
- port => '55514',
+ port => '55514',
},
{
- host => 'logs.somewhere.com',
- port => '555',
- pattern => '*.log',
- protocol => 'tcp',
- format => 'RFC3164fmt',
+ host => 'logs.somewhere.com',
+ port => '555',
+ pattern => '*.log',
+ protocol => 'tcp',
+ format => 'RFC3164fmt',
},
]
-} \ No newline at end of file
+}