summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteffen Zieger <me@saz.sh>2014-02-10 11:09:05 +0100
committerSteffen Zieger <me@saz.sh>2014-02-10 11:09:05 +0100
commitc4211ac0e076d1cd15b82d09d941295b71b61a68 (patch)
tree33d5dd39898a47567b1ac26a9c9da2a2f0a8438b
parentaa064248b9646aa3e694478314105c44c7c40b76 (diff)
parent3707f44c19da275e14e99df0851ced9dce3f69d7 (diff)
Merge pull request #52 from Aethylred/action_template
Specify the default logging format.
-rw-r--r--README.md245
-rw-r--r--manifests/client.pp117
-rw-r--r--templates/client.conf.erb13
3 files changed, 191 insertions, 184 deletions
diff --git a/README.md b/README.md
index b9c2468..9bcf6e8 100644
--- a/README.md
+++ b/README.md
@@ -1,122 +1,123 @@
-# puppet-rsyslog [![Build Status](https://secure.travis-ci.org/saz/puppet-rsyslog.png)](https://travis-ci.org/saz/puppet-rsyslog)
-
-Manage rsyslog client and server via Puppet
-
-## REQUIREMENTS
-
-* Puppet >=2.6 if using parameterized classes
-* Currently supports Ubuntu >=11.04 & Debian running rsyslog >=4.5
-
-## USAGE
-
-### Client
-
-#### Using default values
-```
- class { 'rsyslog::client': }
-```
-
-#### Variables and default values
-```
- class { 'rsyslog::client':
- log_remote => true,
- remote_type => 'tcp',
- log_local => false,
- log_auth_local => false,
- custom_config => undef,
- server => 'log',
- port => '514',
- preserve_fqdn => undef,
- }
-```
-for read from file
-```
- rsyslog::imfile { 'my-imfile':
- file_name => '/some/file',
- file_tag => 'mytag',
- file_facility => 'myfacility',
- }
-
-```
-
-#### Logging to a MySQL or PostgreSQL database
-
-Events can also be logged to a MySQL or PostgreSQL database. The database needs to be deployed separately, either locally or remotely. Schema are available from the `rsyslog` source:
-
- * [MySQL schema](http://git.adiscon.com/?p=rsyslog.git;a=blob_plain;f=plugins/ommysql/createDB.sql)
- * [PostgreSQL schema](http://git.adiscon.com/?p=rsyslog.git;a=blob_plain;f=plugins/ompgsql/createDB.sql)
-
-Declare the following to configure the connection:
-````
- class { 'rsyslog::database':
- backend => 'mysql',
- server => 'localhost',
- database => 'Syslog',
- username => 'rsyslog',
- password => 'secret',
- }
-````
-### Server
-
-#### Using default values
-```
- class { 'rsyslog::server': }
-```
-
-#### Variables and default values
-```
- class { 'rsyslog::server':
- enable_tcp => true,
- enable_udp => true,
- enable_onefile => false,
- server_dir => '/srv/log/',
- custom_config => undef,
- high_precision_timestamps => false,
- }
-```
-
-Both can be installed at the same time.
-
-## PARAMETERS
-
-The following lists all the class parameters this module accepts.
-
- RSYSLOG::SERVER CLASS PARAMETERS VALUES DESCRIPTION
- -------------------------------------------------------------------
- enable_tcp true,false Enable TCP listener. Defaults to true.
- enable_udp true,false Enable UDP listener. Defaults to true.
- enable_onefile true,false Only one logfile per remote host. Defaults to false.
- server_dir STRING Folder where logs will be stored on the server. Defaults to '/srv/log/'
- custom_config STRING Specify your own template to use for server config. Defaults to undef. Example usage: custom_config => 'rsyslog/my_config.erb'
- high_precision_timestamps true,false Whether or not to use high precision timestamps.
- preserve_fqdn true,false Whether or not to preserve the fully qualified domain name when logging.
-
- RSYSLOG::CLIENT CLASS PARAMETERS VALUES DESCRIPTION
- -------------------------------------------------------------------
- log_remote true,false Log Remotely. Defaults to true.
- remote_type 'tcp','udp' Which protocol to use when logging remotely. Defaults to 'tcp'.
- 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
- server STRING Rsyslog server to log to. Will be used in the client configuration file.
-
- RSYSLOG::DATABASE CLASS PARAMETERS VALUES DESCRIPTION
- -------------------------------------------------------------------
- backend 'mysql','pgsql' Database backend (MySQL or PostgreSQL).
- server STRING Database server.
- database STRING Database name.
- username STRING Database username.
- password STRING Database password.
-
-### Other notes
-
-Due to a missing feature in current RELP versions (InputRELPServerBindRuleset option),
-remote logging is using TCP. You can switch between TCP and UDP. As soon as there is
-a new RELP version which supports setting Rulesets, I will add support for relp back.
-
-By default, rsyslog::server will strip numbers from hostnames. This means the logs of
-multiple servers with the same non-numerical name will be aggregrated in a single
-directory. i.e. www01 www02 and www02 would all log to the www directory.
-
-To log each host to a seperate directory, set the custom_config parameter to
-'rsyslog/server-hostname.conf.erb'
+# puppet-rsyslog [![Build Status](https://secure.travis-ci.org/saz/puppet-rsyslog.png)](https://travis-ci.org/saz/puppet-rsyslog)
+
+Manage rsyslog client and server via Puppet
+
+## REQUIREMENTS
+
+* Puppet >=2.6 if using parameterized classes
+* Currently supports Ubuntu >=11.04 & Debian running rsyslog >=4.5
+
+## USAGE
+
+### Client
+
+#### Using default values
+```
+ class { 'rsyslog::client': }
+```
+
+#### Variables and default values
+```
+ class { 'rsyslog::client':
+ log_remote => true,
+ remote_type => 'tcp',
+ log_local => false,
+ log_auth_local => false,
+ custom_config => undef,
+ server => 'log',
+ port => '514',
+ preserve_fqdn => undef,
+ }
+```
+for read from file
+```
+ rsyslog::imfile { 'my-imfile':
+ file_name => '/some/file',
+ file_tag => 'mytag',
+ file_facility => 'myfacility',
+ }
+
+```
+
+#### Logging to a MySQL or PostgreSQL database
+
+Events can also be logged to a MySQL or PostgreSQL database. The database needs to be deployed separately, either locally or remotely. Schema are available from the `rsyslog` source:
+
+ * [MySQL schema](http://git.adiscon.com/?p=rsyslog.git;a=blob_plain;f=plugins/ommysql/createDB.sql)
+ * [PostgreSQL schema](http://git.adiscon.com/?p=rsyslog.git;a=blob_plain;f=plugins/ompgsql/createDB.sql)
+
+Declare the following to configure the connection:
+````
+ class { 'rsyslog::database':
+ backend => 'mysql',
+ server => 'localhost',
+ database => 'Syslog',
+ username => 'rsyslog',
+ password => 'secret',
+ }
+````
+### Server
+
+#### Using default values
+```
+ class { 'rsyslog::server': }
+```
+
+#### Variables and default values
+```
+ class { 'rsyslog::server':
+ enable_tcp => true,
+ enable_udp => true,
+ enable_onefile => false,
+ server_dir => '/srv/log/',
+ custom_config => undef,
+ high_precision_timestamps => false,
+ }
+```
+
+Both can be installed at the same time.
+
+## PARAMETERS
+
+The following lists all the class parameters this module accepts.
+
+ RSYSLOG::SERVER CLASS PARAMETERS VALUES DESCRIPTION
+ -------------------------------------------------------------------
+ enable_tcp true,false Enable TCP listener. Defaults to true.
+ enable_udp true,false Enable UDP listener. Defaults to true.
+ enable_onefile true,false Only one logfile per remote host. Defaults to false.
+ server_dir STRING Folder where logs will be stored on the server. Defaults to '/srv/log/'
+ custom_config STRING Specify your own template to use for server config. Defaults to undef. Example usage: custom_config => 'rsyslog/my_config.erb'
+ high_precision_timestamps true,false Whether or not to use high precision timestamps.
+ preserve_fqdn true,false Whether or not to preserve the fully qualified domain name when logging.
+ actionfiletemplate STRING If set this defines the `ActionFileDefaultTemplate` which sets the default logging format for remote and local logging..
+
+ RSYSLOG::CLIENT CLASS PARAMETERS VALUES DESCRIPTION
+ -------------------------------------------------------------------
+ log_remote true,false Log Remotely. Defaults to true.
+ remote_type 'tcp','udp' Which protocol to use when logging remotely. Defaults to 'tcp'.
+ 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
+ server STRING Rsyslog server to log to. Will be used in the client configuration file.
+
+ RSYSLOG::DATABASE CLASS PARAMETERS VALUES DESCRIPTION
+ -------------------------------------------------------------------
+ backend 'mysql','pgsql' Database backend (MySQL or PostgreSQL).
+ server STRING Database server.
+ database STRING Database name.
+ username STRING Database username.
+ password STRING Database password.
+
+### Other notes
+
+Due to a missing feature in current RELP versions (InputRELPServerBindRuleset option),
+remote logging is using TCP. You can switch between TCP and UDP. As soon as there is
+a new RELP version which supports setting Rulesets, I will add support for relp back.
+
+By default, rsyslog::server will strip numbers from hostnames. This means the logs of
+multiple servers with the same non-numerical name will be aggregrated in a single
+directory. i.e. www01 www02 and www02 would all log to the www directory.
+
+To log each host to a seperate directory, set the custom_config parameter to
+'rsyslog/server-hostname.conf.erb'
diff --git a/manifests/client.pp b/manifests/client.pp
index be8518d..4bf5403 100644
--- a/manifests/client.pp
+++ b/manifests/client.pp
@@ -1,58 +1,59 @@
-# == Class: rsyslog::client
-#
-# Full description of class role here.
-#
-# === Parameters
-#
-# [*sample_parameter*]
-# [*log_remote*]
-# [*spool_size*]
-# [*remote_type*]
-# [*log_local*]
-# [*log_auth_local*]
-# [*custom_config*]
-# [*custom_params*]
-# [*server*]
-# [*port*]
-# [*ssl_ca*]
-# [*preserve_fqdn]
-#
-# === Variables
-#
-# === Examples
-#
-# class { 'rsyslog::client': }
-#
-class rsyslog::client (
- $log_remote = true,
- $spool_size = '1g',
- $remote_type = 'tcp',
- $log_local = false,
- $log_auth_local = false,
- $custom_config = undef,
- $custom_params = undef,
- $server = 'log',
- $port = '514',
- $ssl_ca = undef,
- $preserve_fqdn = undef
-) inherits rsyslog {
-
- $content_real = $custom_config ? {
- '' => template("${module_name}/client.conf.erb"),
- default => template($custom_config),
- }
-
- rsyslog::snippet {'client':
- ensure => present,
- content => $content_real,
- }
-
- if $rsyslog::ssl and $ssl_ca == undef {
- fail('You need to define $ssl_ca in order to use SSL.')
- }
-
- if $rsyslog::ssl and $remote_type != 'tcp' {
- fail('You need to enable tcp in order to use SSL.')
- }
-
-}
+# == Class: rsyslog::client
+#
+# Full description of class role here.
+#
+# === Parameters
+#
+# [*sample_parameter*]
+# [*log_remote*]
+# [*spool_size*]
+# [*remote_type*]
+# [*log_local*]
+# [*log_auth_local*]
+# [*custom_config*]
+# [*custom_params*]
+# [*server*]
+# [*port*]
+# [*ssl_ca*]
+# [*actionfiletemplate*]
+#
+# === Variables
+#
+# === Examples
+#
+# class { 'rsyslog::client': }
+#
+class rsyslog::client (
+ $log_remote = true,
+ $spool_size = '1g',
+ $remote_type = 'tcp',
+ $log_local = false,
+ $log_auth_local = false,
+ $custom_config = undef,
+ $custom_params = undef,
+ $server = 'log',
+ $port = '514',
+ $ssl_ca = undef,
+ $actionfiletemplate = undef,
+ $preserve_fqdn = undef
+) inherits rsyslog {
+
+ $content_real = $custom_config ? {
+ '' => template("${module_name}/client.conf.erb"),
+ default => template($custom_config),
+ }
+
+ rsyslog::snippet {'client':
+ ensure => present,
+ content => $content_real,
+ }
+
+ if $rsyslog::ssl and $ssl_ca == undef {
+ fail('You need to define $ssl_ca in order to use SSL.')
+ }
+
+ if $rsyslog::ssl and $remote_type != 'tcp' {
+ fail('You need to enable tcp in order to use SSL.')
+ }
+
+}
diff --git a/templates/client.conf.erb b/templates/client.conf.erb
index 696b9b2..1990112 100644
--- a/templates/client.conf.erb
+++ b/templates/client.conf.erb
@@ -7,7 +7,14 @@ $ActionQueueMaxDiskSpace <%= scope.lookupvar('rsyslog::client::spool_size') -%>
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionResumeRetryCount -1 # infinety retries if host is down
-
+<% if scope.lookupvar('rsyslog::client::actionfiletemplate') -%>
+# Using specified format for default logging fromat:
+$ActionFileDefaultTemplate <%= scope.lookupvar('rsyslog::client::actionfiletemplate') %>
+<% else -%>
+#Using default format for default logging fromat:
+$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
+<% end -%>
+<% if scope.lookupvar('rsyslog::client::log_auth_local') or scope.lookupvar('rsyslog::client::log_local') -%>
<% if scope.lookupvar('rsyslog::client::ssl') -%>
# Setup SSL connection.
# CA/Cert
@@ -28,9 +35,7 @@ $ActionSendStreamDriverAuthMode anon
<% end -%>
<% end -%>
-<% if scope.lookupvar('rsyslog::client::log_auth_local') or scope.lookupvar('rsyslog::client::log_local') -%>
-# We log locally, restore to default format
-$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
+# Logging locally.
<% if scope.lookupvar('rsyslog::log_style') == 'debian' -%>
# Log auth messages locally