added and linked template_rules
This commit is contained in:
@@ -19,8 +19,8 @@
|
||||
# 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 all commands known to NAGIOS through Puppet exports,
|
||||
# and populates /etc/nagios/conf.d/nagios_commands.cfg
|
||||
##############################################################################
|
||||
# and populates /etc/nagios/conf.d/nagios_commands.cfg.
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::commands (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
|
||||
45
manifests/nagios/objects/template_rules.pp
Normal file
45
manifests/nagios/objects/template_rules.pp
Normal file
@@ -0,0 +1,45 @@
|
||||
## cd_nagios::nagios::objects::template_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/templates.cfg through concat.
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::template_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
|
||||
# create the templates.cfg file
|
||||
|
||||
concat { $ng_target_templates:
|
||||
ensure => present,
|
||||
path => $ng_target_templates,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
aeltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
content => template[$ng_templates_head_erb]
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
}
|
||||
}
|
||||
29
manifests/nagios/objects/templates.pp
Normal file
29
manifests/nagios/objects/templates.pp
Normal file
@@ -0,0 +1,29 @@
|
||||
## cd_nagios::nagios::objects::templates.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 populates /etc/nagios/conf.d/templates.cfg.
|
||||
################################################################################
|
||||
defie cd_nagios::nagios::objects::templates (
|
||||
|
||||
) {
|
||||
|
||||
$ng_target_templates = $::cd_nagios::params::ng_target_templates
|
||||
|
||||
}
|
||||
@@ -959,8 +959,8 @@ $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_templates_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb'
|
||||
$ng_target_timeperiods = "${ng_conf_d_dir}/timeperiods.cfg"
|
||||
$ng_target_localhost = "${ng_conf_d_dir}/nagios_localhost.cfg"
|
||||
$ng_target_host = "${ng_conf_d_dir}/nagios_host.cfg"
|
||||
|
||||
@@ -29,6 +29,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
|
||||
|
||||
service { $ng_service:
|
||||
ensure => running,
|
||||
|
||||
197
templates/nagios/templates_cfg.erb
Executable file
197
templates/nagios/templates_cfg.erb
Executable file
@@ -0,0 +1,197 @@
|
||||
###############################################################################
|
||||
# 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!
|
||||
}
|
||||
|
||||
7
templates/nagios/templates_cfg_head.erb
Normal file
7
templates/nagios/templates_cfg_head.erb
Normal file
@@ -0,0 +1,7 @@
|
||||
###############################################################################
|
||||
### templates.cfg generated by Puppet | manual changes will be overwritten! ###
|
||||
###############################################################################
|
||||
########## Full reference file available at ##########
|
||||
########## https://confdroid.com/2017/07/nagios-templates-cfg/ ##########
|
||||
###############################################################################
|
||||
# rules are created below by external puppet rules.
|
||||
Reference in New Issue
Block a user