Browse Source

Added a SyslogLogger object, accompanying ERB template and README additions.

refs#7234: https://dev.icinga.org/issues/7234
Nick Chappell 9 years ago
parent
commit
6d0b759fa6
3 changed files with 78 additions and 0 deletions
  1. 17 0
      README.md
  2. 40 0
      manifests/object/sysloglogger.pp
  3. 21 0
      templates/object_sysloglogger.conf.erb

+ 17 - 0
README.md

@@ -370,6 +370,23 @@ icinga2::object::servicegroup { 'web_services':
 
 See [ServiceGroup](http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-servicegroup) on [docs.icinga.org](http://docs.icinga.org/icinga2/latest/doc/module/icinga2/toc) for a full list of parameters.
 
+####`icinga2::object::sysloglogger`
+
+This defined type creates **SyslogLogger** objects.
+
+`severity` can be set to **debug**, **notice**, **information**, **warning** or **critical**. 
+
+Example usage:
+
+<pre>
+icinga2::object::sysloglogger { 'syslog-warning':
+  severity => 'warning',
+  target_dir => '/etc/icinga2/features-enabled',
+}
+</pre>
+
+See [SyslogLogger](http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-servicegroup) on [docs.icinga.org](http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-sysloglogger) for more info.
+
 ## Documentation
 
 The latest documentation is also available on https://docs.icinga.org

+ 40 - 0
manifests/object/sysloglogger.pp

@@ -0,0 +1,40 @@
+# == Defined type: icinga2::object::sysloglogger
+#
+#  This is a defined type for Icinga 2 user objects.
+# See the following Icinga 2 doc page for more info:
+# http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-sysloglogger
+#
+# === Parameters
+#
+# See the inline comments.
+#
+
+define icinga2::object::sysloglogger (
+  $object_name = $name,
+  $severity = 'warning',
+  $target_dir = '/etc/icinga2/conf.d',
+  $target_file_name = "${name}.conf",
+  $target_file_owner = 'root',
+  $target_file_group = 'root',
+  $target_file_mode = '644'
+) {
+
+  #Do some validation of the class' parameters:
+  validate_string($object_name)
+  validate_string($severity)
+  validate_string($target_dir)
+  validate_string($target_file_name)
+  validate_string($target_file_owner)
+  validate_string($target_file_group)
+  validate_string($target_file_mode)
+
+  file {"${target_dir}/${target_file_name}":
+    ensure => file,
+    owner   => $target_file_owner,
+    group   => $target_file_group,
+    mode    => $target_file_mode,
+    content => template('icinga2/object_sysloglogger.conf.erb'),
+    notify => Service['icinga2'],
+  }
+
+}

+ 21 - 0
templates/object_sysloglogger.conf.erb

@@ -0,0 +1,21 @@
+/**
+ * WARNING: This SyslogLogger definition is automatically generated by Puppet.
+ * ANY MANUAL CHANGES TO IT WILL GET OVERWRITTEN!
+ */
+
+/**
+ * A SyslogLogger object definition. 
+ *
+ * The SyslogLogger type writes log information to syslog.
+ *
+ * You can create your own configuration
+ * files in the conf.d directory (e.g. one per host). By default all *.conf
+ * files in this directory are included.
+ *
+ * See http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-sysloglogger
+ * for more info on MySQL IDO connection obects.
+ */
+
+object SyslogLogger "<%= @object_name -%>" {
+  severity = "<%= @severity -%>"
+}