testing templates
This commit is contained in:
@@ -19,8 +19,9 @@
|
||||
# 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/templates.cfg through concat.
|
||||
# @example cd_nagios::objects::templates { $name:
|
||||
# ng_template_object => 'service',
|
||||
# @example cd_nagios::nagios::objects::templates { 'generic contact':
|
||||
# ng_template_object => 'contact',
|
||||
# ng_template_object_name => 'generic-contact',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::template_rules (
|
||||
@@ -45,10 +46,37 @@ class cd_nagios::nagios::objects::template_rules (
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# example rule
|
||||
cd_nagios::objects::templates { 'generic contact':
|
||||
# basic templates
|
||||
cd_nagios::nagios::objects::templates { 'generic contact':
|
||||
ng_template_object => 'contact',
|
||||
ng_template_object_name => 'generic-contact',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'generic-host':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'generic-host',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'linux-server':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'linux-server',
|
||||
ng_template_object_use => 'generic-host',
|
||||
ng_notification_options => 'd,u,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'windows-server':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'windows-server',
|
||||
ng_template_object_use => 'generic-host',
|
||||
ng_notification_options => 'd,u,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'generic-service':
|
||||
ng_template_object => 'service',
|
||||
ng_template_object_name => 'generic-service',
|
||||
ng_max_check_attempts => '3',
|
||||
ng_notification_options => 'w,u,c,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'local-service':
|
||||
ng_template_object => 'service',
|
||||
ng_template_object_name => 'generic-service',
|
||||
ng_max_check_attempts => '4',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# @summary Define manages populates /etc/nagios/conf.d/templates.cfg.
|
||||
# @param [string] ng_template_object the object type for the templates.
|
||||
# valid options are `contact`, `host` and `service`.
|
||||
# Valid options are `contact`, `host` and `service`.
|
||||
# @param [string] ng_template_object_name populates the name field,
|
||||
# i.e. `generic-contact`, `generic-host`, `generic-service`.
|
||||
# @param [string] ng_svc_notification_period Period in which to send out
|
||||
@@ -41,7 +41,7 @@
|
||||
# u = notify on UNREACHABLE host states,
|
||||
# r = notify on host recoveries (UP states),
|
||||
# f = notify when the host starts and stops flapping,
|
||||
# s = snotify when host or service scheduled downtime starts and ends.
|
||||
# s = notify when host or service scheduled downtime starts and ends.
|
||||
# n = none (the contact will not receive any type of host notifications).
|
||||
# @param [string] ng_service_notification_commands Command to use for
|
||||
# service event notification. Command must be defined in commands.cfg
|
||||
@@ -49,6 +49,54 @@
|
||||
# host event notification. Command must be defined in commands.cfg.
|
||||
# @param [string] ng_object_register Whether to register the object to Nagios.
|
||||
# Since this is a template definition, we do not want to register those.
|
||||
# @param [string] ng_template_object_use Which template to use for a given
|
||||
# host or service definition, i.e. `generic-host`, `generic-service` etc.
|
||||
# @param [string] ng_notifications_enabled Whether notifications are enabled.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_event_handler_enabled Whether event handlers are enabled.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_flap_detection_enabled Whether flap detection is enabled.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_failure_prediction_enabled Whether failure prediction is
|
||||
# enabled. Valid options are `0` and `1`.
|
||||
# @param [string] ng_process_perf_data Whether to process performance data.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_retain_status_information Whether to retain status
|
||||
# information. Valid options are `0` and `1`.
|
||||
# @param [string] ng_retain_nonstatus_information Whether to retain non-status
|
||||
# information. Valid options are `0` and `1`.
|
||||
# @param [string] ng_notification_period Which period in to send out
|
||||
# notifications. for the defined service or host.
|
||||
# @param [string] ng_notification_interval Whoe often (in minutes) we should
|
||||
# resend notifications for the current status.
|
||||
# @param [string] ng_check_period Which period in to run checks for the defined
|
||||
# object.
|
||||
# @param [string] ng_check_interval How often in minutes to check the defined
|
||||
# object.
|
||||
# @param [string] ng_retry_interval at what interval in minutes to schedule
|
||||
# retries for the defined object.
|
||||
# @param [string] ng_max_check_attempts how often to check the defined object
|
||||
# maximal.
|
||||
# @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.
|
||||
# Specified contact group must exit in contact_groups
|
||||
# @param [string] ng_active_checks_enabled Whether to enable active checks.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_passive_checks_enabled Whether to enable passive checks.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_parallelize_check Whether to parallelize checks
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_obsess_over_service Whether to obsess over the service.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_check_freshness Whether to check freshness.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_is_volatile Whether the service is volatile.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [string] ng_normal_check_interval How often to check the service
|
||||
# under normal conditions.
|
||||
# @param [string] ng_retry_check_interval Re-check the service every x minutes
|
||||
# until a hard state can be determined.
|
||||
################################################################################
|
||||
define cd_nagios::nagios::objects::templates (
|
||||
$ng_template_object = undef,
|
||||
@@ -60,6 +108,32 @@ $ng_host_notification_options = 'd,u,r,f,s',
|
||||
$ng_service_notification_commands = 'notify-service-by-email',
|
||||
$ng_host_notification_commands = 'notify-host-by-email',
|
||||
$ng_object_register = '0',
|
||||
$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',
|
||||
$ng_notification_period = '24x7',
|
||||
$ng_notification_interval = '30',
|
||||
$ng_check_period = '24x7',
|
||||
$ng_check_interval = '5',
|
||||
$ng_retry_interval = '1',
|
||||
$ng_max_check_attempts = '10',
|
||||
$ng_check_command = 'check-host-alive',
|
||||
$ng_notification_options = undef,
|
||||
$ng_contact_groups = 'admins',
|
||||
$ng_active_checks_enabled = '1',
|
||||
$ng_passive_checks_enabled = '1',
|
||||
$ng_parallelize_check = '1',
|
||||
$ng_obsess_over_service = '1',
|
||||
$ng_check_freshness = '0',
|
||||
$ng_is_volatile = '0',
|
||||
$ng_normal_check_interval = '10',
|
||||
$ng_retry_check_interval = '2',
|
||||
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $::cd_nagios::params::ng_nagios_server
|
||||
|
||||
@@ -1,18 +1,133 @@
|
||||
|
||||
<% if @ng_template_object == 'contact' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %> ;
|
||||
service_notification_period <%= @ng_svc_notification_period %> ;
|
||||
host_notification_period <%= @ng_host_notification_period %> ;
|
||||
service_notification_options <%= @ng_service_notification_options %> ;
|
||||
host_notification_options <%= @ng_host_notification_options %> ;
|
||||
service_notification_commands <%= @ng_service_notification_commands %> ;
|
||||
host_notification_commands <%= @ng_host_notification_commands %> ;
|
||||
register <%= @ng_object_register %> ;
|
||||
name <%= @ng_template_object_name %>
|
||||
service_notification_period <%= @ng_svc_notification_period %>
|
||||
host_notification_period <%= @ng_host_notification_period %>
|
||||
service_notification_options <%= @ng_service_notification_options %>
|
||||
host_notification_options <%= @ng_host_notification_options %>
|
||||
service_notification_commands <%= @ng_service_notification_commands %>
|
||||
host_notification_commands <%= @ng_host_notification_commands %>
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% elsif @ng_template_object == 'host' -%>
|
||||
|
||||
<% elsif @ng_template_object == 'service' -%>
|
||||
|
||||
|
||||
<% if @ng_template_object_name == 'generic-host' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
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 %>
|
||||
notification_period <%= @ng_notification_period %>
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end -%>
|
||||
<% if @ng_template_object_name == 'linux-server' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
use <%= @ng_template_object_use %>
|
||||
check_period <%= @ng_check_period %>
|
||||
check_interval <%= @ng_check_interval %>
|
||||
retry_interval <%= @ng_retry_interval %>
|
||||
max_check_attempts <%= @ng_ng_max_check_attempts %>
|
||||
check_command <%= @ng_check_command %>
|
||||
notification_period <%= @ng_notification_period %>
|
||||
notification_interval <%= @ng_notification_interval %>
|
||||
notification_options <%= @ng_notification_options %>
|
||||
contact_groups <%= @ng_contact_groups %>
|
||||
hostgroups linux-servers
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end %>
|
||||
<% if @ng_template_object_name == 'windows-server' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
use <%= @ng_template_object_use %>
|
||||
check_period <%= @ng_check_period %>
|
||||
check_interval <%= @ng_check_interval %>
|
||||
retry_interval <%= @ng_retry_interval %>
|
||||
max_check_attempts <%= @ng_max_check_attempts %>
|
||||
check_command <%= @ng_check_command %>
|
||||
notification_period <%= @ng_notification_period %>
|
||||
notification_interval <%= @ng_notification_interval %>
|
||||
notification_options <%= @ng_notification_options %>
|
||||
contact_groups <%= @ng_contact_groups %>
|
||||
hostgroups windows-servers
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end %>
|
||||
<% if @ng_template_object_name == 'generic_printer' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
use <%= @ng_template_object_use %>
|
||||
check_period <%= @ng_check_period %>
|
||||
check_interval <%= @ng_check_interval %>
|
||||
retry_interval <%= @ng_retry_interval %>
|
||||
max_check_attempts <%= @ng_max_check_attempts %>
|
||||
check_command <%= @ng_check_command %>
|
||||
notification_period <%= @ng_notification_period %>
|
||||
notification_interval <%= @ng_notification_interval %>
|
||||
notification_options <%= @ng_notification_options %>
|
||||
contact_groups <%= @ng_contact_groups %>
|
||||
statusmap_image printer.png
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end %>
|
||||
<% if @ng_template_object_name == 'generic_switch' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
use <%= @ng_template_object_use %>
|
||||
check_period <%= @ng_check_period %>
|
||||
check_interval <%= @ng_check_interval %>
|
||||
retry_interval <%= @ng_retry_interval %>
|
||||
max_check_attempts <%= @ng_max_check_attempts %>
|
||||
check_command <%= @ng_check_command %>
|
||||
notification_period <%= @ng_notification_period %>
|
||||
notification_interval <%= @ng_notification_interval %>
|
||||
notification_options <%= @ng_notification_options %>
|
||||
contact_groups <%= @ng_contact_groups %>
|
||||
statusmap_image switch.png
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end %>
|
||||
<% elsif @ng_template_object == 'service' -%>
|
||||
<% if @ng_template_object_name == 'generic-service' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
active_checks_enabled <%= @ng_active_checks_enabled %>
|
||||
passive_checks_enabled <%= @ng_passive_checks_enabled %>
|
||||
parallelize_check <%= @ng_parallelize_check %>
|
||||
obsess_over_service <%= @ng_obsess_over_service %>
|
||||
check_freshness <%= @ng_check_freshness %>
|
||||
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 %>
|
||||
is_volatile <%= @ng_is_volatile %>
|
||||
check_period <%= @ng_check_period %>
|
||||
max_check_attempts <%= @ng_max_check_attempts %>
|
||||
normal_check_interval <%= @ng_normal_check_interval %>
|
||||
retry_check_interval <%= @ng_retry_check_interval %>
|
||||
contact_groups <%= @ng_contact_groups %>
|
||||
notification_interval <%= @ng_notification_interval %>
|
||||
notification_period <%= @ng_notification_period %>
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end -%>
|
||||
<% if @ng_template_object_name == 'local-service' -%>
|
||||
define <%= @ng_template_object %>{
|
||||
name <%= @ng_template_object_name %>
|
||||
use <%= @ng_template_object_use %>
|
||||
max_check_attempts <%= @ng_max_check_attempts %>
|
||||
normal_check_interval <%= @ng_normal_check_interval %>
|
||||
retry_check_interval <%= @ng_retry_check_interval %>
|
||||
register <%= @ng_object_register %>
|
||||
}
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
Reference in New Issue
Block a user