added base contacts and additional contacts
This commit is contained in:
@@ -46,6 +46,8 @@ Configuration
|
|||||||
* manage nagios.cfg through parameters
|
* manage nagios.cfg through parameters
|
||||||
* manage Nagios users through external Puppet rules via define
|
* manage Nagios users through external Puppet rules via define
|
||||||
* manage Nagios commands through Puppet exports
|
* 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 NRPE on clients (optional)
|
||||||
* configure firewall (optional)
|
* configure firewall (optional)
|
||||||
* configure selinux policies (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_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_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_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
|
### Deployment
|
||||||
|
|
||||||
|
|||||||
35
manifests/nagios/objects/add_contact.pp
Normal file
35
manifests/nagios/objects/add_contact.pp
Normal file
@@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
# @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,
|
||||||
|
|
||||||
|
) {
|
||||||
|
|
||||||
|
}
|
||||||
69
manifests/nagios/objects/add_contact_rules.pp
Normal file
69
manifests/nagios/objects/add_contact_rules.pp
Normal file
@@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
# @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',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
34
manifests/nagios/objects/config.pp
Normal file
34
manifests/nagios/objects/config.pp
Normal file
@@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
# @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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
97
manifests/nagios/objects/contacts.pp
Normal file
97
manifests/nagios/objects/contacts.pp
Normal file
@@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
# @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',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,7 +18,8 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
# @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':
|
# @example cd_nagios::nagios::objects::templates { 'generic contact':
|
||||||
# ng_template_object => 'contact',
|
# ng_template_object => 'contact',
|
||||||
# ng_template_object_name => 'generic-contact',
|
# ng_template_object_name => 'generic-contact',
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
# i.e. `generic-contact`, `generic-host`, `generic-service`.
|
# i.e. `generic-contact`, `generic-host`, `generic-service`.
|
||||||
# @param [string] ng_svc_notification_period Period in which to send out
|
# @param [string] ng_svc_notification_period Period in which to send out
|
||||||
# notifications for service events, i.e. `24x7`.
|
# 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`.
|
# notifications for host events , i.e. `24x7`.
|
||||||
# @param [string] ng_service_notification_options What service events to send
|
# @param [string] ng_service_notification_options What service events to send
|
||||||
# out notifications for:
|
# out notifications for:
|
||||||
@@ -77,6 +77,7 @@
|
|||||||
# retries for the defined object.
|
# retries for the defined object.
|
||||||
# @param [string] ng_max_check_attempts how often to check the defined object
|
# @param [string] ng_max_check_attempts how often to check the defined object
|
||||||
# maximal.
|
# maximal.
|
||||||
|
# @param [string] ng_check_command The command to use for host checks.
|
||||||
# @param [string] ng_notification_options see `ng_service_notification_options`
|
# @param [string] ng_notification_options see `ng_service_notification_options`
|
||||||
# and `ng_host_notification_options`.
|
# and `ng_host_notification_options`.
|
||||||
# @param [string] ng_contact_groups contact groups for the defined oject.
|
# @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_notifications_enabled = '1',
|
||||||
$ng_event_handler_enabled = '1',
|
$ng_event_handler_enabled = '1',
|
||||||
$ng_flap_detection_enabled = '1',
|
$ng_flap_detection_enabled = '1',
|
||||||
$ng_failure_prediction_enabled = '1',
|
|
||||||
$ng_process_perf_data = '1',
|
$ng_process_perf_data = '1',
|
||||||
$ng_retain_status_information = '1',
|
$ng_retain_status_information = '1',
|
||||||
$ng_retain_nonstatus_information = '1',
|
$ng_retain_nonstatus_information = '1',
|
||||||
@@ -122,7 +122,7 @@ $ng_check_period = '24x7',
|
|||||||
$ng_check_interval = '5',
|
$ng_check_interval = '5',
|
||||||
$ng_retry_interval = '1',
|
$ng_retry_interval = '1',
|
||||||
$ng_max_check_attempts = '10',
|
$ng_max_check_attempts = '10',
|
||||||
$ng_check_command = 'check-host-alive',
|
$ng_host_check_command = 'check-host-alive',
|
||||||
$ng_notification_options = undef,
|
$ng_notification_options = undef,
|
||||||
$ng_contact_groups = 'admins',
|
$ng_contact_groups = 'admins',
|
||||||
$ng_active_checks_enabled = '1',
|
$ng_active_checks_enabled = '1',
|
||||||
|
|||||||
@@ -959,7 +959,7 @@ $ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pe
|
|||||||
$ng_certbot_live = "${ng_certbot_main_dir}/live"
|
$ng_certbot_live = "${ng_certbot_main_dir}/live"
|
||||||
|
|
||||||
# nagios
|
# 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_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb'
|
||||||
$ng_templates_rule_erb = 'cd_nagios/nagios/templates_cfg_rule.erb'
|
$ng_templates_rule_erb = 'cd_nagios/nagios/templates_cfg_rule.erb'
|
||||||
$ng_target_timeperiods = "${ng_conf_d_dir}/timeperiods.cfg"
|
$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_hostext = "${ng_conf_d_dir}/nagios_hostextinfo.cfg"
|
||||||
$ng_target_service = "${ng_conf_d_dir}/nagios_service.cfg"
|
$ng_target_service = "${ng_conf_d_dir}/nagios_service.cfg"
|
||||||
$ng_target_servicegroup = "${ng_conf_d_dir}/nagios_servicegroup.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_contactgroup = "${ng_conf_d_dir}/nagios_contactgroup.cfg"
|
||||||
$ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg"
|
$ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg"
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,7 @@ class cd_nagios::server::service (
|
|||||||
|
|
||||||
require cd_nagios::server::files
|
require cd_nagios::server::files
|
||||||
require cd_nagios::server::access_rules
|
require cd_nagios::server::access_rules
|
||||||
require cd_nagios::nagios::objects::commands
|
require cd_nagios::nagios::objects::config
|
||||||
require cd_nagios::nagios::objects::template_rules
|
|
||||||
|
|
||||||
service { $ng_service:
|
service { $ng_service:
|
||||||
ensure => running,
|
ensure => running,
|
||||||
|
|||||||
54
templates/nagios/contacts_cfg.erb
Executable file
54
templates/nagios/contacts_cfg.erb
Executable file
@@ -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
|
||||||
|
}
|
||||||
8
templates/nagios/contacts_cfg_head.erb
Normal file
8
templates/nagios/contacts_cfg_head.erb
Normal file
@@ -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.
|
||||||
7
templates/nagios/contacts_cfg_rule.erb
Normal file
7
templates/nagios/contacts_cfg_rule.erb
Normal file
@@ -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 %>
|
||||||
|
}
|
||||||
@@ -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!
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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 ##########
|
########## Full reference file available at ##########
|
||||||
########## https://confdroid.com/2017/07/nagios-templates-cfg/ ##########
|
########## https://confdroid.com/2017/07/nagios-templates-cfg/ ##########
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ define <%= @ng_template_object %>{
|
|||||||
notifications_enabled <%= @ng_notifications_enabled %>
|
notifications_enabled <%= @ng_notifications_enabled %>
|
||||||
event_handler_enabled <%= @ng_event_handler_enabled %>
|
event_handler_enabled <%= @ng_event_handler_enabled %>
|
||||||
flap_detection_enabled <%= @ng_flap_detection_enabled %>
|
flap_detection_enabled <%= @ng_flap_detection_enabled %>
|
||||||
failure_prediction_enabled <%= @ng_failure_prediction_enabled %>
|
|
||||||
process_perf_data <%= @ng_process_perf_data %>
|
process_perf_data <%= @ng_process_perf_data %>
|
||||||
retain_status_information <%= @ng_retain_status_information %>
|
retain_status_information <%= @ng_retain_status_information %>
|
||||||
retain_nonstatus_information <%= @ng_retain_nonstatus_information %>
|
retain_nonstatus_information <%= @ng_retain_nonstatus_information %>
|
||||||
@@ -33,7 +32,7 @@ define <%= @ng_template_object %>{
|
|||||||
check_interval <%= @ng_check_interval %>
|
check_interval <%= @ng_check_interval %>
|
||||||
retry_interval <%= @ng_retry_interval %>
|
retry_interval <%= @ng_retry_interval %>
|
||||||
max_check_attempts <%= @ng_ng_max_check_attempts %>
|
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_period <%= @ng_notification_period %>
|
||||||
notification_interval <%= @ng_notification_interval %>
|
notification_interval <%= @ng_notification_interval %>
|
||||||
notification_options <%= @ng_notification_options %>
|
notification_options <%= @ng_notification_options %>
|
||||||
@@ -41,7 +40,7 @@ define <%= @ng_template_object %>{
|
|||||||
hostgroups linux-servers
|
hostgroups linux-servers
|
||||||
register <%= @ng_object_register %>
|
register <%= @ng_object_register %>
|
||||||
}
|
}
|
||||||
<% end %>
|
<% end -%>
|
||||||
<% if @ng_template_object_name == 'windows-server' -%>
|
<% if @ng_template_object_name == 'windows-server' -%>
|
||||||
define <%= @ng_template_object %>{
|
define <%= @ng_template_object %>{
|
||||||
name <%= @ng_template_object_name %>
|
name <%= @ng_template_object_name %>
|
||||||
@@ -50,7 +49,7 @@ define <%= @ng_template_object %>{
|
|||||||
check_interval <%= @ng_check_interval %>
|
check_interval <%= @ng_check_interval %>
|
||||||
retry_interval <%= @ng_retry_interval %>
|
retry_interval <%= @ng_retry_interval %>
|
||||||
max_check_attempts <%= @ng_max_check_attempts %>
|
max_check_attempts <%= @ng_max_check_attempts %>
|
||||||
check_command <%= @ng_check_command %>
|
check_command <%= @ng_host_check_command %>
|
||||||
notification_period <%= @ng_notification_period %>
|
notification_period <%= @ng_notification_period %>
|
||||||
notification_interval <%= @ng_notification_interval %>
|
notification_interval <%= @ng_notification_interval %>
|
||||||
notification_options <%= @ng_notification_options %>
|
notification_options <%= @ng_notification_options %>
|
||||||
@@ -58,7 +57,7 @@ define <%= @ng_template_object %>{
|
|||||||
hostgroups windows-servers
|
hostgroups windows-servers
|
||||||
register <%= @ng_object_register %>
|
register <%= @ng_object_register %>
|
||||||
}
|
}
|
||||||
<% end %>
|
<% end -%>
|
||||||
<% if @ng_template_object_name == 'generic_printer' -%>
|
<% if @ng_template_object_name == 'generic_printer' -%>
|
||||||
define <%= @ng_template_object %>{
|
define <%= @ng_template_object %>{
|
||||||
name <%= @ng_template_object_name %>
|
name <%= @ng_template_object_name %>
|
||||||
@@ -67,7 +66,7 @@ define <%= @ng_template_object %>{
|
|||||||
check_interval <%= @ng_check_interval %>
|
check_interval <%= @ng_check_interval %>
|
||||||
retry_interval <%= @ng_retry_interval %>
|
retry_interval <%= @ng_retry_interval %>
|
||||||
max_check_attempts <%= @ng_max_check_attempts %>
|
max_check_attempts <%= @ng_max_check_attempts %>
|
||||||
check_command <%= @ng_check_command %>
|
check_command <%= @ng_host_check_command %>
|
||||||
notification_period <%= @ng_notification_period %>
|
notification_period <%= @ng_notification_period %>
|
||||||
notification_interval <%= @ng_notification_interval %>
|
notification_interval <%= @ng_notification_interval %>
|
||||||
notification_options <%= @ng_notification_options %>
|
notification_options <%= @ng_notification_options %>
|
||||||
@@ -75,7 +74,7 @@ define <%= @ng_template_object %>{
|
|||||||
statusmap_image printer.png
|
statusmap_image printer.png
|
||||||
register <%= @ng_object_register %>
|
register <%= @ng_object_register %>
|
||||||
}
|
}
|
||||||
<% end %>
|
<% end -%>
|
||||||
<% if @ng_template_object_name == 'generic_switch' -%>
|
<% if @ng_template_object_name == 'generic_switch' -%>
|
||||||
define <%= @ng_template_object %>{
|
define <%= @ng_template_object %>{
|
||||||
name <%= @ng_template_object_name %>
|
name <%= @ng_template_object_name %>
|
||||||
@@ -84,7 +83,7 @@ define <%= @ng_template_object %>{
|
|||||||
check_interval <%= @ng_check_interval %>
|
check_interval <%= @ng_check_interval %>
|
||||||
retry_interval <%= @ng_retry_interval %>
|
retry_interval <%= @ng_retry_interval %>
|
||||||
max_check_attempts <%= @ng_max_check_attempts %>
|
max_check_attempts <%= @ng_max_check_attempts %>
|
||||||
check_command <%= @ng_check_command %>
|
check_command <%= @ng_host_check_command %>
|
||||||
notification_period <%= @ng_notification_period %>
|
notification_period <%= @ng_notification_period %>
|
||||||
notification_interval <%= @ng_notification_interval %>
|
notification_interval <%= @ng_notification_interval %>
|
||||||
notification_options <%= @ng_notification_options %>
|
notification_options <%= @ng_notification_options %>
|
||||||
@@ -92,7 +91,7 @@ define <%= @ng_template_object %>{
|
|||||||
statusmap_image switch.png
|
statusmap_image switch.png
|
||||||
register <%= @ng_object_register %>
|
register <%= @ng_object_register %>
|
||||||
}
|
}
|
||||||
<% end %>
|
<% end -%>
|
||||||
<% elsif @ng_template_object == 'service' -%>
|
<% elsif @ng_template_object == 'service' -%>
|
||||||
<% if @ng_template_object_name == 'generic-service' -%>
|
<% if @ng_template_object_name == 'generic-service' -%>
|
||||||
define <%= @ng_template_object %>{
|
define <%= @ng_template_object %>{
|
||||||
@@ -105,7 +104,6 @@ define <%= @ng_template_object %>{
|
|||||||
notifications_enabled <%= @ng_notifications_enabled %>
|
notifications_enabled <%= @ng_notifications_enabled %>
|
||||||
event_handler_enabled <%= @ng_event_handler_enabled %>
|
event_handler_enabled <%= @ng_event_handler_enabled %>
|
||||||
flap_detection_enabled <%= @ng_flap_detection_enabled %>
|
flap_detection_enabled <%= @ng_flap_detection_enabled %>
|
||||||
failure_prediction_enabled <%= @ng_failure_prediction_enabled %>
|
|
||||||
process_perf_data <%= @ng_process_perf_data %>
|
process_perf_data <%= @ng_process_perf_data %>
|
||||||
retain_status_information <%= @ng_retain_status_information %>
|
retain_status_information <%= @ng_retain_status_information %>
|
||||||
retain_nonstatus_information <%= @ng_retain_nonstatus_information %>
|
retain_nonstatus_information <%= @ng_retain_nonstatus_information %>
|
||||||
|
|||||||
Reference in New Issue
Block a user