diff --git a/CHANGELOG.md b/CHANGELOG.md
index d43c4ab..9d4a42d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,16 @@ Changelog of Git Changelog.
No issue
+5ff13eb48507109 Jenkins Server 2017-07-24 11:07:40
+
+
recommit for updates in build 65
+
+
+62c755dcd38020c Arne Teuke 2017-07-24 11:07:29
+
+
fixed forwarding
+
+
0812a3559d254ee Jenkins Server 2017-07-23 13:13:13
recommit for updates in build 64
diff --git a/README.md b/README.md
index 9811da6..12c5a67 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,7 @@ Configuration
* configure all aspects of Nagios on server
* manage directories (filesystem permissions, selinux )
* manage cgi.cfg through parameters
+* manage nagios.cfg through parameters
* manage nagios users through external Puppet rules via define
* configure NRPE on clients (optional)
* configure firewall (optional)
@@ -94,10 +95,10 @@ The following parameters must be set to make the module logic work properly:
#### Optional Parameters
* `$ng_include_nrpe` : Whether to include NRPE as means for the Nagios server to connect to clients. Defaults to `true`.
-* `$ng_include_fw` : Whether to include firewall management. Requires [puppetlabs firewall](https://github.com/puppetlabs/puppetlabs-firewall) or [cd_firewall](https://gitlab.puppetsoft.com/12WW1160/cd_firewall), which is a clone of the puppetlabs firewall but tested to be fully functioning with all our features.
+* `$ng_include_fw` : Whether to include firewall management. Requires [puppetlabs firewall](https://github.com/puppetlabs/puppetlabs-firewall) or [cd_firewall](https://gitlab.puppetsoft.com/12WW1160/cd_firewall), which is a backdated clone of the puppetlabs firewall but tested to be fully functioning with all our features.
-See the [full list of all available parameters](https://confdroid.com/2017/07/cd_nagios-parameters/)
+See the [full list of all available parameters](https://confdroid.com/2017/07/cd_nagios-parameters/).
### PuppetDB
A working instance of PuppetDBconnected to the Puppet master is required for this to work. Installation and configuration of PuppetDB is out of scope for this module, however [cd_puppetdb](https://gitlab.puppetsoft.com/12WW1160/cd_puppetdb) is available to automate this task for you as well within a few minutes.
diff --git a/REPOSTRUCTURE.md b/REPOSTRUCTURE.md
index d728652..acf8c42 100644
--- a/REPOSTRUCTURE.md
+++ b/REPOSTRUCTURE.md
@@ -61,11 +61,11 @@
| |-- httpd
| | |-- forward_conf.erb
| | |-- index_html.erb
-| | |-- nagios_conf.erb
| | `-- nagios_ssl_vhost.erb
| |-- nagios
| | |-- cgi_cfg.erb
-| | `-- htpasswd_rule.erb
+| | |-- htpasswd_rule.erb
+| | `-- nagios_cfg.erb
| `-- selinux
| |-- statuscgi.erb
| `-- taccgi.erb
diff --git a/doc/_index.html b/doc/_index.html
index eda3270..0aaddc3 100644
--- a/doc/_index.html
+++ b/doc/_index.html
@@ -186,7 +186,7 @@
diff --git a/doc/file.README.html b/doc/file.README.html
index e91987a..3f0c3c2 100644
--- a/doc/file.README.html
+++ b/doc/file.README.html
@@ -140,16 +140,18 @@ install client binaries on clients
directories (filesystem permissions, selinux )
* manage cgi.cfg through
parameters
-* manage nagios users through external Puppet rules via define
-*
-configure NRPE on clients (optional)
+* manage nagios.cfg through parameters
+* manage nagios users
+through external Puppet rules via define
+* configure NRPE on clients
+(optional)
* configure firewall (optional)
-*
-configure selinux policies (optional)
-* configure forwarding http to https
-including accesing the /nagios url directly (optional)
-* manage TLS
-certificates through certbot (optional)
+* configure selinux policies
+(optional)
+* configure forwarding http to https including accesing the
+/nagios url directly (optional)
+* manage TLS certificates through certbot
+(optional)
Service
* manage Nagios service on server
@@ -231,12 +233,12 @@ Requires puppetlabs
firewall or cd_firewall,
-which is a clone of the puppetlabs firewall but tested to be fully
-functioning with all our features.
+which is a backdated clone of the puppetlabs firewall but tested to be
+fully functioning with all our features.
See the full
-list of all available parameters
+list of all available parameters.
PuppetDB
@@ -331,7 +333,7 @@ environments.
diff --git a/doc/index.html b/doc/index.html
index 97e0e94..c49dab0 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -140,16 +140,18 @@ install client binaries on clients
directories (filesystem permissions, selinux )
* manage cgi.cfg through
parameters
-* manage nagios users through external Puppet rules via define
-*
-configure NRPE on clients (optional)
+* manage nagios.cfg through parameters
+* manage nagios users
+through external Puppet rules via define
+* configure NRPE on clients
+(optional)
* configure firewall (optional)
-*
-configure selinux policies (optional)
-* configure forwarding http to https
-including accesing the /nagios url directly (optional)
-* manage TLS
-certificates through certbot (optional)
+* configure selinux policies
+(optional)
+* configure forwarding http to https including accesing the
+/nagios url directly (optional)
+* manage TLS certificates through certbot
+(optional)
Service
* manage Nagios service on server
@@ -231,12 +233,12 @@ Requires puppetlabs
firewall or cd_firewall,
-which is a clone of the puppetlabs firewall but tested to be fully
-functioning with all our features.
+which is a backdated clone of the puppetlabs firewall but tested to be
+fully functioning with all our features.
See the full
-list of all available parameters
+list of all available parameters.
PuppetDB
@@ -331,7 +333,7 @@ environments.
diff --git a/doc/puppet_classes/cd_nagios.html b/doc/puppet_classes/cd_nagios.html
index 22bd6ce..e061ed5 100644
--- a/doc/puppet_classes/cd_nagios.html
+++ b/doc/puppet_classes/cd_nagios.html
@@ -139,7 +139,7 @@ class cd_nagios {
diff --git a/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html b/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html
index 4cc1350..3a43c1a 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html
@@ -230,7 +230,7 @@ class cd_nagios::certbot::certs (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html b/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html
index 4b8e5ae..56d9a3f 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html
@@ -368,7 +368,7 @@ class cd_nagios::client::target (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html
index 944a69e..0c015ed 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html
@@ -207,7 +207,7 @@ class cd_nagios::firewall::iptables (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html
index 2b6b52a..bedea58 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html
@@ -195,7 +195,7 @@ class cd_nagios::main::config (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html
index 0147c1d..79726d6 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html
@@ -468,7 +468,7 @@ class cd_nagios::main::dirs (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html
index 6fa9ff4..f4b7951 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html
@@ -235,7 +235,7 @@ class cd_nagios::main::install (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html
index 77f90d9..7d2a64d 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html
@@ -200,7 +200,7 @@ class cd_nagios::main::user (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Aparams.html b/doc/puppet_classes/cd_nagios_3A_3Aparams.html
index 27d2451..7bc6170 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Aparams.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Aparams.html
@@ -1962,6 +1962,1103 @@ required for certbot and used in the web templates.
+
+
+ ng_log_file
+
+
+ (string)
+
+
+ (defaults to: '/var/log/nagios/nagios.log')
+
+
+ —
+
+
main log file where service- and host events
+are logged.
+
+
+
+
+
+
+ ng_max_check_attempts
+
+
+ (string)
+
+
+ (defaults to: '10')
+
+
+ —
+
+
maximum amount of checks done by nagios
+
+
+
+
+
+
+ ng_object_cache_file
+
+
+ (string)
+
+
+ (defaults to: '/var/spool/nagios/objects.cache')
+
+
+ —
+
+
determines where object definitions are
+cached when # Nagios
+starts/restarts.
+
+
+
+
+
+
+ ng_precached_obj_file
+
+
+ (string)
+
+
+ (defaults to: '/var/spool/nagios/objects.precache')
+
+
+ —
+
+
determines the location of the
+precached object file.
+
+
+
+
+
+
+ optional
+
+
+ (string)
+
+
+
+ —
+
+
resource file that contains $USERx$ macro definitions.
+
+
+
+
+
+
+ ng_status_file.
+
+
+ (string)
+
+
+
+ —
+
+
where the current status of all monitored
+services and hosts is stored.
+
+
+
+
+
+
+ ng_status_upd_interval
+
+
+ (string)
+
+
+ (defaults to: '10')
+
+
+ —
+
+
status file update interval.
+determines the frequency (in seconds) that #
+Nagios will periodically dump
+program, host, and # service status data.
+
+
+
+
+
+
+ ng_check_ext_commands
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
allows you to specify whether or not
+Nagios should check # for external
+commands in the command file specified
+by ng_command_file.
+
+
+
+
+
+
+ ng_command_file
+
+
+ (string)
+
+
+ (defaults to: '/var/spool/nagios/cmd/nagios.cmd')
+
+
+ —
+
+
file that Nagios checks for external command
+requests. It is also where the
+command CGI will write commands that are
+submitted # by users, so it must
+be writeable by the user that the web server
+is running as.
+
+
+
+
+
+
+ ng_enable_query_handler
+
+
+ (boolean)
+
+
+ (defaults to: false)
+
+
+ —
+
+
Whether to enable the query handler
+for running nagios in cluster mode.
+
+
+
+
+
+
+ ng_query_socket
+
+
+ (string)
+
+
+ (defaults to: '/var/spool/nagios/cmd/nagios.qh')
+
+
+ —
+
+
the socket for the query handler
+
+
+
+
+
+
+ ng_lock_file
+
+
+ (string)
+
+
+ (defaults to: '/var/run/nagios/nagios.pid')
+
+
+ —
+
+
lockfile that Nagios will use to store its PID
+number in when it is running
+in daemon mode.
+
+
+
+
+
+
+ ng_temp_file
+
+
+ (string)
+
+
+ (defaults to: '/var/spool/nagios/nagios.tmp')
+
+
+ —
+
+
temporary file that is used as scratch space
+when Nagios # updates the
+status log, cleans the comment file, etc.
+
+
+
+
+
+
+ ng_temp_path
+
+
+ (string)
+
+
+ (defaults to: '/tmp')
+
+
+ —
+
+
path where Nagios can create temp files for
+service and # host check
+results, etc.
+
+
+
+
+
+
+ event_broker_options
+
+
+ (string)
+
+
+
+ —
+
+
Controls what (if any) data gets sent
+to the event broker.
+
+
+
+
+
+
+ ng_event_broker_module
+
+
+ (string)
+
+
+ (defaults to: '')
+
+
+ —
+
+
specify an event broker
+(including full path) module that should # by
+loaded by Nagios at startup.
+Specify multiple modules as array
+['path/to/module1','/path/to/module2']
+
+
+
+
+
+
+ ng_log_rotation_method.
+
+
+ (string)
+
+
+
+ —
+
+
Valid options:
+n = None - don't rotate the log
+h = Hourly rotation (top
+of the hour)
+d = Daily rotation (midnight every day)
+w = Weekly rotation
+(midnight on Saturday evening)
+m = Monthly rotation (midnight last day of
+month)
+
+
+
+
+
+
+ ng_log_archive_path
+
+
+ (string)
+
+
+ (defaults to: '/var/log/nagios/archives')
+
+
+ —
+
+
directory where archived (rotated)
+log files should be # placed (assuming
+you've chosen to do log rotation).
+
+
+
+
+
+
+ ng_use_syslog
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
whether to log messages to the syslog
+facility, as well as the Nagios log
+file. Valid options are 0 and 1.
+
+
+
+
+
+
+ ng_log_notifications
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether to log notifications in addition
+to regular messages. Valid options
+are 0 and 1.
+
+
+
+
+
+
+ ng_log_service_retries
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether to log service retries.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_log_host_retries
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether to log host retries.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_log_event_handlers.
+
+
+ (string)
+
+
+
+ —
+
+
Whether to log host and service event
+handlers. Valid options are
+0 and 1.
+
+
+
+
+
+
+ ng_log_initial_states
+
+
+ (string)
+
+
+ (defaults to: '0')
+
+
+ —
+
+
Whether to log initial states.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_log_current_states
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether to log all current host and
+service states to the main log file
+after log has been rotated.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_log_external_commands
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether to log external commands.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_log_passive_checks
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether to log passive checks.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_glob_host_evt_handler
+
+
+ (string)
+
+
+ (defaults to: '')
+
+
+ —
+
+
Specify a global host event
+handler # command that is to be run for every
+host or service state change.
+The global event handler is executed
+immediately prior to the event
+handler that you have optionally specified
+in each host or # service
+definition. The command argument is the short
+name of a # command definition
+that you define in your host configuration
+file.
+
+
+
+
+
+
+ ng_glob_svc_evt_handler
+
+
+ (string)
+
+
+ (defaults to: '')
+
+
+ —
+
+
Specify a global service event
+handler # command that is to be run for
+every host or service state change.
+The global event handler is executed
+immediately prior to the event
+handler that you have optionally specified
+in each host or # service
+definition. The command argument is the short
+name of a # command definition
+that you define in your host configuration
+file.
+
+
+
+
+
+
+ ng_svc_int_check_delay
+
+
+ (string)
+
+
+ (defaults to: 's')
+
+
+ —
+
+
method that Nagios should use when
+initially "spreading out"
+service checks when it starts monitoring.
+Valid options:
+n = None -
+don't use any delay between checks
+d = Use a "dumb" delay of
+1 second between checks
+s = Use "smart" inter-check delay
+calculation
+x.xx = Use an inter-check delay of x.xx seconds
+
+
+
+
+
+
+ ng_max_service_check_spread
+
+
+ (string)
+
+
+
+ —
+
+
timeframe (in minutes) from the
+program start time that an initial check of
+all services should be completed
+
+
+
+
+
+
+ ng_svc_interleave_factor
+
+
+ (string)
+
+
+ (defaults to: 's')
+
+
+ —
+
+
determines how service checks are
+interleaved. Valid options: s = Use
+"smart" interleave factor calculation
+x = Use an interleave
+factor of x, where x is greater than or equal to 1.
+
+
+
+
+
+
+ ng_host_int_check_delay
+
+
+ (string)
+
+
+ (defaults to: 's')
+
+
+ —
+
+
method that Nagios should use when
+initially "spreading out" host
+checks when it starts monitoring.
+Valid options:
+n = None - don't use
+any delay between checks
+d = Use a "dumb" delay of 1 second
+between checks
+s = Use "smart" inter-check delay calculation
+x.xx
+= Use an inter-check delay of x.xx seconds
+
+
+
+
+
+
+ ng_max_host_check_spread
+
+
+ (string)
+
+
+ (defaults to: '30')
+
+
+ —
+
+
timeframe (in minutes) from the
+program start time that an initial check of
+all hosts should # be completed.
+
+
+
+
+
+
+ ng_max_concurrent_checks
+
+
+ (string)
+
+
+ (defaults to: '0')
+
+
+ —
+
+
specify the maximum number of
+service checks that can be run in parallel at
+any given time. A value of 0
+will not restrict the number of concurrent
+checks that are being executed.
+
+
+
+
+
+
+ ng_check_res_reaper_freq
+
+
+ (string)
+
+
+ (defaults to: '10')
+
+
+ —
+
+
frequency (in seconds!) in which
+Nagios will process the results of host
+and service checks.
+
+
+
+
+
+
+ ng_check_result_path
+
+
+ (string)
+
+
+ (defaults to: '/var/spool/nagios/checkresults')
+
+
+ —
+
+
directory where Nagios stores the
+results of host and service checks that
+have not yet been processed.
+
+
+
+
+
+
+ ng_max_check_res_file_age
+
+
+ (string)
+
+
+ (defaults to: '3600')
+
+
+ —
+
+
maximum age (in seconds) which
+check result files are considered to be
+valid.
+
+
+
+
+
+
+ ng_cached_h_check_horizon
+
+
+ (string)
+
+
+ (defaults to: '15')
+
+
+ —
+
+
maximum amount of time (in seconds)
+that the state of a previous host check
+is considered current.
+Cached host states (from host checks that were
+performed more recently
+that the timeframe specified by this value) can
+immensely improve
+performance in regards to the host check logic. Too high
+of a value for
+this option may result in inaccurate host states being used
+by Nagios,
+while a lower value may result in a performance hit for host
+checks.
+Use a value of 0 to disable host check caching.
+
+
+
+
+
+
+ ng_cached_s_check_horizon
+
+
+ (string)
+
+
+ (defaults to: '15')
+
+
+ —
+
+
maximum amount of time (in seconds)
+that the state of a previous service
+check is considered current.
+Cached service states (from service checks
+that were performed more recently
+that the timeframe specified by this
+value) can immensely improve
+performance in regards to the service check
+logic. Too high of a value for
+this option may result in inaccurate service
+states being used by Nagios,
+while a lower value may result in a
+performance hit for service checks.
+Use a value of 0 to disable service
+check caching.
+
+
+
+
+
+
+ ng_pred_host_dep_checks
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether Nagios will attempt to execute
+checks of hosts when it predicts
+that future dependency logic test may be
+needed. Valid options are
+0 and 1.
+
+
+
+
+
+
+ ng_pred_svc_dep_checks
+
+
+ (string)
+
+
+ (defaults to: '1')
+
+
+ —
+
+
Whether Nagios will attempt to execute
+checks of services when it predicts
+that future dependency logic test may be
+needed. Valid options are
+0 and 1.
+
+
+
+
+
+
+ ng_soft_state_dependencies
+
+
+ (string)
+
+
+ (defaults to: '0')
+
+
+ —
+
+
Whether or not Nagios will use
+soft state information when checking host
+and service dependencies.
+Valid options are 0 and
+1.
+
+
+
+
+
+
+ ng_time_change_threshold
+
+
+ (string)
+
+
+ (defaults to: '900')
+
+
+ —
+
+
when Nagios will react to detected
+changes in system time (either forward
+or backwards).
+
+
+
+
+
+
+ ng_auto_reschedule_checks
+
+
+ (string)
+
+
+ (defaults to: '0')
+
+
+ —
+
+
Whether Nagios will attempt to
+automatically reschedule active host and
+service checks to
+"smooth" them out over time. Experimental
+feature.
+Valid options are 0 and 1.
+
+
+
+
+
+
+ ng_auto_reschedule_intval
+
+
+ (string)
+
+
+ (defaults to: '30')
+
+
+ —
+
+
how often (in seconds) Nagios will
+attempt to automatically reschedule
+checks. only has an effect if
+ng_auto_reschedule_checks is set
+to 1.
+
+
+
+
+
+
+ ng_auto_reschedule_window
+
+
+ (string)
+
+
+ (defaults to: '180')
+
+
+ —
+
+
determines the “window” of time
+(in seconds) that # Nagios will look at
+when automatically rescheduling
+checks. Only host and service checks that
+occur in the next X seconds
+(determined by this variable) will be
+rescheduled.
+
+
+
+
+
+
+ ng_resource_file
+
+
+ (Any)
+
+
+ (defaults to: '/etc/nagios/private/resource.cfg')
+
+
+
+
+
+
+ ng_status_file
+
+
+ (Any)
+
+
+ (defaults to: '/var/log/nagios/status.dat')
+
+
+
+
+
+
+ ng_event_broker_options
+
+
+ (Any)
+
+
+ (defaults to: '-1')
+
+
+
+
+
+
+ ng_log_rotation_method
+
+
+ (Any)
+
+
+ (defaults to: 'h')
+
+
+
+
+
+
+ ng_log_event_handlers
+
+
+ (Any)
+
+
+ (defaults to: '1')
+
+
+
+
+
+
+ ng_max_svc_check_spread
+
+
+ (Any)
+
+
+ (defaults to: '30')
+
+
+
+
+
+
+ ng_max_check_res_reap_time
+
+
+ (Any)
+
+
+ (defaults to: '30')
+
+
+
+
@@ -1979,147 +3076,6 @@ required for certbot and used in the web templates.
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
357
358
359
@@ -2161,127 +3117,386 @@ required for certbot and used in the web templates.
395
396
397
-398
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
- # File 'manifests/params.pp', line 216
+ # File 'manifests/params.pp', line 357
class cd_nagios::params (
-$pkg_ensure = 'latest',
+$pkg_ensure = 'latest',
-$ng_nagios_server = "nagios.${::domain}",
-$ng_nagios_ext_ip = undef,
-$ng_mail_user = "admin@${::domain}",
+$ng_nagios_server = "nagios.${::domain}",
+$ng_nagios_ext_ip = undef,
+$ng_mail_user = "admin@${::domain}",
-$ng_include_nrpe = true,
+$ng_include_nrpe = true,
# firewall
-$ng_include_fw = true,
-$ng_use_https = true,
-$ng_http_https_fw = true,
-$ng_fw_order = '50',
-$ng_http_port = '80',
-$ng_https_port = '443',
+$ng_include_fw = true,
+$ng_use_https = true,
+$ng_http_https_fw = true,
+$ng_fw_order = '50',
+$ng_http_port = '80',
+$ng_https_port = '443',
# check command parameters
## ping
-$ng_ping_warn = '100.0,20%',
-$ng_ping_crit = '500.0,60%',
-$ng_ping_ensure = 'present',
+$ng_ping_warn = '100.0,20%',
+$ng_ping_crit = '500.0,60%',
+$ng_ping_ensure = 'present',
## disk
-$ng_disk_warn = '20%',
-$ng_disk_crit = '10%' ,
-$ng_disk_ensure = 'present',
+$ng_disk_warn = '20%',
+$ng_disk_crit = '10%' ,
+$ng_disk_ensure = 'present',
# swap
-$ng_swap_warn = '20',
-$ng_swap_crit = '10',
-$ng_swap_ensure = 'present',
+$ng_swap_warn = '20',
+$ng_swap_crit = '10',
+$ng_swap_ensure = 'present',
# users
-$ng_users_warn = '20',
-$ng_users_crit = '50',
-$ng_users_ensure = 'present',
+$ng_users_warn = '20',
+$ng_users_crit = '50',
+$ng_users_ensure = 'present',
#total procs
-$ng_procs_tot_warn = '330',
-$ng_procs_tot_crit = '400',
-$ng_procs_tot_param = 'RDST',
-$ng_procs_tot_ens = 'present',
+$ng_procs_tot_warn = '330',
+$ng_procs_tot_crit = '400',
+$ng_procs_tot_param = 'RDST',
+$ng_procs_tot_ens = 'present',
# zombie procs
-$ng_procs_z_warn = '10',
-$ng_procs_z_crit = '30',
-$ng_procs_z_param = 'Z',
-$ng_procs_z_ensure = 'present',
+$ng_procs_z_warn = '10',
+$ng_procs_z_crit = '30',
+$ng_procs_z_param = 'Z',
+$ng_procs_z_ensure = 'present',
# load
-$ng_load_warn = '5.00,4.00,3.00',
-$ng_load_crit = '10.00,6.00,4.00',
-$ng_load_ensure = 'present',
+$ng_load_warn = '5.00,4.00,3.00',
+$ng_load_crit = '10.00,6.00,4.00',
+$ng_load_ensure = 'present',
# user settings
-$ng_user = 'nagios',
-$ng_u_comment = 'Nagios service user',
-$ng_u_uid = '1004',
-$ng_user_home = '/var/spool/nagios',
-$ng_u_groups = undef,
-$ng_user_shell = '/bin/bash',
+$ng_user = 'nagios',
+$ng_u_comment = 'Nagios service user',
+$ng_u_uid = '1004',
+$ng_user_home = '/var/spool/nagios',
+$ng_u_groups = undef,
+$ng_user_shell = '/bin/bash',
# cgi settings
-$ng_context_help = '1',
-$ng_pending_state = '1',
-$ng_use_auth = '1',
-$ng_use_ssl_auth = '0',
-$ng_enable_def_user = false,
-$ng_def_user_name = 'nagios_insecure',
-$ng_nagios_admin = 'nagios_sec_adm',
-$ng_sysinfo_auth = '',
-$ng_confinfo_auth = '',
-$ng_command_auth = '',
-$ng_hostview_auth = '',
-$ng_serviceview_auth = '',
-$ng_host_cmd_auth = '',
-$ng_svc_cmd_auth = '',
-$ng_readonly_auth = '' ,
-$ng_statusmap_img = 'smbackground.gd2',
-$ng_use_colormap = false,
-$ng_colormap_red = '255',
-$ng_colormap_green = '255',
-$ng_colormap_blue = '255',
-$ng_statusmap_layout = '6',
-$ng_wrl_layout = '4',
-$ng_incl_own_wrl = false,
-$ng_statuswrl_include = '',
-$ng_ping_syntax = '/bin/ping -n -U -c 5 $HOSTADDRESS$',
-$ng_refresh_rate = '90',
-$ng_result_limit = '100',
-$ng_escape_html = '1',
-$ng_use_sound = false,
-$ng_host_unreachable = 'hostdown.wav',
-$ng_host_down = 'hostdown.wav',
-$ng_svc_critical = 'critical.wav',
-$ng_svc_warn = 'warning.wav',
-$ng_svc_unknown = 'warning.wav',
-$ng_normal_sound = 'noproblem.wav',
-$ng_action_url_target = '_blank',
-$ng_notes_url_target = '_blank',
-$ng_lock_author_names = '1',
-$ng_enable_splunk = false,
-$ng_splunk_url = 'http://127.0.0.1:8000/',
-$ng_navbar_addresses = '1',
-$ng_navbar_aliases = '1',
-$ng_ack_no_sticky = '0',
-$ng_ack_no_send = '0',
+$ng_context_help = '1',
+$ng_pending_state = '1',
+$ng_use_auth = '1',
+$ng_use_ssl_auth = '0',
+$ng_enable_def_user = false,
+$ng_def_user_name = 'nagios_insecure',
+$ng_nagios_admin = 'nagios_sec_adm',
+$ng_sysinfo_auth = '',
+$ng_confinfo_auth = '',
+$ng_command_auth = '',
+$ng_hostview_auth = '',
+$ng_serviceview_auth = '',
+$ng_host_cmd_auth = '',
+$ng_svc_cmd_auth = '',
+$ng_readonly_auth = '' ,
+$ng_statusmap_img = 'smbackground.gd2',
+$ng_use_colormap = false,
+$ng_colormap_red = '255',
+$ng_colormap_green = '255',
+$ng_colormap_blue = '255',
+$ng_statusmap_layout = '6',
+$ng_wrl_layout = '4',
+$ng_incl_own_wrl = false,
+$ng_statuswrl_include = '',
+$ng_ping_syntax = '/bin/ping -n -U -c 5 $HOSTADDRESS$',
+$ng_refresh_rate = '90',
+$ng_result_limit = '100',
+$ng_escape_html = '1',
+$ng_use_sound = false,
+$ng_host_unreachable = 'hostdown.wav',
+$ng_host_down = 'hostdown.wav',
+$ng_svc_critical = 'critical.wav',
+$ng_svc_warn = 'warning.wav',
+$ng_svc_unknown = 'warning.wav',
+$ng_normal_sound = 'noproblem.wav',
+$ng_action_url_target = '_blank',
+$ng_notes_url_target = '_blank',
+$ng_lock_author_names = '1',
+$ng_enable_splunk = false,
+$ng_splunk_url = 'http://127.0.0.1:8000/',
+$ng_navbar_addresses = '1',
+$ng_navbar_aliases = '1',
+$ng_ack_no_sticky = '0',
+$ng_ack_no_send = '0',
# selinux
-$ng_use_selinux_tools = true,
+$ng_use_selinux_tools = true,
# httpd
-$ng_required_hosts = '',
-$ng_required_ips = '127.0.0.0/8',
-$ng_enable_index = true,
+$ng_required_hosts = '',
+$ng_required_ips = '127.0.0.0/8',
+$ng_enable_index = true,
# certbot
-$ng_enable_certbot = true,
-$ng_certbot_webroot = '/var/www/html',
-$ng_webserver_name = "nagios.${::domain}",
+$ng_enable_certbot = true,
+$ng_certbot_webroot = '/var/www/html',
+$ng_webserver_name = "nagios.${::domain}",
+
+# main settings
+$ng_log_file = '/var/log/nagios/nagios.log',
+$ng_max_check_attempts = '10',
+$ng_object_cache_file = '/var/spool/nagios/objects.cache',
+$ng_precached_obj_file = '/var/spool/nagios/objects.precache',
+$ng_resource_file = '/etc/nagios/private/resource.cfg',
+$ng_status_file = '/var/log/nagios/status.dat',
+$ng_status_upd_interval = '10',
+$ng_check_ext_commands = '1',
+$ng_command_file = '/var/spool/nagios/cmd/nagios.cmd',
+$ng_enable_query_handler = false,
+$ng_query_socket = '/var/spool/nagios/cmd/nagios.qh',
+$ng_lock_file = '/var/run/nagios/nagios.pid',
+$ng_temp_file = '/var/spool/nagios/nagios.tmp',
+$ng_temp_path = '/tmp',
+$ng_event_broker_options = '-1',
+$ng_event_broker_module = '',
+$ng_log_rotation_method = 'h',
+$ng_log_archive_path = '/var/log/nagios/archives',
+$ng_use_syslog = '1',
+$ng_log_notifications = '1',
+$ng_log_service_retries = '1',
+$ng_log_host_retries = '1',
+$ng_log_event_handlers = '1',
+$ng_log_initial_states = '0',
+$ng_log_current_states = '1',
+$ng_log_external_commands = '1',
+$ng_log_passive_checks = '1',
+$ng_glob_host_evt_handler = '',
+$ng_glob_svc_evt_handler = '',
+$ng_svc_int_check_delay = 's',
+$ng_max_svc_check_spread = '30',
+$ng_svc_interleave_factor = 's',
+$ng_host_int_check_delay = 's',
+$ng_max_host_check_spread = '30',
+$ng_max_concurrent_checks = '0',
+$ng_check_res_reaper_freq = '10',
+$ng_max_check_res_reap_time = '30',
+$ng_check_result_path = '/var/spool/nagios/checkresults',
+$ng_max_check_res_file_age = '3600',
+$ng_cached_h_check_horizon = '15',
+$ng_cached_s_check_horizon = '15',
+$ng_pred_host_dep_checks = '1',
+$ng_pred_svc_dep_checks = '1',
+$ng_soft_state_dependencies = '0',
+$ng_time_change_threshold = '900',
+$ng_auto_reschedule_checks = '0',
+$ng_auto_reschedule_intval = '30',
+$ng_auto_reschedule_window = '180',
) {
@@ -2298,50 +3513,68 @@ $ng_webserver_name = "nagios.${::domain}",
}
# service
-$ng_service = 'nagios'
-$ae_service = 'httpd'
+$ng_service = 'nagios'
+$ae_service = 'httpd'
# directories
-$ng_main_dir = '/etc/nagios'
-$ng_conf_d_dir = "${ng_main_dir}/conf.d"
-$ng_objects_dir = "${ng_main_dir}/objects"
-$ng_private_dir = "${ng_main_dir}/private"
-$ng_usr_incl = '/usr/include/nagios'
-$ng_lib_dir = '/usr/lib64/nagios'
-$ng_log_dir = '/var/log/nagios'
-$ng_log_archives = "${ng_log_dir}/archives"
-$ng_spool_dir = '/var/spool/nagios'
-$ng_usr_share = '/usr/share/nagios'
-$ng_share_html = "${ng_usr_share}/html"
+$ng_main_dir = '/etc/nagios'
+$ng_conf_d_dir = "${ng_main_dir}/conf.d"
+$ng_objects_dir = "${ng_main_dir}/objects"
+$ng_private_dir = "${ng_main_dir}/private"
+$ng_usr_incl = '/usr/include/nagios'
+$ng_lib_dir = '/usr/lib64/nagios'
+$ng_log_dir = '/var/log/nagios'
+$ng_log_archives = "${ng_log_dir}/archives"
+$ng_spool_dir = '/var/spool/nagios'
+$ng_usr_share = '/usr/share/nagios'
+$ng_share_html = "${ng_usr_share}/html"
# files
-$ng_main_config = "${ng_main_dir}/nagios.cfg"
-$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
-$ng_cgi_cfg_erb = 'cd_nagios/nagios/cgi_cfg.erb'
-$ng_htpasswd_file = "${ng_main_dir}/passwd"
-$ng_htpasswd_head = 'cd_nagios/nagios/htpasswd_head.erb'
-$ng_htpasswd_rule = 'cd_nagios/nagios/htpasswd_rule.erb'
-$ng_taccgi_erb = 'cd_nagios/selinux/taccgi.erb'
-$ng_statcgi_erb = 'cd_nagios/selinux/statuscgi.erb'
-$ng_nagios_conf = '/etc/httpd/conf.d/nagios.conf'
-$ng_nagios_conf_erb = 'cd_nagios/httpd/nagios_conf.erb'
-$ng_welcome_conf = '/etc/httpd/conf.d/welcome.conf'
-$ng_welcome_conf_erb = 'cd_nagios/httpd/welcome_conf.erb'
-$ng_forward_conf = '/etc/httpd/conf.d/nagios_forward.conf'
-$ng_forward_conf_erb = 'cd_nagios/httpd/forward_conf.erb'
-$ng_get_cert_erb = 'cd_nagios/certbot/get_cert.erb'
-$ng_unless_get_cert = 'cd_nagios/certbot/unless_get_cert.erb'
-$ng_unless_renew_erb = 'cd_nagios/certbot/unless_renew_cert.erb'
-$ng_index_html_file = '/var/www/html/index.html'
-$ng_index_html_erb = 'cd_nagios/httpd/index_html.erb'
-$ng_ssl_vhost_file = '/etc/httpd/conf.d/nagios_ssl.conf'
-$ng_ssl_vhost_erb = 'cd_nagios/httpd/nagios_ssl_vhost.erb'
+$ng_main_config = "${ng_main_dir}/nagios.cfg"
+$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
+$ng_cgi_cfg_erb = 'cd_nagios/nagios/cgi_cfg.erb'
+$ng_htpasswd_file = "${ng_main_dir}/passwd"
+$ng_htpasswd_head = 'cd_nagios/nagios/htpasswd_head.erb'
+$ng_htpasswd_rule = 'cd_nagios/nagios/htpasswd_rule.erb'
+$ng_taccgi_erb = 'cd_nagios/selinux/taccgi.erb'
+$ng_statcgi_erb = 'cd_nagios/selinux/statuscgi.erb'
+$ng_nagios_conf = '/etc/httpd/conf.d/nagios.conf'
+$ng_nagios_conf_erb = 'cd_nagios/httpd/nagios_conf.erb'
+$ng_welcome_conf = '/etc/httpd/conf.d/welcome.conf'
+$ng_welcome_conf_erb = 'cd_nagios/httpd/welcome_conf.erb'
+$ng_forward_conf = '/etc/httpd/conf.d/nagios_forward.conf'
+$ng_forward_conf_erb = 'cd_nagios/httpd/forward_conf.erb'
+$ng_get_cert_erb = 'cd_nagios/certbot/get_cert.erb'
+$ng_unless_get_cert = 'cd_nagios/certbot/unless_get_cert.erb'
+$ng_unless_renew_erb = 'cd_nagios/certbot/unless_renew_cert.erb'
+$ng_index_html_file = '/var/www/html/index.html'
+$ng_index_html_erb = 'cd_nagios/httpd/index_html.erb'
+$ng_ssl_vhost_file = '/etc/httpd/conf.d/nagios_ssl.conf'
+$ng_ssl_vhost_erb = 'cd_nagios/httpd/nagios_ssl_vhost.erb'
+$ng_nagios_cfg_file = "${ng_main_dir}/nagios.cfg"
+$ng_nagios_cfg_erb = 'cd_nagios/nagios/nagios_cfg.erb'
# certbot
-$ng_certbot_main_dir = '/etc/letsencrypt'
-$ng_certbot_archive = "${ng_certbot_main_dir}/archive"
-$ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pem"
-$ng_certbot_live = "${ng_certbot_main_dir}/live"
+$ng_certbot_main_dir = '/etc/letsencrypt'
+$ng_certbot_archive = "${ng_certbot_main_dir}/archive"
+$ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pem"
+$ng_certbot_live = "${ng_certbot_main_dir}/live"
+
+# nagios
+
+$ng_target_templates = "${ng_conf_d_dir}/templates.cfg"
+$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"
+$ng_target_hostgroup = "${ng_conf_d_dir}/nagios_hostgroup.cfg"
+$ng_target_hostdep = "${ng_conf_d_dir}/nagios_hostdependency.cfg"
+$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_contactgroup = "${ng_conf_d_dir}/nagios_contactgroup.cfg"
+$ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg"
# includes must be last
@@ -2356,7 +3589,7 @@ $ng_certbot_live = "${ng_certbot_main_dir}/live"
diff --git a/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html
index 6b4a233..568d40c 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html
@@ -249,7 +249,7 @@ class cd_nagios::selinux::config (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html
index 97a60a4..2591d9e 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html
@@ -195,7 +195,7 @@ class cd_nagios::server::access_rules (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html
index c1e65c0..6c67318 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html
@@ -220,7 +220,12 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.
111
112
113
-114
+114
+115
+116
+117
+118
+119
|
# File 'manifests/server/files.pp', line 23
@@ -242,6 +247,20 @@ class cd_nagios::server::files (
# manage nagios.cfg
+ file { $ng_nagios_cfg_file:
+ ensure => file,
+ path => $ng_nagios_cfg_file,
+ owner => 'root',
+ group => 'root',
+ mode => '0644',
+ selrange => s0,
+ selrole => object_r,
+ seltype => nagios_etc_t,
+ seluser => system_u,
+ content => template($ng_nagios_cfg_erb),
+ notify => Service[$ng_service],
+ }
+
# manage cgi.cfg
file { $ng_cgi_cfg_file:
@@ -258,20 +277,11 @@ class cd_nagios::server::files (
notify => Service[$ng_service],
}
- # manage nagios.conf for httpd
+ # since we use vhost files, we do not want the regular file to appear
+ # after upgrades to avoid conflicts
file { $ng_nagios_conf:
ensure => absent,
-# path => $ng_nagios_conf,
-# owner => 'root',
-# group => 'root',
-# mode => '0644',
-# selrange => s0,
-# selrole => object_r,
-# seltype => httpd_config_t,
-# seluser => system_u,
-# content => template($ng_nagios_conf_erb),
-# notify => Service[$ae_service],
}
file { $ng_forward_conf:
@@ -324,7 +334,7 @@ class cd_nagios::server::files (
diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
index 953649f..f36cbab 100644
--- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
+++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html
@@ -145,7 +145,53 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.
36
37
38
-39
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
|
# File 'manifests/server/service.pp', line 23
@@ -165,6 +211,52 @@ class cd_nagios::server::service (
hasrestart => true,
enable => true,
}
+
+ @@nagios_service { "check_nagios${::hostname}":
+ check_command => 'check_nagios!/var/log/nagios/status.dat!5!/usr/sbin/nagios',
+ use => 'generic-service',
+ host_name => $::fqdn,
+ notification_period => '24x7',
+ target => $ng_target_service,
+ owner => 'nagios',
+ group => 'nagios',
+ mode => '660',
+ contacts => 'DevOps',
+ }
+
+ resources { [ 'nagios_host',
+ 'nagios_hostgroup',
+ 'nagios_hostdependency',
+ 'nagios_hostescalation',
+ 'nagios_hostextinfo',
+ 'nagios_service',
+ 'nagios_servicegroup',
+ 'nagios_servicedependency',
+ 'nagios_serviceescalation',
+ 'nagios_serviceextinfo',
+ 'nagios_contact',
+ 'nagios_contactgroup',
+ 'nagios_command',
+ 'nagios_timeperiod' ]:
+ purge => true,
+ }
+
+ # collect resources and populate /etc/nagios/conf.d/nagios_*.cfg
+ Nagios_host <<||>> { notify => Service['nagios'] }
+ Nagios_hostgroup <<||>> { notify => Service['nagios'] }
+ Nagios_hostdependency <<||>> { notify => Service['nagios'] }
+ Nagios_hostescalation <<||>> { notify => Service['nagios'] }
+ Nagios_hostextinfo <<||>> { notify => Service['nagios'] }
+ Nagios_service <<||>> { notify => Service['nagios'] }
+ Nagios_servicegroup <<||>> { notify => Service['nagios'] }
+ Nagios_servicedependency <<||>> { notify => Service['nagios'] }
+ Nagios_serviceescalation <<||>> { notify => Service['nagios'] }
+ Nagios_serviceextinfo <<||>> { notify => Service['nagios'] }
+ Nagios_contact <<||>> { notify => Service['nagios'] }
+ Nagios_contactgroup <<||>> { notify => Service['nagios'] }
+ Nagios_command <<||>> { notify => Service['nagios'] }
+ Nagios_timeperiod <<||>> { notify => Service['nagios'] }
+
}
}
|
@@ -174,7 +266,7 @@ class cd_nagios::server::service (
diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html b/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html
index 4c27851..edb95a1 100644
--- a/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html
+++ b/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html
@@ -220,7 +220,7 @@ $ng_service = $::cd_nagios::params::ng_service
diff --git a/doc/top-level-namespace.html b/doc/top-level-namespace.html
index 38fc31c..83c2d6b 100644
--- a/doc/top-level-namespace.html
+++ b/doc/top-level-namespace.html
@@ -90,7 +90,7 @@
diff --git a/manifests/params.pp b/manifests/params.pp
index 6c251fe..b1d84a8 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -212,123 +212,314 @@
# listen to, i.e. 'nagios.example.net'. Unlike `ng_nagios_server`, this
# should not be the FQDN of the nagios host, but a web server domain name.
# required for certbot and used in the web templates.
+# @param [string] ng_log_file main log file where service- and host events
+# are logged.
+# @param [string] ng_max_check_attempts maximum amount of checks done by nagios
+# @param [string] ng_object_cache_file determines where object definitions are
+# cached when # Nagios starts/restarts.
+# @param [string] ng_precached_obj_file determines the location of the
+# precached object file.
+# @param [string] optional resource file that contains $USERx$ macro definitions.
+# @param [string] ng_status_file. where the current status of all monitored
+# services and hosts is stored.
+# @param [string] ng_status_upd_interval status file update interval.
+# determines the frequency (in seconds) that # Nagios will periodically dump
+# program, host, and # service status data.
+# @param [string] ng_check_ext_commands allows you to specify whether or not
+# Nagios should check # for external commands in the command file specified
+# by `ng_command_file`.
+# @param [string] ng_command_file file that Nagios checks for external command
+# requests. It is also where the command CGI will write commands that are
+# submitted # by users, so it must be writeable by the user that the web server
+# is running as.
+# @param [boolean] ng_enable_query_handler Whether to enable the query handler
+# for running nagios in cluster mode.
+# @param [string] ng_query_socket the socket for the query handler
+# @param [string] ng_lock_file lockfile that Nagios will use to store its PID
+# number in when it is running in daemon mode.
+# @param [string] ng_temp_file temporary file that is used as scratch space
+# when Nagios # updates the status log, cleans the comment file, etc.
+# @param [string] ng_temp_path path where Nagios can create temp files for
+# service and # host check results, etc.
+# @param [string] event_broker_options Controls what (if any) data gets sent
+# to the event broker.
+# @param [string] ng_event_broker_module specify an event broker
+# (including full path) module that should # by loaded by Nagios at startup.
+# Specify multiple modules as array ['path/to/module1','/path/to/module2']
+# @param [string] ng_log_rotation_method. Valid options:
+# n = None - don't rotate the log
+# h = Hourly rotation (top of the hour)
+# d = Daily rotation (midnight every day)
+# w = Weekly rotation (midnight on Saturday evening)
+# m = Monthly rotation (midnight last day of month)
+# @param [string] ng_log_archive_path directory where archived (rotated)
+# log files should be # placed (assuming you've chosen to do log rotation).
+# @param [string] ng_use_syslog whether to log messages to the syslog
+# facility, as well as the Nagios log file. Valid options are `0` and `1`.
+# @param [string] ng_log_notifications Whether to log notifications in addition
+# to regular messages. Valid options are `0` and `1`.
+# @param [string] ng_log_service_retries Whether to log service retries.
+# Valid options are `0` and `1`.
+# @param [string] ng_log_host_retries Whether to log host retries.
+# Valid options are `0` and `1`.
+# @param [string] ng_log_event_handlers. Whether to log host and service event
+# handlers. Valid options are `0` and `1`.
+# @param [string] ng_log_initial_states Whether to log initial states.
+# Valid options are `0` and `1`.
+# @param [string] ng_log_current_states Whether to log all current host and
+# service states to the main log file after log has been rotated.
+# Valid options are `0` and `1`.
+# @param [string] ng_log_external_commands Whether to log external commands.
+# Valid options are `0` and `1`.
+# @param [string] ng_log_passive_checks Whether to log passive checks.
+# Valid options are `0` and `1`.
+# @param [string] ng_glob_host_evt_handler Specify a global host event
+# handler # command that is to be run for every host or service state change.
+# The global event handler is executed immediately prior to the event
+# handler that you have optionally specified in each host or # service
+# definition. The command argument is the short name of a # command definition
+# that you define in your host configuration file.
+# @param [string] ng_glob_svc_evt_handler Specify a global service event
+# handler # command that is to be run for every host or service state change.
+# The global event handler is executed immediately prior to the event
+# handler that you have optionally specified in each host or # service
+# definition. The command argument is the short name of a # command definition
+# that you define in your host configuration file.
+# @param [string] ng_svc_int_check_delay method that Nagios should use when
+# initially "spreading out" service checks when it starts monitoring.
+# Valid options:
+# n = None - don't use any delay between checks
+# d = Use a "dumb" delay of 1 second between checks
+# s = Use "smart" inter-check delay calculation
+# x.xx = Use an inter-check delay of x.xx seconds
+# @param [string] ng_max_service_check_spread timeframe (in minutes) from the
+# program start time that an initial check of all services should be completed
+# @param [string] ng_svc_interleave_factor determines how service checks are
+# interleaved. Valid options: s = Use "smart" interleave factor calculation
+# x = Use an interleave factor of x, where x is greater than or equal to 1.
+# @param [string] ng_host_int_check_delay method that Nagios should use when
+# initially "spreading out" host checks when it starts monitoring.
+# Valid options:
+# n = None - don't use any delay between checks
+# d = Use a "dumb" delay of 1 second between checks
+# s = Use "smart" inter-check delay calculation
+# x.xx = Use an inter-check delay of x.xx seconds
+# @param [string] ng_max_host_check_spread timeframe (in minutes) from the
+# program start time that an initial check of all hosts should # be completed.
+# @param [string] ng_max_concurrent_checks specify the maximum number of
+# service checks that can be run in parallel at any given time. A value of 0
+# will not restrict the number of concurrent checks that are being executed.
+# @param [string] ng_check_res_reaper_freq frequency (in seconds!) in which
+# Nagios will process the results of host and service checks.
+# @param [string] ng_check_result_path directory where Nagios stores the
+# results of host and service checks that have not yet been processed.
+# @param [string] ng_max_check_res_file_age maximum age (in seconds) which
+# check result files are considered to be valid.
+# @param [string] ng_cached_h_check_horizon maximum amount of time (in seconds)
+# that the state of a previous host check is considered current.
+# Cached host states (from host checks that were performed more recently
+# that the timeframe specified by this value) can immensely improve
+# performance in regards to the host check logic. Too high of a value for
+# this option may result in inaccurate host states being used by Nagios,
+# while a lower value may result in a performance hit for host checks.
+# Use a value of 0 to disable host check caching.
+# @param [string] ng_cached_s_check_horizon maximum amount of time (in seconds)
+# that the state of a previous service check is considered current.
+# Cached service states (from service checks that were performed more recently
+# that the timeframe specified by this value) can immensely improve
+# performance in regards to the service check logic. Too high of a value for
+# this option may result in inaccurate service states being used by Nagios,
+# while a lower value may result in a performance hit for service checks.
+# Use a value of 0 to disable service check caching.
+# @param [string] ng_pred_host_dep_checks Whether Nagios will attempt to execute
+# checks of hosts when it predicts that future dependency logic test may be
+# needed. Valid options are `0` and `1`.
+# @param [string] ng_pred_svc_dep_checks Whether Nagios will attempt to execute
+# checks of services when it predicts that future dependency logic test may be
+# needed. Valid options are `0` and `1`.
+# @param [string] ng_soft_state_dependencies Whether or not Nagios will use
+# soft state information when checking host and service dependencies.
+# Valid options are `0` and `1`.
+# @param [string] ng_time_change_threshold when Nagios will react to detected
+# changes in system time (either forward or backwards).
+# @param [string] ng_auto_reschedule_checks Whether Nagios will attempt to
+# automatically reschedule active host and service checks to
+# "smooth" them out over time. Experimental feature.
+# Valid options are `0` and `1`.
+# @param [string] ng_auto_reschedule_intval how often (in seconds) Nagios will
+# attempt to automatically reschedule checks. only has an effect if
+# `ng_auto_reschedule_checks` is set to `1`.
+# @param [string] ng_auto_reschedule_window determines the "window" of time
+# (in seconds) that # Nagios will look at when automatically rescheduling
+# checks. Only host and service checks that occur in the next X seconds
+# (determined by this variable) will be rescheduled.
###############################################################################
class cd_nagios::params (
-$pkg_ensure = 'latest',
+$pkg_ensure = 'latest',
-$ng_nagios_server = "nagios.${::domain}",
-$ng_nagios_ext_ip = undef,
-$ng_mail_user = "admin@${::domain}",
+$ng_nagios_server = "nagios.${::domain}",
+$ng_nagios_ext_ip = undef,
+$ng_mail_user = "admin@${::domain}",
-$ng_include_nrpe = true,
+$ng_include_nrpe = true,
# firewall
-$ng_include_fw = true,
-$ng_use_https = true,
-$ng_http_https_fw = true,
-$ng_fw_order = '50',
-$ng_http_port = '80',
-$ng_https_port = '443',
+$ng_include_fw = true,
+$ng_use_https = true,
+$ng_http_https_fw = true,
+$ng_fw_order = '50',
+$ng_http_port = '80',
+$ng_https_port = '443',
# check command parameters
## ping
-$ng_ping_warn = '100.0,20%',
-$ng_ping_crit = '500.0,60%',
-$ng_ping_ensure = 'present',
+$ng_ping_warn = '100.0,20%',
+$ng_ping_crit = '500.0,60%',
+$ng_ping_ensure = 'present',
## disk
-$ng_disk_warn = '20%',
-$ng_disk_crit = '10%' ,
-$ng_disk_ensure = 'present',
+$ng_disk_warn = '20%',
+$ng_disk_crit = '10%' ,
+$ng_disk_ensure = 'present',
# swap
-$ng_swap_warn = '20',
-$ng_swap_crit = '10',
-$ng_swap_ensure = 'present',
+$ng_swap_warn = '20',
+$ng_swap_crit = '10',
+$ng_swap_ensure = 'present',
# users
-$ng_users_warn = '20',
-$ng_users_crit = '50',
-$ng_users_ensure = 'present',
+$ng_users_warn = '20',
+$ng_users_crit = '50',
+$ng_users_ensure = 'present',
#total procs
-$ng_procs_tot_warn = '330',
-$ng_procs_tot_crit = '400',
-$ng_procs_tot_param = 'RDST',
-$ng_procs_tot_ens = 'present',
+$ng_procs_tot_warn = '330',
+$ng_procs_tot_crit = '400',
+$ng_procs_tot_param = 'RDST',
+$ng_procs_tot_ens = 'present',
# zombie procs
-$ng_procs_z_warn = '10',
-$ng_procs_z_crit = '30',
-$ng_procs_z_param = 'Z',
-$ng_procs_z_ensure = 'present',
+$ng_procs_z_warn = '10',
+$ng_procs_z_crit = '30',
+$ng_procs_z_param = 'Z',
+$ng_procs_z_ensure = 'present',
# load
-$ng_load_warn = '5.00,4.00,3.00',
-$ng_load_crit = '10.00,6.00,4.00',
-$ng_load_ensure = 'present',
+$ng_load_warn = '5.00,4.00,3.00',
+$ng_load_crit = '10.00,6.00,4.00',
+$ng_load_ensure = 'present',
# user settings
-$ng_user = 'nagios',
-$ng_u_comment = 'Nagios service user',
-$ng_u_uid = '1004',
-$ng_user_home = '/var/spool/nagios',
-$ng_u_groups = undef,
-$ng_user_shell = '/bin/bash',
+$ng_user = 'nagios',
+$ng_u_comment = 'Nagios service user',
+$ng_u_uid = '1004',
+$ng_user_home = '/var/spool/nagios',
+$ng_u_groups = undef,
+$ng_user_shell = '/bin/bash',
# cgi settings
-$ng_context_help = '1',
-$ng_pending_state = '1',
-$ng_use_auth = '1',
-$ng_use_ssl_auth = '0',
-$ng_enable_def_user = false,
-$ng_def_user_name = 'nagios_insecure',
-$ng_nagios_admin = 'nagios_sec_adm',
-$ng_sysinfo_auth = '',
-$ng_confinfo_auth = '',
-$ng_command_auth = '',
-$ng_hostview_auth = '',
-$ng_serviceview_auth = '',
-$ng_host_cmd_auth = '',
-$ng_svc_cmd_auth = '',
-$ng_readonly_auth = '' ,
-$ng_statusmap_img = 'smbackground.gd2',
-$ng_use_colormap = false,
-$ng_colormap_red = '255',
-$ng_colormap_green = '255',
-$ng_colormap_blue = '255',
-$ng_statusmap_layout = '6',
-$ng_wrl_layout = '4',
-$ng_incl_own_wrl = false,
-$ng_statuswrl_include = '',
-$ng_ping_syntax = '/bin/ping -n -U -c 5 $HOSTADDRESS$',
-$ng_refresh_rate = '90',
-$ng_result_limit = '100',
-$ng_escape_html = '1',
-$ng_use_sound = false,
-$ng_host_unreachable = 'hostdown.wav',
-$ng_host_down = 'hostdown.wav',
-$ng_svc_critical = 'critical.wav',
-$ng_svc_warn = 'warning.wav',
-$ng_svc_unknown = 'warning.wav',
-$ng_normal_sound = 'noproblem.wav',
-$ng_action_url_target = '_blank',
-$ng_notes_url_target = '_blank',
-$ng_lock_author_names = '1',
-$ng_enable_splunk = false,
-$ng_splunk_url = 'http://127.0.0.1:8000/',
-$ng_navbar_addresses = '1',
-$ng_navbar_aliases = '1',
-$ng_ack_no_sticky = '0',
-$ng_ack_no_send = '0',
+$ng_context_help = '1',
+$ng_pending_state = '1',
+$ng_use_auth = '1',
+$ng_use_ssl_auth = '0',
+$ng_enable_def_user = false,
+$ng_def_user_name = 'nagios_insecure',
+$ng_nagios_admin = 'nagios_sec_adm',
+$ng_sysinfo_auth = '',
+$ng_confinfo_auth = '',
+$ng_command_auth = '',
+$ng_hostview_auth = '',
+$ng_serviceview_auth = '',
+$ng_host_cmd_auth = '',
+$ng_svc_cmd_auth = '',
+$ng_readonly_auth = '' ,
+$ng_statusmap_img = 'smbackground.gd2',
+$ng_use_colormap = false,
+$ng_colormap_red = '255',
+$ng_colormap_green = '255',
+$ng_colormap_blue = '255',
+$ng_statusmap_layout = '6',
+$ng_wrl_layout = '4',
+$ng_incl_own_wrl = false,
+$ng_statuswrl_include = '',
+$ng_ping_syntax = '/bin/ping -n -U -c 5 $HOSTADDRESS$',
+$ng_refresh_rate = '90',
+$ng_result_limit = '100',
+$ng_escape_html = '1',
+$ng_use_sound = false,
+$ng_host_unreachable = 'hostdown.wav',
+$ng_host_down = 'hostdown.wav',
+$ng_svc_critical = 'critical.wav',
+$ng_svc_warn = 'warning.wav',
+$ng_svc_unknown = 'warning.wav',
+$ng_normal_sound = 'noproblem.wav',
+$ng_action_url_target = '_blank',
+$ng_notes_url_target = '_blank',
+$ng_lock_author_names = '1',
+$ng_enable_splunk = false,
+$ng_splunk_url = 'http://127.0.0.1:8000/',
+$ng_navbar_addresses = '1',
+$ng_navbar_aliases = '1',
+$ng_ack_no_sticky = '0',
+$ng_ack_no_send = '0',
# selinux
-$ng_use_selinux_tools = true,
+$ng_use_selinux_tools = true,
# httpd
-$ng_required_hosts = '',
-$ng_required_ips = '127.0.0.0/8',
-$ng_enable_index = true,
+$ng_required_hosts = '',
+$ng_required_ips = '127.0.0.0/8',
+$ng_enable_index = true,
# certbot
-$ng_enable_certbot = true,
-$ng_certbot_webroot = '/var/www/html',
-$ng_webserver_name = "nagios.${::domain}",
+$ng_enable_certbot = true,
+$ng_certbot_webroot = '/var/www/html',
+$ng_webserver_name = "nagios.${::domain}",
+
+# main settings
+$ng_log_file = '/var/log/nagios/nagios.log',
+$ng_max_check_attempts = '10',
+$ng_object_cache_file = '/var/spool/nagios/objects.cache',
+$ng_precached_obj_file = '/var/spool/nagios/objects.precache',
+$ng_resource_file = '/etc/nagios/private/resource.cfg',
+$ng_status_file = '/var/log/nagios/status.dat',
+$ng_status_upd_interval = '10',
+$ng_check_ext_commands = '1',
+$ng_command_file = '/var/spool/nagios/cmd/nagios.cmd',
+$ng_enable_query_handler = false,
+$ng_query_socket = '/var/spool/nagios/cmd/nagios.qh',
+$ng_lock_file = '/var/run/nagios/nagios.pid',
+$ng_temp_file = '/var/spool/nagios/nagios.tmp',
+$ng_temp_path = '/tmp',
+$ng_event_broker_options = '-1',
+$ng_event_broker_module = '',
+$ng_log_rotation_method = 'h',
+$ng_log_archive_path = '/var/log/nagios/archives',
+$ng_use_syslog = '1',
+$ng_log_notifications = '1',
+$ng_log_service_retries = '1',
+$ng_log_host_retries = '1',
+$ng_log_event_handlers = '1',
+$ng_log_initial_states = '0',
+$ng_log_current_states = '1',
+$ng_log_external_commands = '1',
+$ng_log_passive_checks = '1',
+$ng_glob_host_evt_handler = '',
+$ng_glob_svc_evt_handler = '',
+$ng_svc_int_check_delay = 's',
+$ng_max_svc_check_spread = '30',
+$ng_svc_interleave_factor = 's',
+$ng_host_int_check_delay = 's',
+$ng_max_host_check_spread = '30',
+$ng_max_concurrent_checks = '0',
+$ng_check_res_reaper_freq = '10',
+$ng_max_check_res_reap_time = '30',
+$ng_check_result_path = '/var/spool/nagios/checkresults',
+$ng_max_check_res_file_age = '3600',
+$ng_cached_h_check_horizon = '15',
+$ng_cached_s_check_horizon = '15',
+$ng_pred_host_dep_checks = '1',
+$ng_pred_svc_dep_checks = '1',
+$ng_soft_state_dependencies = '0',
+$ng_time_change_threshold = '900',
+$ng_auto_reschedule_checks = '0',
+$ng_auto_reschedule_intval = '30',
+$ng_auto_reschedule_window = '180',
) {
@@ -345,50 +536,68 @@ $ng_webserver_name = "nagios.${::domain}",
}
# service
-$ng_service = 'nagios'
-$ae_service = 'httpd'
+$ng_service = 'nagios'
+$ae_service = 'httpd'
# directories
-$ng_main_dir = '/etc/nagios'
-$ng_conf_d_dir = "${ng_main_dir}/conf.d"
-$ng_objects_dir = "${ng_main_dir}/objects"
-$ng_private_dir = "${ng_main_dir}/private"
-$ng_usr_incl = '/usr/include/nagios'
-$ng_lib_dir = '/usr/lib64/nagios'
-$ng_log_dir = '/var/log/nagios'
-$ng_log_archives = "${ng_log_dir}/archives"
-$ng_spool_dir = '/var/spool/nagios'
-$ng_usr_share = '/usr/share/nagios'
-$ng_share_html = "${ng_usr_share}/html"
+$ng_main_dir = '/etc/nagios'
+$ng_conf_d_dir = "${ng_main_dir}/conf.d"
+$ng_objects_dir = "${ng_main_dir}/objects"
+$ng_private_dir = "${ng_main_dir}/private"
+$ng_usr_incl = '/usr/include/nagios'
+$ng_lib_dir = '/usr/lib64/nagios'
+$ng_log_dir = '/var/log/nagios'
+$ng_log_archives = "${ng_log_dir}/archives"
+$ng_spool_dir = '/var/spool/nagios'
+$ng_usr_share = '/usr/share/nagios'
+$ng_share_html = "${ng_usr_share}/html"
# files
-$ng_main_config = "${ng_main_dir}/nagios.cfg"
-$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
-$ng_cgi_cfg_erb = 'cd_nagios/nagios/cgi_cfg.erb'
-$ng_htpasswd_file = "${ng_main_dir}/passwd"
-$ng_htpasswd_head = 'cd_nagios/nagios/htpasswd_head.erb'
-$ng_htpasswd_rule = 'cd_nagios/nagios/htpasswd_rule.erb'
-$ng_taccgi_erb = 'cd_nagios/selinux/taccgi.erb'
-$ng_statcgi_erb = 'cd_nagios/selinux/statuscgi.erb'
-$ng_nagios_conf = '/etc/httpd/conf.d/nagios.conf'
-$ng_nagios_conf_erb = 'cd_nagios/httpd/nagios_conf.erb'
-$ng_welcome_conf = '/etc/httpd/conf.d/welcome.conf'
-$ng_welcome_conf_erb = 'cd_nagios/httpd/welcome_conf.erb'
-$ng_forward_conf = '/etc/httpd/conf.d/nagios_forward.conf'
-$ng_forward_conf_erb = 'cd_nagios/httpd/forward_conf.erb'
-$ng_get_cert_erb = 'cd_nagios/certbot/get_cert.erb'
-$ng_unless_get_cert = 'cd_nagios/certbot/unless_get_cert.erb'
-$ng_unless_renew_erb = 'cd_nagios/certbot/unless_renew_cert.erb'
-$ng_index_html_file = '/var/www/html/index.html'
-$ng_index_html_erb = 'cd_nagios/httpd/index_html.erb'
-$ng_ssl_vhost_file = '/etc/httpd/conf.d/nagios_ssl.conf'
-$ng_ssl_vhost_erb = 'cd_nagios/httpd/nagios_ssl_vhost.erb'
+$ng_main_config = "${ng_main_dir}/nagios.cfg"
+$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
+$ng_cgi_cfg_erb = 'cd_nagios/nagios/cgi_cfg.erb'
+$ng_htpasswd_file = "${ng_main_dir}/passwd"
+$ng_htpasswd_head = 'cd_nagios/nagios/htpasswd_head.erb'
+$ng_htpasswd_rule = 'cd_nagios/nagios/htpasswd_rule.erb'
+$ng_taccgi_erb = 'cd_nagios/selinux/taccgi.erb'
+$ng_statcgi_erb = 'cd_nagios/selinux/statuscgi.erb'
+$ng_nagios_conf = '/etc/httpd/conf.d/nagios.conf'
+$ng_nagios_conf_erb = 'cd_nagios/httpd/nagios_conf.erb'
+$ng_welcome_conf = '/etc/httpd/conf.d/welcome.conf'
+$ng_welcome_conf_erb = 'cd_nagios/httpd/welcome_conf.erb'
+$ng_forward_conf = '/etc/httpd/conf.d/nagios_forward.conf'
+$ng_forward_conf_erb = 'cd_nagios/httpd/forward_conf.erb'
+$ng_get_cert_erb = 'cd_nagios/certbot/get_cert.erb'
+$ng_unless_get_cert = 'cd_nagios/certbot/unless_get_cert.erb'
+$ng_unless_renew_erb = 'cd_nagios/certbot/unless_renew_cert.erb'
+$ng_index_html_file = '/var/www/html/index.html'
+$ng_index_html_erb = 'cd_nagios/httpd/index_html.erb'
+$ng_ssl_vhost_file = '/etc/httpd/conf.d/nagios_ssl.conf'
+$ng_ssl_vhost_erb = 'cd_nagios/httpd/nagios_ssl_vhost.erb'
+$ng_nagios_cfg_file = "${ng_main_dir}/nagios.cfg"
+$ng_nagios_cfg_erb = 'cd_nagios/nagios/nagios_cfg.erb'
# certbot
-$ng_certbot_main_dir = '/etc/letsencrypt'
-$ng_certbot_archive = "${ng_certbot_main_dir}/archive"
-$ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pem"
-$ng_certbot_live = "${ng_certbot_main_dir}/live"
+$ng_certbot_main_dir = '/etc/letsencrypt'
+$ng_certbot_archive = "${ng_certbot_main_dir}/archive"
+$ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pem"
+$ng_certbot_live = "${ng_certbot_main_dir}/live"
+
+# nagios
+
+$ng_target_templates = "${ng_conf_d_dir}/templates.cfg"
+$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"
+$ng_target_hostgroup = "${ng_conf_d_dir}/nagios_hostgroup.cfg"
+$ng_target_hostdep = "${ng_conf_d_dir}/nagios_hostdependency.cfg"
+$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_contactgroup = "${ng_conf_d_dir}/nagios_contactgroup.cfg"
+$ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg"
# includes must be last
diff --git a/manifests/server/files.pp b/manifests/server/files.pp
index 21847ac..aea971a 100644
--- a/manifests/server/files.pp
+++ b/manifests/server/files.pp
@@ -37,6 +37,20 @@ class cd_nagios::server::files (
# manage nagios.cfg
+ file { $ng_nagios_cfg_file:
+ ensure => file,
+ path => $ng_nagios_cfg_file,
+ owner => 'root',
+ group => 'root',
+ mode => '0644',
+ selrange => s0,
+ selrole => object_r,
+ seltype => nagios_etc_t,
+ seluser => system_u,
+ content => template($ng_nagios_cfg_erb),
+ notify => Service[$ng_service],
+ }
+
# manage cgi.cfg
file { $ng_cgi_cfg_file:
@@ -53,20 +67,11 @@ class cd_nagios::server::files (
notify => Service[$ng_service],
}
- # manage nagios.conf for httpd
+ # since we use vhost files, we do not want the regular file to appear
+ # after upgrades to avoid conflicts
file { $ng_nagios_conf:
ensure => absent,
-# path => $ng_nagios_conf,
-# owner => 'root',
-# group => 'root',
-# mode => '0644',
-# selrange => s0,
-# selrole => object_r,
-# seltype => httpd_config_t,
-# seluser => system_u,
-# content => template($ng_nagios_conf_erb),
-# notify => Service[$ae_service],
}
file { $ng_forward_conf:
diff --git a/manifests/server/service.pp b/manifests/server/service.pp
index 1c7b828..5d8cbd2 100644
--- a/manifests/server/service.pp
+++ b/manifests/server/service.pp
@@ -35,5 +35,51 @@ class cd_nagios::server::service (
hasrestart => true,
enable => true,
}
+
+ @@nagios_service { "check_nagios${::hostname}":
+ check_command => 'check_nagios!/var/log/nagios/status.dat!5!/usr/sbin/nagios',
+ use => 'generic-service',
+ host_name => $::fqdn,
+ notification_period => '24x7',
+ target => $ng_target_service,
+ owner => 'nagios',
+ group => 'nagios',
+ mode => '660',
+ contacts => 'DevOps',
+ }
+
+ resources { [ 'nagios_host',
+ 'nagios_hostgroup',
+ 'nagios_hostdependency',
+ 'nagios_hostescalation',
+ 'nagios_hostextinfo',
+ 'nagios_service',
+ 'nagios_servicegroup',
+ 'nagios_servicedependency',
+ 'nagios_serviceescalation',
+ 'nagios_serviceextinfo',
+ 'nagios_contact',
+ 'nagios_contactgroup',
+ 'nagios_command',
+ 'nagios_timeperiod' ]:
+ purge => true,
+ }
+
+ # collect resources and populate /etc/nagios/conf.d/nagios_*.cfg
+ Nagios_host <<||>> { notify => Service['nagios'] }
+ Nagios_hostgroup <<||>> { notify => Service['nagios'] }
+ Nagios_hostdependency <<||>> { notify => Service['nagios'] }
+ Nagios_hostescalation <<||>> { notify => Service['nagios'] }
+ Nagios_hostextinfo <<||>> { notify => Service['nagios'] }
+ Nagios_service <<||>> { notify => Service['nagios'] }
+ Nagios_servicegroup <<||>> { notify => Service['nagios'] }
+ Nagios_servicedependency <<||>> { notify => Service['nagios'] }
+ Nagios_serviceescalation <<||>> { notify => Service['nagios'] }
+ Nagios_serviceextinfo <<||>> { notify => Service['nagios'] }
+ Nagios_contact <<||>> { notify => Service['nagios'] }
+ Nagios_contactgroup <<||>> { notify => Service['nagios'] }
+ Nagios_command <<||>> { notify => Service['nagios'] }
+ Nagios_timeperiod <<||>> { notify => Service['nagios'] }
+
}
}
diff --git a/templates/httpd/nagios_conf.erb b/templates/httpd/nagios_conf.erb
deleted file mode 100644
index 3d1ad3a..0000000
--- a/templates/httpd/nagios_conf.erb
+++ /dev/null
@@ -1,87 +0,0 @@
-################################################################################
-########## /etc/httpd/conf.d/nagios.conf created by Puppet ###########
-########## manual changes will be overwritten !!! ###########
-################################################################################
-########## full reference is available at ###########
-########## https://confdroid.com/2017/07/nagios-nagios-conf/ ###########
-################################################################################
-
-ScriptAlias /nagios/cgi-bin/ "/usr/lib64/nagios/cgi-bin/"
-
-
-<% if @ng_use_https == true -%>
- SSLRequireSSL
-<% else -%>
-# SSLRequireSSL
-<% end -%>
- Options ExecCGI
- AllowOverride None
- = 2.3>
-
- Require all granted
-<% unless @ng_required_hosts.empty? -%>
- Require host <%= @ng_required_hosts %>
-<% end -%>
-<% unless @ng_required_ips.empty? -%>
- Require ip <%= @ng_required_ips %>
-<% end -%>
- AuthName "Nagios Access"
- AuthType Basic
- AuthUserFile /etc/nagios/passwd
- Require valid-user
-
-
-
- Order allow,deny
-<% unless @ng_required_hosts.empty? -%>
- Allow from <%= @ng_required_hosts %>
-<% end -%>
-<% unless @ng_required_ips.empty? -%>
- Allow from <%= @ng_required_ips %>
-<% end -%>
- AuthName "Nagios Access"
- AuthType Basic
- AuthUserFile /etc/nagios/passwd
- Require valid-user
-
-
-
-Alias /nagios "/usr/share/nagios/html"
-
-
-<% if @ng_use_https == true -%>
- SSLRequireSSL
-<% else -%>
-# SSLRequireSSL
-<% end -%>
- Options None
- AllowOverride None
- = 2.3>
-
- Require all granted
-<% unless @ng_required_hosts.empty? -%>
- Require host <%= @ng_required_hosts %>
-<% end -%>
-<% unless @ng_required_ips.empty? -%>
- Require ip <%= @ng_required_ips %>
-<% end -%>
- AuthName "Nagios Access"
- AuthType Basic
- AuthUserFile /etc/nagios/passwd
- Require valid-user
-
-
-
- Order allow,deny
-<% unless @ng_required_hosts.empty? -%>
- Allow from <%= @ng_required_hosts %>
-<% end -%>
-<% unless @ng_required_ips.empty? -%>
- Allow from <%= @ng_required_ips %>
-<% end -%>
- AuthName "Nagios Access"
- AuthType Basic
- AuthUserFile /etc/nagios/passwd
- Require valid-user
-
-
diff --git a/templates/nagios/nagios_cfg.erb b/templates/nagios/nagios_cfg.erb
new file mode 100644
index 0000000..16fe9f5
--- /dev/null
+++ b/templates/nagios/nagios_cfg.erb
@@ -0,0 +1,861 @@
+################################################################################
+##### nagios.cfg created by Puppet | manual changes will be overwritten #####
+################################################################################
+##### full reference for the original available at #####
+##### https://confdroid.com/2017/07/nagios-nagios-cfg-v-4-3-2/ #####
+################################################################################
+
+log_file=<%= @ng_log_file %>
+
+cfg_dir=<%= @ng_conf_d_dir %>
+
+object_cache_file=<%= @ng_object_cache_file %>
+
+precached_object_file=<%= @ng_precached_obj_file %>
+
+resource_file=<%= @ng_resource_file %>
+
+status_file=<%= @ng_status_file %>
+
+status_update_interval=<%= @ng_status_upd_interval %>
+
+nagios_user=<%= @ng_user %>
+nagios_group=<%= @ng_user %>
+
+check_external_commands=<%= @ng_check_ext_commands %>
+command_file=<%= @ng_command_file %>
+
+<% if @ng_enable_query_handler == true -%>
+query_socket=<%= @ng_query_socket %>
+<% end -%>
+
+lock_file=<%= @ng_lock_file %>
+temp_file=<%= @ng_temp_file %>
+temp_path=<%= @ng_temp_path %>
+
+event_broker_options=<%= @ng_event_broker_options %>
+
+<% unless @ng_event_broker_module.empty? -%>
+<% @ng_event_broker_module.each do |broker_module| -%>
+broker_module=<%= broker_module %>
+<% end end -%>
+
+log_rotation_method=<%= @ng_log_rotation_method %>
+log_archive_path=<%= @ng_log_archive_path %>
+use_syslog=<%= @ng_use_syslog %>
+log_notifications=<%= @ng_log_notifications %>
+log_service_retries=<%= @ng_log_service_retries %>
+log_host_retries=<%= @ng_log_host_retries %>
+log_event_handlers=<%= @ng_log_event_handlers %>
+log_initial_states=<%= @ng_log_initial_states %>
+log_current_states=<%= @ng_log_current_states %>
+log_external_commands=<%= @ng_log_external_commands %>
+log_passive_checks=<%= @ng_log_passive_checks %>
+
+<% unless @ng_glob_host_evt_handler.empty? -%>
+<% @ng_glob_host_evt_handler.each do |global_host_event_handler| -%>
+global_host_event_handler=<%= @ng_glob_host_evt_handler %>
+<% end end -%>
+<% unless @ng_glob_svc_evt_handler.empty? -%>
+<% @ng_glob_svc_evt_handler.each do |global_service_event_handler| -%>
+global_service_event_handler=<%= @ng_glob_svc_evt_handler %>
+<% end end -%>
+
+service_inter_check_delay_method=<%= @ng_svc_int_check_delay %>
+max_service_check_spread=<%= @ng_max_svc_check_spread %>
+service_interleave_factor=<%= @ng_svc_interleave_factor %>
+
+host_inter_check_delay_method=<%= @ng_host_int_check_delay %>
+max_host_check_spread=<%= @ng_max_host_check_spread %>
+
+max_concurrent_checks=<%= @ng_max_concurrent_checks %>
+check_result_reaper_frequency=<%= @ng_check_res_reaper_freq %>
+max_check_result_reaper_time=<%= @ng_max_check_res_reap_time %>
+
+check_result_path=<%= @ng_check_result_path %>
+max_check_result_file_age=<%= @ng_max_check_res_file_age %>
+cached_host_check_horizon=<%= @ng_cached_h_check_horizon %>
+cached_service_check_horizon=<%= @ng_cached_s_check_horizon %>
+
+enable_predictive_host_dependency_checks=<%= @ng_pred_host_dep_checks %>
+enable_predictive_service_dependency_checks=<%= @ng_pred_svc_dep_checks %>
+
+soft_state_dependencies=<%= @ng_soft_state_dependencies %>
+
+time_change_threshold=<%= @ng_time_change_threshold %>
+
+auto_reschedule_checks=<%= @ng_auto_reschedule_checks %>
+auto_rescheduling_interval=<%= @ng_auto_reschedule_intval %>
+auto_rescheduling_window=<%= @ng_auto_reschedule_window %>
+
+
+
+# TIMEOUT VALUES
+# These options control how much time Nagios will allow various
+# types of commands to execute before killing them off. Options
+# are available for controlling maximum time allotted for
+# service checks, host checks, event handlers, notifications, the
+# ocsp command, and performance data commands. All values are in
+# seconds.
+
+service_check_timeout=60
+host_check_timeout=30
+event_handler_timeout=30
+notification_timeout=30
+ocsp_timeout=5
+perfdata_timeout=5
+
+
+
+# RETAIN STATE INFORMATION
+# This setting determines whether or not Nagios will save state
+# information for services and hosts before it shuts down. Upon
+# startup Nagios will reload all saved service and host state
+# information before starting to monitor. This is useful for
+# maintaining long-term data on state statistics, etc, but will
+# slow Nagios down a bit when it (re)starts. Since its only
+# a one-time penalty, I think its well worth the additional
+# startup delay.
+
+retain_state_information=1
+
+
+
+# STATE RETENTION FILE
+# This is the file that Nagios should use to store host and
+# service state information before it shuts down. The state
+# information in this file is also read immediately prior to
+# starting to monitor the network when Nagios is restarted.
+# This file is used only if the retain_state_information
+# variable is set to 1.
+
+state_retention_file=/var/spool/nagios/retention.dat
+
+
+
+# RETENTION DATA UPDATE INTERVAL
+# This setting determines how often (in minutes) that Nagios
+# will automatically save retention data during normal operation.
+# If you set this value to 0, Nagios will not save retention
+# data at regular interval, but it will still save retention
+# data before shutting down or restarting. If you have disabled
+# state retention, this option has no effect.
+
+retention_update_interval=60
+
+
+
+# USE RETAINED PROGRAM STATE
+# This setting determines whether or not Nagios will set
+# program status variables based on the values saved in the
+# retention file. If you want to use retained program status
+# information, set this value to 1. If not, set this value
+# to 0.
+
+use_retained_program_state=1
+
+
+
+# USE RETAINED SCHEDULING INFO
+# This setting determines whether or not Nagios will retain
+# the scheduling info (next check time) for hosts and services
+# based on the values saved in the retention file. If you
+# If you want to use retained scheduling info, set this
+# value to 1. If not, set this value to 0.
+
+use_retained_scheduling_info=1
+
+
+
+# RETAINED ATTRIBUTE MASKS (ADVANCED FEATURE)
+# The following variables are used to specify specific host and
+# service attributes that should *not* be retained by Nagios during
+# program restarts.
+#
+# The values of the masks are bitwise ANDs of values specified
+# by the "MODATTR_" definitions found in include/common.h.
+# For example, if you do not want the current enabled/disabled state
+# of flap detection and event handlers for hosts to be retained, you
+# would use a value of 24 for the host attribute mask...
+# MODATTR_EVENT_HANDLER_ENABLED (8) + MODATTR_FLAP_DETECTION_ENABLED (16) = 24
+
+# This mask determines what host attributes are not retained
+retained_host_attribute_mask=0
+
+# This mask determines what service attributes are not retained
+retained_service_attribute_mask=0
+
+# These two masks determine what process attributes are not retained.
+# There are two masks, because some process attributes have host and service
+# options. For example, you can disable active host checks, but leave active
+# service checks enabled.
+retained_process_host_attribute_mask=0
+retained_process_service_attribute_mask=0
+
+# These two masks determine what contact attributes are not retained.
+# There are two masks, because some contact attributes have host and
+# service options. For example, you can disable host notifications for
+# a contact, but leave service notifications enabled for them.
+retained_contact_host_attribute_mask=0
+retained_contact_service_attribute_mask=0
+
+
+
+# INTERVAL LENGTH
+# This is the seconds per unit interval as used in the
+# host/contact/service configuration files. Setting this to 60 means
+# that each interval is one minute long (60 seconds). Other settings
+# have not been tested much, so your mileage is likely to vary...
+
+interval_length=60
+
+
+
+# CHECK FOR UPDATES
+# This option determines whether Nagios will automatically check to
+# see if new updates (releases) are available. It is recommend that you
+# enable this option to ensure that you stay on top of the latest critical
+# patches to Nagios. Nagios is critical to you - make sure you keep it in
+# good shape. Nagios will check once a day for new updates. Data collected
+# by Nagios Enterprises from the update check is processed in accordance
+# with our privacy policy - see https://api.nagios.org for details.
+
+check_for_updates=1
+
+
+
+# BARE UPDATE CHECK
+# This option determines what data Nagios will send to api.nagios.org when
+# it checks for updates. By default, Nagios will send information on the
+# current version of Nagios you have installed, as well as an indicator as
+# to whether this was a new installation or not. Nagios Enterprises uses
+# this data to determine the number of users running specific version of
+# Nagios. Enable this option if you do not want this information to be sent.
+
+bare_update_check=0
+
+
+
+# AGGRESSIVE HOST CHECKING OPTION
+# If you don't want to turn on aggressive host checking features, set
+# this value to 0 (the default). Otherwise set this value to 1 to
+# enable the aggressive check option. Read the docs for more info
+# on what aggressive host check is or check out the source code in
+# base/checks.c
+
+use_aggressive_host_checking=0
+
+
+
+# SERVICE CHECK EXECUTION OPTION
+# This determines whether or not Nagios will actively execute
+# service checks when it initially starts. If this option is
+# disabled, checks are not actively made, but Nagios can still
+# receive and process passive check results that come in. Unless
+# you're implementing redundant hosts or have a special need for
+# disabling the execution of service checks, leave this enabled!
+# Values: 1 = enable checks, 0 = disable checks
+
+execute_service_checks=1
+
+
+
+# PASSIVE SERVICE CHECK ACCEPTANCE OPTION
+# This determines whether or not Nagios will accept passive
+# service checks results when it initially (re)starts.
+# Values: 1 = accept passive checks, 0 = reject passive checks
+
+accept_passive_service_checks=1
+
+
+
+# HOST CHECK EXECUTION OPTION
+# This determines whether or not Nagios will actively execute
+# host checks when it initially starts. If this option is
+# disabled, checks are not actively made, but Nagios can still
+# receive and process passive check results that come in. Unless
+# you're implementing redundant hosts or have a special need for
+# disabling the execution of host checks, leave this enabled!
+# Values: 1 = enable checks, 0 = disable checks
+
+execute_host_checks=1
+
+
+
+# PASSIVE HOST CHECK ACCEPTANCE OPTION
+# This determines whether or not Nagios will accept passive
+# host checks results when it initially (re)starts.
+# Values: 1 = accept passive checks, 0 = reject passive checks
+
+accept_passive_host_checks=1
+
+
+
+# NOTIFICATIONS OPTION
+# This determines whether or not Nagios will sent out any host or
+# service notifications when it is initially (re)started.
+# Values: 1 = enable notifications, 0 = disable notifications
+
+enable_notifications=1
+
+
+
+# EVENT HANDLER USE OPTION
+# This determines whether or not Nagios will run any host or
+# service event handlers when it is initially (re)started. Unless
+# you're implementing redundant hosts, leave this option enabled.
+# Values: 1 = enable event handlers, 0 = disable event handlers
+
+enable_event_handlers=1
+
+
+
+# PROCESS PERFORMANCE DATA OPTION
+# This determines whether or not Nagios will process performance
+# data returned from service and host checks. If this option is
+# enabled, host performance data will be processed using the
+# host_perfdata_command (defined below) and service performance
+# data will be processed using the service_perfdata_command (also
+# defined below). Read the HTML docs for more information on
+# performance data.
+# Values: 1 = process performance data, 0 = do not process performance data
+
+process_performance_data=0
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA PROCESSING COMMANDS
+# These commands are run after every host and service check is
+# performed. These commands are executed only if the
+# enable_performance_data option (above) is set to 1. The command
+# argument is the short name of a command definition that you
+# define in your host configuration file. Read the HTML docs for
+# more information on performance data.
+
+#host_perfdata_command=process-host-perfdata
+#service_perfdata_command=process-service-perfdata
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA FILES
+# These files are used to store host and service performance data.
+# Performance data is only written to these files if the
+# enable_performance_data option (above) is set to 1.
+
+#host_perfdata_file=/var/spool/nagios/host-perfdata
+#service_perfdata_file=/var/spool/nagios/service-perfdata
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA FILE TEMPLATES
+# These options determine what data is written (and how) to the
+# performance data files. The templates may contain macros, special
+# characters (\t for tab, \r for carriage return, \n for newline)
+# and plain text. A newline is automatically added after each write
+# to the performance data file. Some examples of what you can do are
+# shown below.
+
+#host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$
+#service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA FILE MODES
+# This option determines whether or not the host and service
+# performance data files are opened in write ("w") or append ("a")
+# mode. If you want to use named pipes, you should use the special
+# pipe ("p") mode which avoid blocking at startup, otherwise you will
+# likely want the default append ("a") mode.
+
+#host_perfdata_file_mode=a
+#service_perfdata_file_mode=a
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING INTERVAL
+# These options determine how often (in seconds) the host and service
+# performance data files are processed using the commands defined
+# below. A value of 0 indicates the files should not be periodically
+# processed.
+
+#host_perfdata_file_processing_interval=0
+#service_perfdata_file_processing_interval=0
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING COMMANDS
+# These commands are used to periodically process the host and
+# service performance data files. The interval at which the
+# processing occurs is determined by the options above.
+
+#host_perfdata_file_processing_command=process-host-perfdata-file
+#service_perfdata_file_processing_command=process-service-perfdata-file
+
+
+
+# HOST AND SERVICE PERFORMANCE DATA PROCESS EMPTY RESULTS
+# These options determine wether the core will process empty perfdata
+# results or not. This is needed for distributed monitoring, and intentionally
+# turned on by default.
+# If you don't require empty perfdata - saving some cpu cycles
+# on unwanted macro calculation - you can turn that off. Be careful!
+# Values: 1 = enable, 0 = disable
+
+#host_perfdata_process_empty_results=1
+#service_perfdata_process_empty_results=1
+
+
+# OBSESS OVER SERVICE CHECKS OPTION
+# This determines whether or not Nagios will obsess over service
+# checks and run the ocsp_command defined below. Unless you're
+# planning on implementing distributed monitoring, do not enable
+# this option. Read the HTML docs for more information on
+# implementing distributed monitoring.
+# Values: 1 = obsess over services, 0 = do not obsess (default)
+
+obsess_over_services=0
+
+
+
+# OBSESSIVE COMPULSIVE SERVICE PROCESSOR COMMAND
+# This is the command that is run for every service check that is
+# processed by Nagios. This command is executed only if the
+# obsess_over_services option (above) is set to 1. The command
+# argument is the short name of a command definition that you
+# define in your host configuration file. Read the HTML docs for
+# more information on implementing distributed monitoring.
+
+#ocsp_command=somecommand
+
+
+
+# OBSESS OVER HOST CHECKS OPTION
+# This determines whether or not Nagios will obsess over host
+# checks and run the ochp_command defined below. Unless you're
+# planning on implementing distributed monitoring, do not enable
+# this option. Read the HTML docs for more information on
+# implementing distributed monitoring.
+# Values: 1 = obsess over hosts, 0 = do not obsess (default)
+
+obsess_over_hosts=0
+
+
+
+# OBSESSIVE COMPULSIVE HOST PROCESSOR COMMAND
+# This is the command that is run for every host check that is
+# processed by Nagios. This command is executed only if the
+# obsess_over_hosts option (above) is set to 1. The command
+# argument is the short name of a command definition that you
+# define in your host configuration file. Read the HTML docs for
+# more information on implementing distributed monitoring.
+
+#ochp_command=somecommand
+
+
+
+# TRANSLATE PASSIVE HOST CHECKS OPTION
+# This determines whether or not Nagios will translate
+# DOWN/UNREACHABLE passive host check results into their proper
+# state for this instance of Nagios. This option is useful
+# if you have distributed or failover monitoring setup. In
+# these cases your other Nagios servers probably have a different
+# "view" of the network, with regards to the parent/child relationship
+# of hosts. If a distributed monitoring server thinks a host
+# is DOWN, it may actually be UNREACHABLE from the point of
+# this Nagios instance. Enabling this option will tell Nagios
+# to translate any DOWN or UNREACHABLE host states it receives
+# passively into the correct state from the view of this server.
+# Values: 1 = perform translation, 0 = do not translate (default)
+
+translate_passive_host_checks=0
+
+
+
+# PASSIVE HOST CHECKS ARE SOFT OPTION
+# This determines whether or not Nagios will treat passive host
+# checks as being HARD or SOFT. By default, a passive host check
+# result will put a host into a HARD state type. This can be changed
+# by enabling this option.
+# Values: 0 = passive checks are HARD, 1 = passive checks are SOFT
+
+passive_host_checks_are_soft=0
+
+
+
+# ORPHANED HOST/SERVICE CHECK OPTIONS
+# These options determine whether or not Nagios will periodically
+# check for orphaned host service checks. Since service checks are
+# not rescheduled until the results of their previous execution
+# instance are processed, there exists a possibility that some
+# checks may never get rescheduled. A similar situation exists for
+# host checks, although the exact scheduling details differ a bit
+# from service checks. Orphaned checks seem to be a rare
+# problem and should not happen under normal circumstances.
+# If you have problems with service checks never getting
+# rescheduled, make sure you have orphaned service checks enabled.
+# Values: 1 = enable checks, 0 = disable checks
+
+check_for_orphaned_services=1
+check_for_orphaned_hosts=1
+
+
+
+# SERVICE FRESHNESS CHECK OPTION
+# This option determines whether or not Nagios will periodically
+# check the "freshness" of service results. Enabling this option
+# is useful for ensuring passive checks are received in a timely
+# manner.
+# Values: 1 = enabled freshness checking, 0 = disable freshness checking
+
+check_service_freshness=1
+
+
+
+# SERVICE FRESHNESS CHECK INTERVAL
+# This setting determines how often (in seconds) Nagios will
+# check the "freshness" of service check results. If you have
+# disabled service freshness checking, this option has no effect.
+
+service_freshness_check_interval=60
+
+
+
+# SERVICE CHECK TIMEOUT STATE
+# This setting determines the state Nagios will report when a
+# service check times out - that is does not respond within
+# service_check_timeout seconds. This can be useful if a
+# machine is running at too high a load and you do not want
+# to consider a failed service check to be critical (the default).
+# Valid settings are:
+# c - Critical (default)
+# u - Unknown
+# w - Warning
+# o - OK
+
+service_check_timeout_state=c
+
+
+
+# HOST FRESHNESS CHECK OPTION
+# This option determines whether or not Nagios will periodically
+# check the "freshness" of host results. Enabling this option
+# is useful for ensuring passive checks are received in a timely
+# manner.
+# Values: 1 = enabled freshness checking, 0 = disable freshness checking
+
+check_host_freshness=0
+
+
+
+# HOST FRESHNESS CHECK INTERVAL
+# This setting determines how often (in seconds) Nagios will
+# check the "freshness" of host check results. If you have
+# disabled host freshness checking, this option has no effect.
+
+host_freshness_check_interval=60
+
+
+
+
+# ADDITIONAL FRESHNESS THRESHOLD LATENCY
+# This setting determines the number of seconds that Nagios
+# will add to any host and service freshness thresholds that
+# it calculates (those not explicitly specified by the user).
+
+additional_freshness_latency=15
+
+
+
+
+# FLAP DETECTION OPTION
+# This option determines whether or not Nagios will try
+# and detect hosts and services that are "flapping".
+# Flapping occurs when a host or service changes between
+# states too frequently. When Nagios detects that a
+# host or service is flapping, it will temporarily suppress
+# notifications for that host/service until it stops
+# flapping. Flap detection is very experimental, so read
+# the HTML documentation before enabling this feature!
+# Values: 1 = enable flap detection
+# 0 = disable flap detection (default)
+
+enable_flap_detection=1
+
+
+
+# FLAP DETECTION THRESHOLDS FOR HOSTS AND SERVICES
+# Read the HTML documentation on flap detection for
+# an explanation of what this option does. This option
+# has no effect if flap detection is disabled.
+
+low_service_flap_threshold=5.0
+high_service_flap_threshold=20.0
+low_host_flap_threshold=5.0
+high_host_flap_threshold=20.0
+
+
+
+# DATE FORMAT OPTION
+# This option determines how short dates are displayed. Valid options
+# include:
+# us (MM-DD-YYYY HH:MM:SS)
+# euro (DD-MM-YYYY HH:MM:SS)
+# iso8601 (YYYY-MM-DD HH:MM:SS)
+# strict-iso8601 (YYYY-MM-DDTHH:MM:SS)
+#
+
+date_format=us
+
+
+
+
+# TIMEZONE OFFSET
+# This option is used to override the default timezone that this
+# instance of Nagios runs in. If not specified, Nagios will use
+# the system configured timezone.
+#
+# NOTE: In order to display the correct timezone in the CGIs, you
+# will also need to alter the Apache directives for the CGI path
+# to include your timezone. Example:
+#
+#
+# SetEnv TZ "Australia/Brisbane"
+# ...
+#
+
+#use_timezone=US/Mountain
+#use_timezone=Australia/Brisbane
+
+
+
+# ILLEGAL OBJECT NAME CHARACTERS
+# This option allows you to specify illegal characters that cannot
+# be used in host names, service descriptions, or names of other
+# object types.
+
+illegal_object_name_chars=`~!$%^&*|'"<>?,()=
+
+
+
+# ILLEGAL MACRO OUTPUT CHARACTERS
+# This option allows you to specify illegal characters that are
+# stripped from macros before being used in notifications, event
+# handlers, etc. This DOES NOT affect macros used in service or
+# host check commands.
+# The following macros are stripped of the characters you specify:
+# $HOSTOUTPUT$
+# $LONGHOSTOUTPUT$
+# $HOSTPERFDATA$
+# $HOSTACKAUTHOR$
+# $HOSTACKCOMMENT$
+# $SERVICEOUTPUT$
+# $LONGSERVICEOUTPUT$
+# $SERVICEPERFDATA$
+# $SERVICEACKAUTHOR$
+# $SERVICEACKCOMMENT$
+
+illegal_macro_output_chars=`~$&|'"<>
+
+
+
+# REGULAR EXPRESSION MATCHING
+# This option controls whether or not regular expression matching
+# takes place in the object config files. Regular expression
+# matching is used to match host, hostgroup, service, and service
+# group names/descriptions in some fields of various object types.
+# Values: 1 = enable regexp matching, 0 = disable regexp matching
+
+use_regexp_matching=0
+
+
+
+# "TRUE" REGULAR EXPRESSION MATCHING
+# This option controls whether or not "true" regular expression
+# matching takes place in the object config files. This option
+# only has an effect if regular expression matching is enabled
+# (see above). If this option is DISABLED, regular expression
+# matching only occurs if a string contains wildcard characters
+# (* and ?). If the option is ENABLED, regexp matching occurs
+# all the time (which can be annoying).
+# Values: 1 = enable true matching, 0 = disable true matching
+
+use_true_regexp_matching=0
+
+
+
+# ADMINISTRATOR EMAIL/PAGER ADDRESSES
+# The email and pager address of a global administrator (likely you).
+# Nagios never uses these values itself, but you can access them by
+# using the $ADMINEMAIL$ and $ADMINPAGER$ macros in your notification
+# commands.
+
+admin_email=nagios@localhost
+admin_pager=pagenagios@localhost
+
+
+
+# DAEMON CORE DUMP OPTION
+# This option determines whether or not Nagios is allowed to create
+# a core dump when it runs as a daemon. Note that it is generally
+# considered bad form to allow this, but it may be useful for
+# debugging purposes. Enabling this option doesn't guarantee that
+# a core file will be produced, but that's just life...
+# Values: 1 - Allow core dumps
+# 0 - Do not allow core dumps (default)
+
+daemon_dumps_core=0
+
+
+
+# LARGE INSTALLATION TWEAKS OPTION
+# This option determines whether or not Nagios will take some shortcuts
+# which can save on memory and CPU usage in large Nagios installations.
+# Read the documentation for more information on the benefits/tradeoffs
+# of enabling this option.
+# Values: 1 - Enabled tweaks
+# 0 - Disable tweaks (default)
+
+use_large_installation_tweaks=0
+
+
+
+# ENABLE ENVIRONMENT MACROS
+# This option determines whether or not Nagios will make all standard
+# macros available as environment variables when host/service checks
+# and system commands (event handlers, notifications, etc.) are
+# executed.
+# Enabling this is a very bad idea for anything but very small setups,
+# as it means plugins, notification scripts and eventhandlers may run
+# out of environment space. It will also cause a significant increase
+# in CPU- and memory usage and drastically reduce the number of checks
+# you can run.
+# Values: 1 - Enable environment variable macros
+# 0 - Disable environment variable macros (default)
+
+enable_environment_macros=0
+
+
+
+# CHILD PROCESS MEMORY OPTION
+# This option determines whether or not Nagios will free memory in
+# child processes (processed used to execute system commands and host/
+# service checks). If you specify a value here, it will override
+# program defaults.
+# Value: 1 - Free memory in child processes
+# 0 - Do not free memory in child processes
+
+#free_child_process_memory=1
+
+
+
+# CHILD PROCESS FORKING BEHAVIOR
+# This option determines how Nagios will fork child processes
+# (used to execute system commands and host/service checks). Normally
+# child processes are fork()ed twice, which provides a very high level
+# of isolation from problems. Fork()ing once is probably enough and will
+# save a great deal on CPU usage (in large installs), so you might
+# want to consider using this. If you specify a value here, it will
+# program defaults.
+# Value: 1 - Child processes fork() twice
+# 0 - Child processes fork() just once
+
+#child_processes_fork_twice=1
+
+
+
+# DEBUG LEVEL
+# This option determines how much (if any) debugging information will
+# be written to the debug file. OR values together to log multiple
+# types of information.
+# Values:
+# -1 = Everything
+# 0 = Nothing
+# 1 = Functions
+# 2 = Configuration
+# 4 = Process information
+# 8 = Scheduled events
+# 16 = Host/service checks
+# 32 = Notifications
+# 64 = Event broker
+# 128 = External commands
+# 256 = Commands
+# 512 = Scheduled downtime
+# 1024 = Comments
+# 2048 = Macros
+
+debug_level=0
+
+
+
+# DEBUG VERBOSITY
+# This option determines how verbose the debug log out will be.
+# Values: 0 = Brief output
+# 1 = More detailed
+# 2 = Very detailed
+
+debug_verbosity=1
+
+
+
+# DEBUG FILE
+# This option determines where Nagios should write debugging information.
+
+debug_file=/var/spool/nagios/nagios.debug
+
+
+
+# MAX DEBUG FILE SIZE
+# This option determines the maximum size (in bytes) of the debug file. If
+# the file grows larger than this size, it will be renamed with a .old
+# extension. If a file already exists with a .old extension it will
+# automatically be deleted. This helps ensure your disk space usage doesn't
+# get out of control when debugging Nagios.
+
+max_debug_file_size=1000000
+
+
+
+# Should we allow hostgroups to have no hosts, we default this to off since
+# that was the old behavior
+
+allow_empty_hostgroup_assignment=0
+
+
+
+# Normally worker count is dynamically allocated based on 1.5 * number of cpu's
+# with a minimum of 4 workers. This value will override the defaults
+
+#check_workers=3
+
+
+
+# DISABLE SERVICE CHECKS WHEN HOST DOWN
+# This option will disable all service checks if the host is not in an UP state
+#
+# While desirable in some environments, enabling this value can distort report
+# values as the expected quantity of checks will not have been performed
+
+#host_down_disable_service_checks=0
+
+
+
+# EXPERIMENTAL load controlling options
+# To get current defaults based on your system issue a command to
+# the query handler. Please note that this is an experimental feature
+# and not meant for production use. Used incorrectly it can induce
+# enormous latency.
+# #core loadctl
+# jobs_max - The maximum amount of jobs to run at one time
+# jobs_min - The minimum amount of jobs to run at one time
+# jobs_limit - The maximum amount of jobs the current load lets us run
+# backoff_limit - The minimum backoff_change
+# backoff_change - # of jobs to remove from jobs_limit when backing off
+# rampup_limit - Minimum rampup_change
+# rampup_change - # of jobs to add to jobs_limit when ramping up
+# NOTE: The backoff_limit and rampup_limit are NOT used by anything currently,
+# so if your system is under load nothing will actively modify the jobs
+# even if you have these options enabled, they are for external
+# connector information only. However, if you change the jobs_max or
+# jobs_min manually here or through the query handler interface that
+# WILL affect your system
+#loadctl_options=jobs_max=100;backoff_limit=10;rampup_change=5
diff --git a/tests/UTF_Files b/tests/UTF_Files
index ef73186..b087bd2 100644
--- a/tests/UTF_Files
+++ b/tests/UTF_Files
@@ -4,4 +4,5 @@
./.yardoc/objects/root.dat: data
./doc/css/style.css: HTML document, UTF-8 Unicode text, with very long lines
./doc/js/jquery.js: HTML document, UTF-8 Unicode text, with very long lines
+./doc/puppet_classes/cd_nagios_3A_3Aparams.html: HTML document, UTF-8 Unicode text
./templates/httpd/index_html.erb: empty