From 85ade68820b8379b47acb4c1f515d943b01537d7 Mon Sep 17 00:00:00 2001
From: Arne Teuke
Date: Wed, 26 Jul 2017 12:16:25 +0100
Subject: [PATCH 1/2] added base contacts and additional contacts
---
README.md | 4 +
manifests/nagios/objects/add_contact.pp | 35 ++++
manifests/nagios/objects/add_contact_rules.pp | 69 ++++++
manifests/nagios/objects/config.pp | 34 +++
manifests/nagios/objects/contacts.pp | 97 +++++++++
manifests/nagios/objects/template_rules.pp | 3 +-
manifests/nagios/objects/templates.pp | 6 +-
manifests/params.pp | 7 +-
manifests/server/service.pp | 3 +-
templates/nagios/contacts_cfg.erb | 54 +++++
templates/nagios/contacts_cfg_head.erb | 8 +
templates/nagios/contacts_cfg_rule.erb | 7 +
templates/nagios/templates_cfg.erb | 197 ------------------
templates/nagios/templates_cfg_head.erb | 2 +-
templates/nagios/templates_cfg_rule.erb | 18 +-
15 files changed, 328 insertions(+), 216 deletions(-)
create mode 100644 manifests/nagios/objects/add_contact.pp
create mode 100644 manifests/nagios/objects/add_contact_rules.pp
create mode 100644 manifests/nagios/objects/config.pp
create mode 100644 manifests/nagios/objects/contacts.pp
create mode 100755 templates/nagios/contacts_cfg.erb
create mode 100644 templates/nagios/contacts_cfg_head.erb
create mode 100644 templates/nagios/contacts_cfg_rule.erb
delete mode 100755 templates/nagios/templates_cfg.erb
diff --git a/README.md b/README.md
index c2de47d..0a1f15d 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,8 @@ Configuration
* manage nagios.cfg through parameters
* manage Nagios users through external Puppet rules via define
* manage Nagios commands through Puppet exports
+* manage Nagios template definitions through external Puppet rules via define
+* manage Nagios main contacts through Puppet exports. Additional contacts can be created through external Puppet rules via define, to avoid having to alter the module code.
* configure NRPE on clients (optional)
* configure firewall (optional)
* configure selinux policies (optional)
@@ -67,6 +69,8 @@ All dependencies must be included in the catalogue.
* [cd_firewall](https://gitlab.puppetsoft.com/12WW1160/cd_firewall) or [puppetlabs firewall](https://github.com/puppetlabs/puppetlabs-firewall) (optional)
* [cd_selinux](https://gitlab.puppetsoft.com/12WW1160/cd_selinux) for selinux policy adjustments
* [cd_certbot](https://gitlab.puppetsoft.com/12WW1160/cd_certbot) to auto-manage TLS certificates (optional)
+* [cd_stdlib](https://gitlab.puppetsoft.com/12WW1160/cd_stdlib) or [puppetlabs stdlib](https://github.com/puppetlabs/puppetlabs-stdlib) to facilitate concat
+* [cd-concat](https://gitlab.puppetsoft.com/12WW1160/cd_stdlib) or [puppetlabs concat](https://github.com/puppetlabs/puppetlabs-concat) to concatenate configuration files from different sources.
### Deployment
diff --git a/manifests/nagios/objects/add_contact.pp b/manifests/nagios/objects/add_contact.pp
new file mode 100644
index 0000000..520d644
--- /dev/null
+++ b/manifests/nagios/objects/add_contact.pp
@@ -0,0 +1,35 @@
+## cd_nagios::nagios::objects::add_contact.pp
+# Module name: cd_nagios
+# Author: Arne Teuke (arne_teuke@ConfDroid.com)
+# # License:
+# This file is part of cd_nagios.
+#
+# cd_nagios is used for providing automatic configuration of Nagios
+# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+# @summary Define manages additional contacts known to NAGIOS through external
+# Puppet rules, and populates /etc/nagios/conf.d/nagios_add_contact.cfg.
+# @example
+################################################################################
+define cd_nagios::nagios::objects::add_contact (
+
+$ng_contact_name = undef,
+$ng_contact_use = 'generic-contact',
+$ng_contact_alias = undef,
+$ng_contact_email = undef,
+$ng_contact_groups = undef,
+
+) {
+
+}
diff --git a/manifests/nagios/objects/add_contact_rules.pp b/manifests/nagios/objects/add_contact_rules.pp
new file mode 100644
index 0000000..3384911
--- /dev/null
+++ b/manifests/nagios/objects/add_contact_rules.pp
@@ -0,0 +1,69 @@
+## cd_nagios::nagios::objects::add_contact_rules.pp
+# Module name: cd_nagios
+# Author: Arne Teuke (arne_teuke@ConfDroid.com)
+# # License:
+# This file is part of cd_nagios.
+#
+# cd_nagios is used for providing automatic configuration of Nagios
+# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+# @summary Class manages /etc/nagios/conf.d/nagios_add_contact.cfg through
+# concat.
+# @example
+# cd_nagios::nagios::objects::add_contact { 'example_user':
+# ng_contact_name => 'example_user',
+# ng_contact_alias => 'Example User',
+# ng_contact_groups => 'admins',
+# ng_contact_email => 'example@example.net',
+# }
+################################################################################
+class cd_nagios::nagios::objects::add_contact_rules (
+
+) inherits cd_nagios::params {
+
+ if $::fqdn == $ng_nagios_server {
+
+ # manage /etc/nagios/conf.d/nagios_add_contacts.cfg
+
+ concat { $ng_target_add_contact:
+ ensure => present,
+ path => $ng_target_add_contact,
+ owner => $ng_user,
+ group => $ng_user,
+ mode => '0640',
+ selrange => s0,
+ selrole => object_r,
+ seltype => nagios_etc_t,
+ seluser => system_u,
+ notify => Service[$ng_service],
+ }
+
+ # manage file header
+
+ concat::fragment { 'header':
+ target => $ng_target_add_contact,
+ content => template($ng_contacts_head_erb),
+ order => '000',
+ }
+
+ # example rule for testing
+
+ cd_nagios::nagios::objects::add_contact { 'example_user':
+ ng_contact_name => 'example_user',
+ ng_contact_alias => 'Example User',
+ ng_contact_groups => 'admins',
+ ng_contact_email => 'example@example.net',
+ }
+ }
+}
diff --git a/manifests/nagios/objects/config.pp b/manifests/nagios/objects/config.pp
new file mode 100644
index 0000000..cf828d0
--- /dev/null
+++ b/manifests/nagios/objects/config.pp
@@ -0,0 +1,34 @@
+## cd_nagios::server::nagios::objects::config.pp
+# Module name: cd_nagios
+# Author: Arne Teuke (arne_teuke@ConfDroid.com)
+# # License:
+# This file is part of cd_nagios.
+#
+# cd_nagios is used for providing automatic configuration of Nagios
+# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+# @summary Class manages the nagios objects definitions.
+#############################################################################
+class cd_nagios::nagios::objects::config (
+
+) inherits cd_nagios::params {
+
+ if $::fqdn == $ng_nagios_server {
+
+ require cd_nagios::nagios::objects::commands
+ require cd_nagios::nagios::objects::template_rules
+ require cd_nagios::nagios::objects::add_contact_rules
+
+ }
+}
diff --git a/manifests/nagios/objects/contacts.pp b/manifests/nagios/objects/contacts.pp
new file mode 100644
index 0000000..43eb9e0
--- /dev/null
+++ b/manifests/nagios/objects/contacts.pp
@@ -0,0 +1,97 @@
+## cd_nagios::nagios::objects::contacts.pp
+# Module name: cd_nagios
+# Author: Arne Teuke (arne_teuke@ConfDroid.com)
+# # License:
+# This file is part of cd_nagios.
+#
+# cd_nagios is used for providing automatic configuration of Nagios
+# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+# @summary Class manages basic contacts known to NAGIOS through Puppet exports,
+# and populates /etc/nagios/conf.d/nagios_base_contacts.cfg.
+# @example
+# @@nagios_contact { 'admin':
+# ensure => present,
+# alias => 'Nagios Admin',
+# contact_name => 'admin',
+# contactgroups => 'admins',
+# email => "admin@${::domain}",
+# can_submit_commands => '1',
+# register => '1',
+# use => 'generic-contact',
+# target => $ng_target_base_contact,
+# owner => 'root',
+# group => 'nagios',
+# mode => '0664',
+# }
+################################################################################
+class cd_nagios::nagios::objects::contacts (
+
+
+) inherits cd_nagios::params {
+
+ if $::fqdn == $ng_nagios_server {
+
+ # admin contact
+
+ @@nagios_contact { 'admin':
+ ensure => present,
+ alias => 'Nagios Admin',
+ contact_name => 'admin',
+ contactgroups => 'admins',
+ email => "admin@${::domain}",
+ can_submit_commands => '1',
+ register => '1',
+ use => 'generic-contact',
+ target => $ng_target_base_contact,
+ owner => $ng_user,
+ group => $ng_user,
+ mode => '0640',
+ }
+
+ # ops contact
+
+ @@nagios_contact { 'ops':
+ ensure => present,
+ alias => 'Operations',
+ contact_name => 'ops',
+ contactgroups => 'operations',
+ email => "ops@${::domain}",
+ can_submit_commands => '1',
+ register => '1',
+ use => 'generic-contact',
+ target => $ng_target_base_contact,
+ owner => $ng_user,
+ group => $ng_user,
+ mode => '0640',
+ }
+
+ # support contact
+
+ @@nagios_contact { 'support':
+ ensure => present,
+ alias => 'support',
+ contact_name => 'support',
+ contactgroups => 'support',
+ email => "support@${::domain}",
+ can_submit_commands => '1',
+ register => '1',
+ use => 'generic-contact',
+ target => $ng_target_base_contact,
+ owner => $ng_user,
+ group => $ng_user,
+ mode => '0640',
+ }
+ }
+}
diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp
index b5e133a..63e94bb 100644
--- a/manifests/nagios/objects/template_rules.pp
+++ b/manifests/nagios/objects/template_rules.pp
@@ -18,7 +18,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-# @summary Class manages /etc/nagios/conf.d/templates.cfg through concat.
+# @summary Class manages /etc/nagios/conf.d/nagios_templates.cfg through
+# concat.
# @example cd_nagios::nagios::objects::templates { 'generic contact':
# ng_template_object => 'contact',
# ng_template_object_name => 'generic-contact',
diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp
index ab7da62..5f04474 100644
--- a/manifests/nagios/objects/templates.pp
+++ b/manifests/nagios/objects/templates.pp
@@ -25,7 +25,7 @@
# i.e. `generic-contact`, `generic-host`, `generic-service`.
# @param [string] ng_svc_notification_period Period in which to send out
# notifications for service events, i.e. `24x7`.
-# @param [string] ng_svc_notification_period Period in which to send out
+# @param [string] ng_host_notification_period Period in which to send out
# notifications for host events , i.e. `24x7`.
# @param [string] ng_service_notification_options What service events to send
# out notifications for:
@@ -77,6 +77,7 @@
# retries for the defined object.
# @param [string] ng_max_check_attempts how often to check the defined object
# maximal.
+# @param [string] ng_check_command The command to use for host checks.
# @param [string] ng_notification_options see `ng_service_notification_options`
# and `ng_host_notification_options`.
# @param [string] ng_contact_groups contact groups for the defined oject.
@@ -112,7 +113,6 @@ $ng_template_object_use = undef,
$ng_notifications_enabled = '1',
$ng_event_handler_enabled = '1',
$ng_flap_detection_enabled = '1',
-$ng_failure_prediction_enabled = '1',
$ng_process_perf_data = '1',
$ng_retain_status_information = '1',
$ng_retain_nonstatus_information = '1',
@@ -122,7 +122,7 @@ $ng_check_period = '24x7',
$ng_check_interval = '5',
$ng_retry_interval = '1',
$ng_max_check_attempts = '10',
-$ng_check_command = 'check-host-alive',
+$ng_host_check_command = 'check-host-alive',
$ng_notification_options = undef,
$ng_contact_groups = 'admins',
$ng_active_checks_enabled = '1',
diff --git a/manifests/params.pp b/manifests/params.pp
index 134e21c..7ad6e13 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -959,7 +959,7 @@ $ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pe
$ng_certbot_live = "${ng_certbot_main_dir}/live"
# nagios
-$ng_target_templates = "${ng_conf_d_dir}/templates.cfg"
+$ng_target_templates = "${ng_conf_d_dir}/nagios_templates.cfg"
$ng_templates_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb'
$ng_templates_rule_erb = 'cd_nagios/nagios/templates_cfg_rule.erb'
$ng_target_timeperiods = "${ng_conf_d_dir}/timeperiods.cfg"
@@ -971,7 +971,10 @@ $ng_target_hostesc = "${ng_conf_d_dir}/nagios_hostescalation.cfg"
$ng_target_hostext = "${ng_conf_d_dir}/nagios_hostextinfo.cfg"
$ng_target_service = "${ng_conf_d_dir}/nagios_service.cfg"
$ng_target_servicegroup = "${ng_conf_d_dir}/nagios_servicegroup.cfg"
-$ng_target_contact = "${ng_conf_d_dir}/nagios_contact.cfg"
+$ng_target_base_contact = "${ng_conf_d_dir}/nagios_base_contact.cfg"
+$ng_target_add_contact = "${ng_conf_d_dir}/nagios_add_contact.cfg"
+$ng_contacts_head_erb = 'cd_nagios/nagios/contacts_cfg_head.erb'
+$ng_contact_rule_erb = 'cd_nagios/nagios/contact_cfg_rule.erb'
$ng_target_contactgroup = "${ng_conf_d_dir}/nagios_contactgroup.cfg"
$ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg"
diff --git a/manifests/server/service.pp b/manifests/server/service.pp
index 3ec4b42..bacd990 100644
--- a/manifests/server/service.pp
+++ b/manifests/server/service.pp
@@ -28,8 +28,7 @@ class cd_nagios::server::service (
require cd_nagios::server::files
require cd_nagios::server::access_rules
- require cd_nagios::nagios::objects::commands
- require cd_nagios::nagios::objects::template_rules
+ require cd_nagios::nagios::objects::config
service { $ng_service:
ensure => running,
diff --git a/templates/nagios/contacts_cfg.erb b/templates/nagios/contacts_cfg.erb
new file mode 100755
index 0000000..98407a3
--- /dev/null
+++ b/templates/nagios/contacts_cfg.erb
@@ -0,0 +1,54 @@
+###############################################################################
+# CONTACTS.CFG - SAMPLE CONTACT/CONTACTGROUP DEFINITIONS
+#
+#
+# NOTES: This config file provides you with some example contact and contact
+# group definitions that you can reference in host and service
+# definitions.
+#
+# You don't need to keep these definitions in a separate file from your
+# other object definitions. This has been done just to make things
+# easier to understand.
+#
+###############################################################################
+
+
+
+###############################################################################
+###############################################################################
+#
+# CONTACTS
+#
+###############################################################################
+###############################################################################
+
+# Just one contact defined by default - the Nagios admin (that's you)
+# This contact definition inherits a lot of default values from the 'generic-contact'
+# template which is defined elsewhere.
+
+define contact{
+ contact_name nagiosadmin ; Short name of user
+ use generic-contact ; Inherit default values from generic-contact template (defined above)
+ alias Nagios Admin ; Full name of user
+
+ email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
+ }
+
+
+
+###############################################################################
+###############################################################################
+#
+# CONTACT GROUPS
+#
+###############################################################################
+###############################################################################
+
+# We only have one contact in this simple configuration file, so there is
+# no need to create more than one contact group.
+
+define contactgroup{
+ contactgroup_name admins
+ alias Nagios Administrators
+ members nagiosadmin
+ }
diff --git a/templates/nagios/contacts_cfg_head.erb b/templates/nagios/contacts_cfg_head.erb
new file mode 100644
index 0000000..c357ffc
--- /dev/null
+++ b/templates/nagios/contacts_cfg_head.erb
@@ -0,0 +1,8 @@
+###############################################################################
+########## nagios_add_contact.cfg created by Puppet ##########
+########## manual changes are overwritten! ##########
+###############################################################################
+########## Full reference file available at ##########
+########## https://confdroid.com/2017/07/nagios-contacts-cfg/ ##########
+###############################################################################
+# rules are created below by external puppet rules.
diff --git a/templates/nagios/contacts_cfg_rule.erb b/templates/nagios/contacts_cfg_rule.erb
new file mode 100644
index 0000000..6f103fa
--- /dev/null
+++ b/templates/nagios/contacts_cfg_rule.erb
@@ -0,0 +1,7 @@
+define contact {
+ contact_name <%= @ng_contact_name %>
+ use <%= @ng_contact_use %>
+ alias <%= @ng_contact_alias %>
+ email <%= @ng_contact_email %>
+ contactgroups <%= @ng_contact_groups %>
+ }
diff --git a/templates/nagios/templates_cfg.erb b/templates/nagios/templates_cfg.erb
deleted file mode 100755
index fad436e..0000000
--- a/templates/nagios/templates_cfg.erb
+++ /dev/null
@@ -1,197 +0,0 @@
-###############################################################################
-# TEMPLATES.CFG - SAMPLE OBJECT TEMPLATES
-#
-#
-# NOTES: This config file provides you with some example object definition
-# templates that are refered by other host, service, contact, etc.
-# definitions in other config files.
-#
-# You don't need to keep these definitions in a separate file from your
-# other object definitions. This has been done just to make things
-# easier to understand.
-#
-###############################################################################
-
-
-
-###############################################################################
-###############################################################################
-#
-# CONTACT TEMPLATES
-#
-###############################################################################
-###############################################################################
-
-# Generic contact definition template - This is NOT a real contact, just a template!
-
-define contact{
- name generic-contact ; The name of this contact template
- service_notification_period 24x7 ; service notifications can be sent anytime
- host_notification_period 24x7 ; host notifications can be sent anytime
- service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events
- host_notification_options d,u,r,f,s ; send notifications for all host states, flapping events, and scheduled downtime events
- service_notification_commands notify-service-by-email ; send service notifications via email
- host_notification_commands notify-host-by-email ; send host notifications via email
- register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
- }
-
-
-
-
-###############################################################################
-###############################################################################
-#
-# HOST TEMPLATES
-#
-###############################################################################
-###############################################################################
-
-# Generic host definition template - This is NOT a real host, just a template!
-
-define host{
- name generic-host ; The name of this host template
- notifications_enabled 1 ; Host notifications are enabled
- event_handler_enabled 1 ; Host event handler is enabled
- flap_detection_enabled 1 ; Flap detection is enabled
- process_perf_data 1 ; Process performance data
- retain_status_information 1 ; Retain status information across program restarts
- retain_nonstatus_information 1 ; Retain non-status information across program restarts
- notification_period 24x7 ; Send host notifications at any time
- register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
- }
-
-
-# Linux host definition template - This is NOT a real host, just a template!
-
-define host{
- name linux-server ; The name of this host template
- use generic-host ; This template inherits other values from the generic-host template
- check_period 24x7 ; By default, Linux hosts are checked round the clock
- check_interval 5 ; Actively check the host every 5 minutes
- retry_interval 1 ; Schedule host check retries at 1 minute intervals
- max_check_attempts 10 ; Check each Linux host 10 times (max)
- check_command check-host-alive ; Default command to check Linux hosts
- notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day
- ; Note that the notification_period variable is being overridden from
- ; the value that is inherited from the generic-host template!
- notification_interval 120 ; Resend notifications every 2 hours
- notification_options d,u,r ; Only send notifications for specific host states
- contact_groups admins ; Notifications get sent to the admins by default
- register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
- }
-
-
-
-# Windows host definition template - This is NOT a real host, just a template!
-
-define host{
- name windows-server ; The name of this host template
- use generic-host ; Inherit default values from the generic-host template
- check_period 24x7 ; By default, Windows servers are monitored round the clock
- check_interval 5 ; Actively check the server every 5 minutes
- retry_interval 1 ; Schedule host check retries at 1 minute intervals
- max_check_attempts 10 ; Check each server 10 times (max)
- check_command check-host-alive ; Default command to check if servers are "alive"
- notification_period 24x7 ; Send notification out at any time - day or night
- notification_interval 30 ; Resend notifications every 30 minutes
- notification_options d,r ; Only send notifications for specific host states
- contact_groups admins ; Notifications get sent to the admins by default
- hostgroups windows-servers ; Host groups that Windows servers should be a member of
- register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
- }
-
-
-# We define a generic printer template that can be used for most printers we monitor
-
-define host{
- name generic-printer ; The name of this host template
- use generic-host ; Inherit default values from the generic-host template
- check_period 24x7 ; By default, printers are monitored round the clock
- check_interval 5 ; Actively check the printer every 5 minutes
- retry_interval 1 ; Schedule host check retries at 1 minute intervals
- max_check_attempts 10 ; Check each printer 10 times (max)
- check_command check-host-alive ; Default command to check if printers are "alive"
- notification_period workhours ; Printers are only used during the workday
- notification_interval 30 ; Resend notifications every 30 minutes
- notification_options d,r ; Only send notifications for specific host states
- contact_groups admins ; Notifications get sent to the admins by default
- statusmap_image printer.png
- register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
- }
-
-
-# Define a template for switches that we can reuse
-define host{
- name generic-switch ; The name of this host template
- use generic-host ; Inherit default values from the generic-host template
- check_period 24x7 ; By default, switches are monitored round the clock
- check_interval 5 ; Switches are checked every 5 minutes
- retry_interval 1 ; Schedule host check retries at 1 minute intervals
- max_check_attempts 10 ; Check each switch 10 times (max)
- check_command check-host-alive ; Default command to check if routers are "alive"
- notification_period 24x7 ; Send notifications at any time
- notification_interval 30 ; Resend notifications every 30 minutes
- notification_options d,r ; Only send notifications for specific host states
- contact_groups admins ; Notifications get sent to the admins by default
- statusmap_image switch.png
- register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
- }
-
-# Define a template for routers that we can reuse
-define host{
- name generic-router ; The name of this host template
- use generic-switch ; Inherit default values from the generic-host template
- statusmap_image router.png
- register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
- }
-
-
-
-
-###############################################################################
-###############################################################################
-#
-# SERVICE TEMPLATES
-#
-###############################################################################
-###############################################################################
-
-# Generic service definition template - This is NOT a real service, just a template!
-
-define service{
- name generic-service ; The 'name' of this service template
- active_checks_enabled 1 ; Active service checks are enabled
- passive_checks_enabled 1 ; Passive service checks are enabled/accepted
- parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems)
- obsess_over_service 1 ; We should obsess over this service (if necessary)
- check_freshness 0 ; Default is to NOT check service 'freshness'
- notifications_enabled 1 ; Service notifications are enabled
- event_handler_enabled 1 ; Service event handler is enabled
- flap_detection_enabled 1 ; Flap detection is enabled
- process_perf_data 1 ; Process performance data
- retain_status_information 1 ; Retain status information across program restarts
- retain_nonstatus_information 1 ; Retain non-status information across program restarts
- is_volatile 0 ; The service is not volatile
- check_period 24x7 ; The service can be checked at any time of the day
- max_check_attempts 3 ; Re-check the service up to 3 times in order to determine its final (hard) state
- check_interval 10 ; Check the service every 10 minutes under normal conditions
- retry_interval 2 ; Re-check the service every two minutes until a hard state can be determined
- contact_groups admins ; Notifications get sent out to everyone in the 'admins' group
- notification_options w,u,c,r ; Send notifications about warning, unknown, critical, and recovery events
- notification_interval 60 ; Re-notify about service problems every hour
- notification_period 24x7 ; Notifications can be sent out at any time
- register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
- }
-
-
-# Local service definition template - This is NOT a real service, just a template!
-
-define service{
- name local-service ; The name of this service template
- use generic-service ; Inherit default values from the generic-service definition
- max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state
- check_interval 5 ; Check the service every 5 minutes under normal conditions
- retry_interval 1 ; Re-check the service every minute until a hard state can be determined
- register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
- }
-
diff --git a/templates/nagios/templates_cfg_head.erb b/templates/nagios/templates_cfg_head.erb
index cbd2b0c..b613344 100644
--- a/templates/nagios/templates_cfg_head.erb
+++ b/templates/nagios/templates_cfg_head.erb
@@ -1,5 +1,5 @@
###############################################################################
-### templates.cfg generated by Puppet | manual changes will be overwritten! ###
+### nagios_templates.cfg created by Puppet | manual changes are overwritten!###
###############################################################################
########## Full reference file available at ##########
########## https://confdroid.com/2017/07/nagios-templates-cfg/ ##########
diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb
index 2c00f14..7d1208b 100644
--- a/templates/nagios/templates_cfg_rule.erb
+++ b/templates/nagios/templates_cfg_rule.erb
@@ -17,7 +17,6 @@ define <%= @ng_template_object %>{
notifications_enabled <%= @ng_notifications_enabled %>
event_handler_enabled <%= @ng_event_handler_enabled %>
flap_detection_enabled <%= @ng_flap_detection_enabled %>
- failure_prediction_enabled <%= @ng_failure_prediction_enabled %>
process_perf_data <%= @ng_process_perf_data %>
retain_status_information <%= @ng_retain_status_information %>
retain_nonstatus_information <%= @ng_retain_nonstatus_information %>
@@ -33,7 +32,7 @@ define <%= @ng_template_object %>{
check_interval <%= @ng_check_interval %>
retry_interval <%= @ng_retry_interval %>
max_check_attempts <%= @ng_ng_max_check_attempts %>
- check_command <%= @ng_check_command %>
+ check_command <%= @ng_host_check_command %>
notification_period <%= @ng_notification_period %>
notification_interval <%= @ng_notification_interval %>
notification_options <%= @ng_notification_options %>
@@ -41,7 +40,7 @@ define <%= @ng_template_object %>{
hostgroups linux-servers
register <%= @ng_object_register %>
}
-<% end %>
+<% end -%>
<% if @ng_template_object_name == 'windows-server' -%>
define <%= @ng_template_object %>{
name <%= @ng_template_object_name %>
@@ -50,7 +49,7 @@ define <%= @ng_template_object %>{
check_interval <%= @ng_check_interval %>
retry_interval <%= @ng_retry_interval %>
max_check_attempts <%= @ng_max_check_attempts %>
- check_command <%= @ng_check_command %>
+ check_command <%= @ng_host_check_command %>
notification_period <%= @ng_notification_period %>
notification_interval <%= @ng_notification_interval %>
notification_options <%= @ng_notification_options %>
@@ -58,7 +57,7 @@ define <%= @ng_template_object %>{
hostgroups windows-servers
register <%= @ng_object_register %>
}
-<% end %>
+<% end -%>
<% if @ng_template_object_name == 'generic_printer' -%>
define <%= @ng_template_object %>{
name <%= @ng_template_object_name %>
@@ -67,7 +66,7 @@ define <%= @ng_template_object %>{
check_interval <%= @ng_check_interval %>
retry_interval <%= @ng_retry_interval %>
max_check_attempts <%= @ng_max_check_attempts %>
- check_command <%= @ng_check_command %>
+ check_command <%= @ng_host_check_command %>
notification_period <%= @ng_notification_period %>
notification_interval <%= @ng_notification_interval %>
notification_options <%= @ng_notification_options %>
@@ -75,7 +74,7 @@ define <%= @ng_template_object %>{
statusmap_image printer.png
register <%= @ng_object_register %>
}
-<% end %>
+<% end -%>
<% if @ng_template_object_name == 'generic_switch' -%>
define <%= @ng_template_object %>{
name <%= @ng_template_object_name %>
@@ -84,7 +83,7 @@ define <%= @ng_template_object %>{
check_interval <%= @ng_check_interval %>
retry_interval <%= @ng_retry_interval %>
max_check_attempts <%= @ng_max_check_attempts %>
- check_command <%= @ng_check_command %>
+ check_command <%= @ng_host_check_command %>
notification_period <%= @ng_notification_period %>
notification_interval <%= @ng_notification_interval %>
notification_options <%= @ng_notification_options %>
@@ -92,7 +91,7 @@ define <%= @ng_template_object %>{
statusmap_image switch.png
register <%= @ng_object_register %>
}
-<% end %>
+<% end -%>
<% elsif @ng_template_object == 'service' -%>
<% if @ng_template_object_name == 'generic-service' -%>
define <%= @ng_template_object %>{
@@ -105,7 +104,6 @@ define <%= @ng_template_object %>{
notifications_enabled <%= @ng_notifications_enabled %>
event_handler_enabled <%= @ng_event_handler_enabled %>
flap_detection_enabled <%= @ng_flap_detection_enabled %>
- failure_prediction_enabled <%= @ng_failure_prediction_enabled %>
process_perf_data <%= @ng_process_perf_data %>
retain_status_information <%= @ng_retain_status_information %>
retain_nonstatus_information <%= @ng_retain_nonstatus_information %>
From d395b5f60d08f612b779bf9c92184ed750fa51a6 Mon Sep 17 00:00:00 2001
From: Jenkins Server
Date: Wed, 26 Jul 2017 13:16:49 +0200
Subject: [PATCH 2/2] recommit for updates in build 97
---
CHANGELOG.md | 15 +
REPOSTRUCTURE.md | 10 +-
doc/_index.html | 22 +-
doc/file.README.html | 32 +-
doc/index.html | 32 +-
doc/puppet_class_list.html | 35 ++-
doc/puppet_classes/cd_nagios.html | 2 +-
.../cd_nagios_3A_3Acertbot_3A_3Acerts.html | 2 +-
.../cd_nagios_3A_3Aclient_3A_3Atarget.html | 2 +-
...cd_nagios_3A_3Afirewall_3A_3Aiptables.html | 2 +-
.../cd_nagios_3A_3Amain_3A_3Aconfig.html | 2 +-
.../cd_nagios_3A_3Amain_3A_3Adirs.html | 2 +-
.../cd_nagios_3A_3Amain_3A_3Ainstall.html | 2 +-
.../cd_nagios_3A_3Amain_3A_3Auser.html | 2 +-
...s_3A_3Aobjects_3A_3Aadd_contact_rules.html | 238 ++++++++++++++
...A_3Anagios_3A_3Aobjects_3A_3Acommands.html | 2 +-
..._3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html | 174 +++++++++++
...A_3Anagios_3A_3Aobjects_3A_3Acontacts.html | 290 ++++++++++++++++++
...gios_3A_3Aobjects_3A_3Atemplate_rules.html | 11 +-
doc/puppet_classes/cd_nagios_3A_3Aparams.html | 20 +-
.../cd_nagios_3A_3Aselinux_3A_3Aconfig.html | 2 +-
..._nagios_3A_3Aserver_3A_3Aaccess_rules.html | 2 +-
.../cd_nagios_3A_3Aserver_3A_3Afiles.html | 2 +-
.../cd_nagios_3A_3Aserver_3A_3Aservice.html | 8 +-
doc/puppet_defined_type_list.html | 11 +-
...Anagios_3A_3Aobjects_3A_3Aadd_contact.html | 235 ++++++++++++++
..._3Anagios_3A_3Aobjects_3A_3Atemplates.html | 43 ++-
.../cd_nagios_3A_3Aserver_3A_3Aaccess.html | 2 +-
doc/top-level-namespace.html | 2 +-
29 files changed, 1124 insertions(+), 80 deletions(-)
create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact_rules.html
create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aconfig.html
create mode 100644 doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acontacts.html
create mode 100644 doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Aadd_contact.html
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6971968..215c319 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,21 @@ Changelog of Git Changelog.
+ Class manages /etc/nagios/conf.d/nagios_add_contact.cfg through
+concat.
+
+
Overview
+
+
+
+
cd_nagios::nagios::objects::add_contact_rules.pp
+Module name:
+cd_nagios
+Author: Arne Teuke (arne_teuke@ConfDroid.com)
+
+
License:
+
+
This file is part of cd_nagios.
+
+
cd_nagios is used for providing automatic configuration of Nagios
+
+Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+ This program is
+free software: you can redistribute it and/or modify
+ it under the terms of
+the GNU General Public License as published by
+ the Free Software
+Foundation, either version 3 of the License, or
+ (at your option) any later
+version.
+
+
This program is distributed in the hope that it will be useful,
+ but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License
+for more details.
+
+
You should have received a copy of the GNU General Public License
+ along
+with this program. If not, see www.gnu.org/licenses/.
+cd_nagios::nagios::objects::add_contact
+{ 'example_user':
+ ng_contact_name => 'example_user',
+
+ng_contact_alias => 'Example User',
+ ng_contact_groups =>
+'admins',
+ ng_contact_email => 'example@example.net',
+ }
+ Class manages the nagios objects definitions.
+
+
Overview
+
+
+
+
cd_nagios::server::nagios::objects::config.pp
+Module name:
+cd_nagios
+Author: Arne Teuke (arne_teuke@ConfDroid.com)
+
+
License:
+
+
This file is part of cd_nagios.
+
+
cd_nagios is used for providing automatic configuration of Nagios
+
+Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+ This program is
+free software: you can redistribute it and/or modify
+ it under the terms of
+the GNU General Public License as published by
+ the Free Software
+Foundation, either version 3 of the License, or
+ (at your option) any later
+version.
+
+
This program is distributed in the hope that it will be useful,
+ but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License
+for more details.
+
+
You should have received a copy of the GNU General Public License
+ along
+with this program. If not, see www.gnu.org/licenses/.
+ Class manages basic contacts known to NAGIOS through Puppet exports,
+and populates /etc/nagios/conf.d/nagios_base_contacts.cfg.
+
+
Overview
+
+
+
+
cd_nagios::nagios::objects::contacts.pp
+Module name: cd_nagios
+Author: Arne
+Teuke (arne_teuke@ConfDroid.com)
+
+
License:
+
+
This file is part of cd_nagios.
+
+
cd_nagios is used for providing automatic configuration of Nagios
+
+Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+ This program is
+free software: you can redistribute it and/or modify
+ it under the terms of
+the GNU General Public License as published by
+ the Free Software
+Foundation, either version 3 of the License, or
+ (at your option) any later
+version.
+
+
This program is distributed in the hope that it will be useful,
+ but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License
+for more details.
+
+
You should have received a copy of the GNU General Public License
+ along
+with this program. If not, see www.gnu.org/licenses/.
+
+
\ No newline at end of file
diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html
index 9784b65..6f0c5c9 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html
@@ -77,7 +77,8 @@
Summary
- Class manages /etc/nagios/conf.d/templates.cfg through concat.
+ Class manages /etc/nagios/conf.d/nagios_templates.cfg through
+concat.
cd_nagios is used for providing automatic configuration of Nagios
+
+Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+ This program is
+free software: you can redistribute it and/or modify
+ it under the terms of
+the GNU General Public License as published by
+ the Free Software
+Foundation, either version 3 of the License, or
+ (at your option) any later
+version.
+
+
This program is distributed in the hope that it will be useful,
+ but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License
+for more details.
+
+
You should have received a copy of the GNU General Public License
+ along
+with this program. If not, see www.gnu.org/licenses/.
+
+
\ No newline at end of file
diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html
index ac06627..8ca4aca 100644
--- a/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html
+++ b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html
@@ -180,7 +180,7 @@ notifications for service events, i.e.
- ng_svc_notification_period
+ ng_host_notification_period(string)
@@ -405,8 +405,6 @@ Valid options are 0 and
(string)
- (defaults to: '1')
-
—
@@ -591,6 +589,22 @@ maximal.
+
+
+ ng_check_command
+
+
+ (string)
+
+
+
+ —
+
+
The command to use for host checks.
+
+
+
+
ng_notification_options
@@ -791,20 +805,7 @@ until a hard state can be determined.