OP#407 initial commit with reset
This commit is contained in:
@@ -1,48 +0,0 @@
|
||||
## cd_nagios::certbot::certs.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages all configuration files required for cd_nagios.
|
||||
##############################################################################
|
||||
class cd_nagios::certbot::certs (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
if $ng_use_https == true {
|
||||
if $ng_enable_certbot == true {
|
||||
require cd_certbot
|
||||
require cd_apache
|
||||
|
||||
if $ng_include_fw == true {
|
||||
require cd_nagios::firewall::iptables
|
||||
}
|
||||
|
||||
# create cert
|
||||
|
||||
exec { 'create_cert':
|
||||
command => template($ng_get_cert_erb),
|
||||
cwd => '/tmp',
|
||||
path => ['/bin','/usr/bin'],
|
||||
provider => 'shell',
|
||||
unless => template('cd_nagios/certbot/unless_get_cert.erb'),
|
||||
notify => Service['httpd'],
|
||||
creates => $ng_certbot_check,
|
||||
}
|
||||
|
||||
# renew certs
|
||||
|
||||
exec { 'renew_cert':
|
||||
command => 'certbot renew',
|
||||
cwd => '/tmp',
|
||||
path => ['/bin','/usr/bin','/opt/'],
|
||||
provider => 'shell',
|
||||
notify => Service['httpd'],
|
||||
unless => template($ng_unless_renew_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
# do nothing as we are not using https and certbot is not required then
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,124 +0,0 @@
|
||||
## cd_nagios::client::target.pp
|
||||
# Module name: nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary CLass manages Nagios targets for cd_nagios.
|
||||
###############################################################################
|
||||
class cd_nagios::client::target (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn != $ng_nagios_server {
|
||||
if $ng_include_nrpe == true {
|
||||
require cd_nagios::main::user
|
||||
require cd_nrpe
|
||||
|
||||
@@nagios_host { $::fqdn:
|
||||
ensure => $ng_ping_ensure,
|
||||
alias => $::hostname,
|
||||
address => $::fqdn,
|
||||
use => 'linux-server',
|
||||
target => $ng_target_host,
|
||||
hostgroups => 'linux-servers',
|
||||
contacts => 'ops',
|
||||
max_check_attempts => $ng_max_check_attempts,
|
||||
notification_period => '24x7',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
||||
notify => Service[$ng_user],
|
||||
}
|
||||
|
||||
@@nagios_service { "root_partition_${::hostname}":
|
||||
ensure => $ng_disk_ensure,
|
||||
check_command => "check_nrpe!check_disk!${ng_disk_warn}!${ng_disk_crit}!/",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_root_partition",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
if $ng_enable_swap_check == true {
|
||||
@@nagios_service { "Swap_Usage_${::hostname}":
|
||||
ensure => $ng_swap_ensure,
|
||||
check_command => "check_nrpe!check_swap!${ng_swap_warn}!${ng_swap_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_swap_usage",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
}
|
||||
|
||||
@@nagios_service { "Local_Users_${::hostname}":
|
||||
ensure => $ng_users_ensure,
|
||||
check_command => "check_nrpe!check_users!${ng_users_warn}!${ng_users_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_local_users",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Total Processes_${::hostname}":
|
||||
ensure => $ng_procs_tot_ens,
|
||||
check_command => "check_nrpe!check_procs!${ng_procs_tot_warn}!${ng_procs_tot_crit}!${ng_procs_tot_param}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_total_processes",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Zombie Processes_${::hostname}":
|
||||
ensure => $ng_procs_z_ensure,
|
||||
check_command => "check_nrpe!check_procs!${ng_procs_z_warn}!${ng_procs_z_crit}!${ng_procs_z_param}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_zombie_processes",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Current_Load_${::hostname}":
|
||||
ensure => $ng_load_ensure,
|
||||
check_command => "check_nrpe!check_load!${ng_load_warn}!${ng_load_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_current_load",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
## cd_nagios::firewall::iptables.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary manage firewall settings through cd_firewall or puppetlabs-firewall
|
||||
###############################################################################
|
||||
class cd_nagios::firewall::iptables (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
if $ng_use_https != true {
|
||||
include confdroid_infrastructure::firewall::http
|
||||
|
||||
if $ng_use_https == true {
|
||||
include confdroid_infrastructure::firewall::https
|
||||
if $ng_http_https_fw == true {
|
||||
include confdroid_infrastructure::firewall::http
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
## cd_nagios::init.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@confdroid.com)
|
||||
# @summary Class initializes the cd_nagios Module.
|
||||
## confdroid_nagios::init.pp
|
||||
# Module name: confdroid_nagios
|
||||
# Author: 12ww1160 (12ww1160@confdroid.com)
|
||||
# @summary Class initializes the confdroid_nagios Module.
|
||||
##############################################################################
|
||||
class cd_nagios {
|
||||
include cd_nagios::params
|
||||
class confdroid_nagios {
|
||||
include confdroid_nagios::params
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
## cd_nagios::main::config.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages all aspects of configuring the module logic for
|
||||
# cd_nagios.
|
||||
##############################################################################
|
||||
class cd_nagios::main::config (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
# manage server configuration
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
include cd_nagios::server::service
|
||||
|
||||
if $ng_include_fw == true {
|
||||
include cd_nagios::firewall::iptables
|
||||
}
|
||||
|
||||
if $ng_use_selinux_tools == true {
|
||||
include cd_nagios::selinux::config
|
||||
}
|
||||
|
||||
if $ng_enable_certbot == true {
|
||||
require cd_nagios::certbot::certs
|
||||
}
|
||||
}
|
||||
|
||||
if $::fqdn != $ng_nagios_server {
|
||||
include cd_nagios::client::target
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
## cd_nagios::main::dirs.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages all directories required for cd_nagios.
|
||||
###############################################################################
|
||||
class cd_nagios::main::dirs (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
require cd_nagios::main::user
|
||||
|
||||
# main directory
|
||||
|
||||
file { $ng_main_dir:
|
||||
ensure => directory,
|
||||
path => $ng_main_dir,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# /usr/lib64/nagios dir required for plugins
|
||||
|
||||
file { $ng_lib_dir:
|
||||
ensure => directory,
|
||||
path => $ng_lib_dir,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => lib_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# /var/spool/nagios
|
||||
|
||||
file { $ng_spool_dir:
|
||||
ensure => directory,
|
||||
path => $ng_spool_dir,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0755',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_spool_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# /etc/nagios/conf.d
|
||||
|
||||
file { $ng_conf_d_dir:
|
||||
ensure => directory,
|
||||
path => $ng_conf_d_dir,
|
||||
owner => 'root',
|
||||
group => $ng_user,
|
||||
mode => '0750',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# /etc/nagios/objects
|
||||
|
||||
file { $ng_objects_dir:
|
||||
ensure => directory,
|
||||
path => $ng_objects_dir,
|
||||
owner => 'root',
|
||||
group => $ng_user,
|
||||
mode => '0750',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# /etc/nagios/private
|
||||
|
||||
file { $ng_private_dir:
|
||||
ensure => directory,
|
||||
path => $ng_private_dir,
|
||||
owner => 'root',
|
||||
group => $ng_user,
|
||||
mode => '0750',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# include dir
|
||||
|
||||
file { $ng_usr_incl:
|
||||
ensure => directory,
|
||||
path => $ng_usr_incl,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => usr_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# log dir
|
||||
|
||||
file { $ng_log_dir:
|
||||
ensure => directory,
|
||||
path => $ng_log_dir,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0750',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_log_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# log archives
|
||||
|
||||
file { $ng_log_archives:
|
||||
ensure => directory,
|
||||
path => $ng_log_archives,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0750',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_log_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# /usr/share/nagios
|
||||
|
||||
file { $ng_usr_share:
|
||||
ensure => directory,
|
||||
path => $ng_usr_share,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => usr_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# /usr/share/nagios/html
|
||||
|
||||
file { $ng_share_html:
|
||||
ensure => directory,
|
||||
path => $ng_share_html,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => usr_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# run dir for pid file
|
||||
|
||||
file { $ng_run_dir:
|
||||
ensure => directory,
|
||||
path => $ng_run_dir,
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0750',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_var_run_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# cmd dir
|
||||
|
||||
file { $ng_cmd_dir:
|
||||
ensure => directory,
|
||||
path => $ng_cmd_dir,
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0775',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_spool_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
|
||||
# checkresults dir
|
||||
|
||||
file { $ng_checkresults_dir:
|
||||
ensure => directory,
|
||||
path => $ng_checkresults_dir,
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0770',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_spool_t,
|
||||
seluser => system_u,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
## cd_nagios::main::install.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manage all aspects of installing binaries required for
|
||||
# cd_nagios
|
||||
###############################################################################
|
||||
class cd_nagios::main::install (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
|
||||
require cd_resources
|
||||
|
||||
# if our FQDN matches the configured Nagios server FQDN, install both server-
|
||||
# and client packages.
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
|
||||
# we'll need httpd installed
|
||||
require cd_apache
|
||||
|
||||
package {$reqpackages_server:
|
||||
ensure => $pkg_ensure,
|
||||
}
|
||||
package {$reqpackages_client:
|
||||
ensure => $pkg_ensure,
|
||||
}
|
||||
}
|
||||
|
||||
# if we are not the nagios server, install client packages
|
||||
|
||||
if $::fqdn != $ng_nagios_server {
|
||||
package {$reqpackages_client:
|
||||
ensure => $pkg_ensure,
|
||||
}
|
||||
|
||||
# if we want to use NRPE, install it
|
||||
|
||||
if $ng_include_nrpe == true {
|
||||
require cd_nrpe
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
## cd_nagios::main::user.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages service users for cd_nagios.
|
||||
#############################################################################
|
||||
class cd_nagios::main::user (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
require cd_nagios::main::install
|
||||
|
||||
group { $ng_user:
|
||||
ensure => present,
|
||||
name => $ng_user,
|
||||
gid => $ng_u_uid,
|
||||
allowdupe => false,
|
||||
}
|
||||
|
||||
user { $ng_user:
|
||||
ensure => present,
|
||||
name => $ng_user,
|
||||
allowdupe => false,
|
||||
comment => $ng_u_comment,
|
||||
uid => $ng_u_uid,
|
||||
gid => $ng_user,
|
||||
groups => $ng_u_groups,
|
||||
managehome => true,
|
||||
home => $ng_user_home,
|
||||
shell => $ng_user_shell,
|
||||
require => Group[$ng_user],
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_contact.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Define manages additional contacts known to NAGIOS through external
|
||||
# Puppet rules, and populates /etc/nagios/conf.d/nagios_add_contact.cfg.
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_contact { 'example_user':
|
||||
# ng_contact_name => 'example_user',
|
||||
# ng_contact_alias => 'Example User',
|
||||
# ng_contact_groups => 'admins',
|
||||
# ng_contact_email => 'example@example.net',
|
||||
# }
|
||||
# @param [string] ng_contact_name Specify the contact short name.
|
||||
# @param [string] ng_contact_use which contact template to use
|
||||
# @param [string] ng_contact_alias Specify the contact alias (long name).
|
||||
# @param [string] ng_contact_email Specify the contact email address.
|
||||
# @param [string] ng_contact_groups specify the contact group for the contact.
|
||||
################################################################################
|
||||
define cd_nagios::nagios::objects::add_contact (
|
||||
|
||||
Optional[String] $ng_contact_name = undef,
|
||||
String $ng_contact_use = 'generic-contact',
|
||||
Optional[String] $ng_contact_alias = undef,
|
||||
Optional[String] $ng_contact_email = undef,
|
||||
Optional[String] $ng_contact_groups = undef,
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $::cd_nagios::params::ng_nagios_server
|
||||
$ng_target_add_contact = $::cd_nagios::params::ng_target_add_contact
|
||||
$ng_contacts_rule_erb = $::cd_nagios::params::ng_contacts_rule_erb
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
concat::fragment { $name:
|
||||
target => $ng_target_add_contact,
|
||||
content => template($ng_contacts_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_contact_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages /etc/nagios/conf.d/nagios_add_contact.cfg through
|
||||
# concat.
|
||||
# @example cd_nagios::nagios::objects::add_contact { 'example_user':
|
||||
# ng_contact_name => 'example_user',
|
||||
# ng_contact_alias => 'Example User',
|
||||
# ng_contact_groups => 'admins',
|
||||
# ng_contact_email => 'example@example.net',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::add_contact_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios/conf.d/nagios_add_contacts.cfg
|
||||
|
||||
concat { $ng_target_add_contact:
|
||||
ensure => present,
|
||||
path => $ng_target_add_contact,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# manage file header
|
||||
|
||||
concat::fragment { 'contact_header':
|
||||
target => $ng_target_add_contact,
|
||||
content => template($ng_contacts_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_contactgroups.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Define populates /etc/nagios/conf.d/nagios_add_contactgroups through
|
||||
# external puppet rules.
|
||||
# @param [string] ng_contactgroup_name Specify the short name of the
|
||||
# contact group.
|
||||
# @param [string] ng_contactgroup_alias Specify the alias (long name) of the
|
||||
# contact group
|
||||
# @param [string] ng_contactgroup_register Specify whether the contact group
|
||||
# should be registered in Nagios.
|
||||
################################################################################
|
||||
define cd_nagios::nagios::objects::add_contactgroups (
|
||||
|
||||
Optional[String] $ng_contactgroup_name = undef,
|
||||
Optional[String] $ng_contactgroup_alias = undef,
|
||||
String $ng_contactgroup_register = '1',
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_tgt_contactgroup_add = $cd_nagios::params::ng_tgt_contactgroup_add
|
||||
$ng_cntctgrps_rule_erb = $cd_nagios::params::ng_cntctgrps_rule_erb
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
concat::fragment { $name:
|
||||
target => $ng_tgt_contactgroup_add,
|
||||
content => template($ng_cntctgrps_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_contactgroups_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages /etc/nagios/conf.d/nagios_add_contactgroups.cfg file
|
||||
# and populates through define and external puppet rules
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_contactgroups { 'example_group':
|
||||
# ng_contactgroup_name => 'example_group',
|
||||
# ng_contactgroup_alias => 'Example Group',
|
||||
# ng_contactgroup_register => '1',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::add_contactgroups_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios/conf.d/nagios_add_contactgroups.cfg
|
||||
|
||||
concat { $ng_tgt_contactgroup_add:
|
||||
ensure => present,
|
||||
path => $ng_tgt_contactgroup_add,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# manage file header
|
||||
|
||||
concat::fragment { 'contactgroups_header':
|
||||
target => $ng_tgt_contactgroup_add,
|
||||
content => template($ng_cntctgrps_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_hostgroup_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages /etc/nagios_conf.d/nagios_hostgroups_add.cfg and
|
||||
# additional hostgroups through external Puppet rules via define.
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_hostgroups { 'example_hostgroup':
|
||||
# ng_hostgroup_name => 'example_hostgroup',
|
||||
# ng_hostgroup_alias => 'Example Hostgroup',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::add_hostgroup_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios_conf.d/nagios_hostgroups_add.cfg
|
||||
|
||||
concat { $ng_tgt_hostgroup_add:
|
||||
ensure => present,
|
||||
path => $ng_tgt_hostgroup_add,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# manage file header
|
||||
|
||||
concat::fragment { 'hostgroups_header':
|
||||
target => $ng_tgt_hostgroup_add,
|
||||
content => template($ng_tgt_hostgrp_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_hostgroups.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary define populates /etc/nagios/conf.d/nagios_hostgroups_add through
|
||||
# external Puppet rules.
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_hostgroups { 'example_hostgroup':
|
||||
# ng_hostgroup_name => 'example_hostgroup',
|
||||
# ng_hostgroup_alias => 'Example Hostgroup',
|
||||
# }
|
||||
# @param [string] ng_hostgroup_name Specify the hostgroup short name.
|
||||
# @param [string] ng_hostgroup_alias Specify the hostgroup alias (long name).
|
||||
# @param [string] ng_hostgroup_register Whether to register the hostgroup.
|
||||
###############################################################################
|
||||
define cd_nagios::nagios::objects::add_hostgroups (
|
||||
|
||||
Optional[String] $ng_hostgroup_name = undef,
|
||||
Optional[String] $ng_hostgroup_alias = undef,
|
||||
String $ng_hostgroup_register = '1',
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_tgt_hostgroup_add = $cd_nagios::params::ng_tgt_hostgroup_add
|
||||
$ng_tgt_hostgrp_rule_erb = $cd_nagios::params::ng_tgt_hostgrp_rule_erb
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
concat::fragment { $name:
|
||||
target => $ng_tgt_hostgroup_add,
|
||||
content => template($ng_tgt_hostgrp_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_servicegroup_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages /etc/nagios_conf.d/nagios_servicegroups_add.cfg and
|
||||
# additional servicegroups through external Puppet rules via define.
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_servicegroups { 'example_servicegroup':
|
||||
# ng_servicegroup_name => 'example_servicegroup',
|
||||
# ng_servicegroup_alias => 'Example Servicegroup',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::add_servicegroup_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios_conf.d/nagios_servicegroups_add.cfg
|
||||
|
||||
concat { $ng_tgt_servicegroup_add:
|
||||
ensure => present,
|
||||
path => $ng_tgt_servicegroup_add,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# manage file header
|
||||
|
||||
concat::fragment { 'servicegroups_header':
|
||||
target => $ng_tgt_servicegroup_add,
|
||||
content => template($ng_tgt_svcgrp_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_servicegroups.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# # License:
|
||||
# @summary define populates /etc/nagios/conf.d/nagios_servicegroups_add through
|
||||
# external Puppet rules.
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_servicegroups { 'example_servicegroup':
|
||||
# ng_servicegroup_name => 'example_servicegroup',
|
||||
# ng_servicegroup_alias => 'Example servicegroup',
|
||||
# }
|
||||
# @param [string] ng_servicegroup_name Specify the servicegroup short name
|
||||
# @param [string] ng_servicegroup_alias Specify the servicegroup alias
|
||||
# (long name).
|
||||
# @param [string] ng_servicegroup_register Whether you want to register the
|
||||
# servicegroup
|
||||
###############################################################################
|
||||
define cd_nagios::nagios::objects::add_servicegroups (
|
||||
|
||||
Optional[String] $ng_servicegroup_name = undef,
|
||||
Optional[String] $ng_servicegroup_alias = undef,
|
||||
String $ng_servicegroup_register = '1',
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_tgt_servicegroup_add = $cd_nagios::params::ng_tgt_servicegroup_add
|
||||
$ng_tgt_svcgrp_rule_erb = $cd_nagios::params::ng_tgt_svcgrp_rule_erb
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
concat::fragment { $name:
|
||||
target => $ng_tgt_servicegroup_add,
|
||||
content => template($ng_tgt_svcgrp_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
# cd_nagios::nagios::objects::add_timeperiod_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages /etc/nagios_conf.d/nagios_timeperiods_add.cfg and
|
||||
# add. hostgroups through external Puppet rules via define.
|
||||
# @example cd_nagios::nagios::objects::add_timeperiods { 'example_timeperiod':
|
||||
# ng_timep_name => 'example_timeperiod',
|
||||
# ng_timep_alias => 'Example timeperiod',
|
||||
# ng_timep_monday => '00:00-00:00',
|
||||
# ng_timep_tuesday => '00:00-00:00',
|
||||
# ng_timep_wednesday => '00:00-00:00',
|
||||
# ng_timep_thursday => '00:00-00:00',
|
||||
# ng_timep_friday => '00:00-00:00',
|
||||
# ng_timep_saturday => '00:00-00:00',
|
||||
# ng_timep_sunday => '00:00-00:00',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::add_timeperiod_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios/conf.d/nagios_timeperiods_add.cfg
|
||||
|
||||
concat { $ng_tgt_timep_add:
|
||||
ensure => present,
|
||||
path => $ng_tgt_timep_add,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# manage file header
|
||||
|
||||
concat::fragment { 'timeperiods_header':
|
||||
target => $ng_tgt_timep_add,
|
||||
content => template($ng_tgt_timep_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
## cd_nagios::nagios::objects::add_timeperiods.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary define populates /etc/nagios/conf.d/nagios_timeperiods_add through
|
||||
# extermal Puppet rules.
|
||||
# @example
|
||||
# cd_nagios::nagios::objects::add_timeperiods { 'example_timeperiod':
|
||||
# ng_timeperiod_name => 'example_timeperiod',
|
||||
# ng_timeperiod_alias => 'Example timeperiod',
|
||||
# ng_timep_monday => '00:00-00:00',
|
||||
# ng_timep_tuesday => '00:00-00:00',
|
||||
# ng_timep_wednesday => '00:00-00:00',
|
||||
# ng_timep_thursday => '00:00-00:00',
|
||||
# ng_timep_friday => '00:00-00:00',
|
||||
# ng_timep_saturday => '00:00-00:00',
|
||||
# ng_timep_sunday => '00:00-00:00',
|
||||
# }
|
||||
# @param [string] ng_timep_name Specify the timeperiod short name.
|
||||
# @param [string] ng_timep_alias Specify the timeperiod alias (long name)
|
||||
# @param [string] ng_timep_monday Specify the desired hours for Monday
|
||||
# @param [string] ng_timep_tuesday Specify the desired hours for Tuesday
|
||||
# @param [string] ng_timep_wednesday Specify the desired hours for Wednesday.
|
||||
# @param [string] ng_timep_thursday Specify the desired hours for Thursday
|
||||
# @param [string] ng_timep_friday Specify the desired hours for Friday
|
||||
# @param [string] ng_timep_saturday Specify the desired hours for Saturday
|
||||
# @param [string] ng_timep_sunday Specify the desired hours for Sunday.
|
||||
###############################################################################
|
||||
define cd_nagios::nagios::objects::add_timeperiods (
|
||||
|
||||
Optional[String] $ng_timep_name = undef,
|
||||
Optional[String] $ng_timep_alias = undef,
|
||||
String $ng_timep_monday = '00:00-00:00',
|
||||
String $ng_timep_tuesday = '00:00-00:00',
|
||||
String $ng_timep_wednesday = '00:00-00:00',
|
||||
String $ng_timep_thursday = '00:00-00:00',
|
||||
String $ng_timep_friday = '00:00-00:00',
|
||||
String $ng_timep_saturday = '00:00-00:00',
|
||||
String $ng_timep_sunday = '00:00-00:00',
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_tgt_timep_add = $cd_nagios::params::ng_tgt_timep_add
|
||||
$ng_tgt_timep_rule_erb = $cd_nagios::params::ng_tgt_timep_rule_erb
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
concat::fragment { $name:
|
||||
target => $ng_tgt_timep_add,
|
||||
content => template($ng_tgt_timep_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,222 +0,0 @@
|
||||
## cd_nagios::nagios::objects::commands.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
|
||||
# @summary Class manages all commands known to NAGIOS through Puppet exports,
|
||||
# and populates /etc/nagios/conf.d/nagios_commands.cfg.
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::commands (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
@@nagios_command { 'notify-host-by-email':
|
||||
ensure => present,
|
||||
command_name => 'notify-host-by-email',
|
||||
command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTADDRESS$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTADDRESS$ is $HOSTSTATE$ **" $CONTACTEMAIL$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'notify-service-by-email':
|
||||
ensure => present,
|
||||
command_name => 'notify-service-by-email',
|
||||
command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check-host-alive':
|
||||
ensure => present,
|
||||
command_name => 'check-host-alive',
|
||||
command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_disk':
|
||||
ensure => present,
|
||||
command_name => 'check_disk',
|
||||
command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_local_load':
|
||||
ensure => present,
|
||||
command_name => 'check_local_load',
|
||||
command_line => '$USER1$/check_load -w $ARG1$ -c $ARG2$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_local_procs':
|
||||
ensure => present,
|
||||
command_name => 'check_local_procs',
|
||||
command_line => '$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_local_users':
|
||||
ensure => present,
|
||||
command_name => 'check_local_users',
|
||||
command_line => '$USER1$/check_users -w $ARG1$ -c $ARG2$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_local_swap':
|
||||
ensure => present,
|
||||
command_name => 'check_local_swap',
|
||||
command_line => '$USER1$/check_swap -w $ARG1$ -c $ARG2$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_ftp':
|
||||
ensure => present,
|
||||
command_name => 'check_ftp',
|
||||
command_line => '$USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_snmp':
|
||||
ensure => present,
|
||||
command_name => 'check_snmp',
|
||||
command_line => '$USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_http':
|
||||
ensure => present,
|
||||
command_name => 'check_http',
|
||||
command_line => '$USER1$/check_http -I $HOSTADDRESS$ $ARG1$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_ssh':
|
||||
ensure => present,
|
||||
command_name => 'check_ssh',
|
||||
command_line => '$USER1$/check_ssh $ARG1$ $HOSTADDRESS$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_ping':
|
||||
ensure => present,
|
||||
command_name => 'check_ping',
|
||||
command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_tcp':
|
||||
ensure => present,
|
||||
command_name => 'check_tcp',
|
||||
command_line => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_udp':
|
||||
ensure => present,
|
||||
command_name => 'check_udp',
|
||||
command_line => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_nrpe':
|
||||
ensure => present,
|
||||
command_name => 'check_nrpe',
|
||||
command_line => '$USER1$/check_nrpe -t 30 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_nagios':
|
||||
ensure => present,
|
||||
command_name => 'check_nagios',
|
||||
command_line => '$USER1$/check_nagios -F $ARG1$ -e $ARG2$ -C $ARG3$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_bandwidth':
|
||||
ensure => present,
|
||||
command_name => 'check_bandwidth',
|
||||
command_line => '$USER1$/check_bandwidth.sh -t 30 -H $HOSTADDRESS$ linux $ARG1$ $ARG2$ $ARG3$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'process-service-perfdata-file':
|
||||
ensure => present,
|
||||
command_name => 'process-service-perfdata-file',
|
||||
command_line => '/bin/mv /var/log/pnp4nagios/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'process-host-perfdata-file':
|
||||
ensure => present,
|
||||
command_name => 'process-host-perfdata-file',
|
||||
command_line => '/bin/mv /var/log/pnp4nagios/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
|
||||
@@nagios_command { 'check_ntp_time':
|
||||
ensure => present,
|
||||
command_name => 'check_ntp_time',
|
||||
command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$',
|
||||
owner => 'nagios',
|
||||
group => 'nagios',
|
||||
mode => '0640',
|
||||
target => $ng_target_command,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
## cd_nagios::server::nagios::objects::config.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages the nagios objects definitions.
|
||||
#############################################################################
|
||||
class cd_nagios::nagios::objects::config (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
require cd_nagios::nagios::objects::commands
|
||||
require cd_nagios::nagios::objects::template_rules
|
||||
require cd_nagios::nagios::objects::contacts
|
||||
require cd_nagios::nagios::objects::add_contact_rules
|
||||
require cd_nagios::nagios::objects::contactgroups
|
||||
require cd_nagios::nagios::objects::add_contactgroups_rules
|
||||
require cd_nagios::nagios::objects::hostgroups
|
||||
require cd_nagios::nagios::objects::add_hostgroup_rules
|
||||
require cd_nagios::nagios::objects::servicegroups
|
||||
require cd_nagios::nagios::objects::add_servicegroup_rules
|
||||
require cd_nagios::nagios::objects::timeperiods
|
||||
require cd_nagios::nagios::objects::add_timeperiod_rules
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
## cd_nagios::nagios::objects::contactgroups.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages base contactgroups which always should be there.
|
||||
# @example
|
||||
# @@nagios_contactgroup { 'admins':
|
||||
# ensure => present,
|
||||
# alias => 'Nagios Administrators',
|
||||
# contactgroup_name => 'admins',
|
||||
# owner => $ng_user,
|
||||
# group => $ng_user,
|
||||
# mode => '0640',
|
||||
# register => '1',
|
||||
# target => $ng_tgt_contactgroup_base,
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::contactgroups (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
@@nagios_contactgroup { 'admins':
|
||||
ensure => present,
|
||||
alias => 'Nagios Administrators',
|
||||
contactgroup_name => 'admins',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_contactgroup_base,
|
||||
}
|
||||
|
||||
@@nagios_contactgroup { 'operations':
|
||||
ensure => present,
|
||||
alias => 'Operations Team',
|
||||
contactgroup_name => 'operations',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_contactgroup_base,
|
||||
}
|
||||
|
||||
@@nagios_contactgroup { 'support':
|
||||
ensure => present,
|
||||
alias => 'Support Team',
|
||||
contactgroup_name => 'support',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_contactgroup_base,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
## cd_nagios::nagios::objects::contacts.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages basic contacts known to NAGIOS through Puppet exports,
|
||||
# and populates /etc/nagios/conf.d/nagios_base_contacts.cfg.
|
||||
# @example
|
||||
# @@nagios_contact { 'admin':
|
||||
# ensure => present,
|
||||
# alias => 'Nagios Admin',
|
||||
# contact_name => 'admin',
|
||||
# contactgroups => 'admins',
|
||||
# email => "admin@${::domain}",
|
||||
# can_submit_commands => '1',
|
||||
# register => '1',
|
||||
# use => 'generic-contact',
|
||||
# target => $ng_target_base_contact,
|
||||
# owner => 'root',
|
||||
# group => 'nagios',
|
||||
# mode => '0664',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::contacts (
|
||||
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
|
||||
# admin contact
|
||||
|
||||
@@nagios_contact { 'admin':
|
||||
ensure => present,
|
||||
alias => 'Nagios Admin',
|
||||
contact_name => 'admin',
|
||||
contactgroups => 'admins',
|
||||
email => "admin@${::domain}",
|
||||
can_submit_commands => '1',
|
||||
register => '1',
|
||||
use => 'generic-contact',
|
||||
target => $ng_target_base_contact,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
# ops contact
|
||||
|
||||
@@nagios_contact { 'ops':
|
||||
ensure => present,
|
||||
alias => 'Operations',
|
||||
contact_name => 'ops',
|
||||
contactgroups => 'operations',
|
||||
email => "ops@${::domain}",
|
||||
can_submit_commands => '1',
|
||||
register => '1',
|
||||
use => 'generic-contact',
|
||||
target => $ng_target_base_contact,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
# support contact
|
||||
|
||||
@@nagios_contact { 'support':
|
||||
ensure => present,
|
||||
alias => 'support',
|
||||
contact_name => 'support',
|
||||
contactgroups => 'support',
|
||||
email => "support@${::domain}",
|
||||
can_submit_commands => '1',
|
||||
register => '1',
|
||||
use => 'generic-contact',
|
||||
target => $ng_target_base_contact,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
## cd_nagios::nagios::objects::hostgroups.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages basic hostgroups known to NAGIOS through Puppet
|
||||
# exports, and populates /etc/nagios/conf.d/nagios_base_hostgroups.cfg.
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::hostgroups (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# linux servers
|
||||
|
||||
@@nagios_hostgroup { 'linux-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'linux-servers',
|
||||
alias => 'Linux Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
|
||||
# RHEL servers
|
||||
|
||||
@@nagios_hostgroup { 'rhel-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'rhel-servers',
|
||||
alias => 'RHEL Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# CentOS servers
|
||||
|
||||
@@nagios_hostgroup { 'centos-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'centos-servers',
|
||||
alias => 'CentOS Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# SuSE servers
|
||||
|
||||
@@nagios_hostgroup { 'suse-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'suse-servers',
|
||||
alias => 'SuSE Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# Unix servers
|
||||
|
||||
@@nagios_hostgroup { 'unix-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'unix-servers',
|
||||
alias => 'Unix Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# Solaris servers
|
||||
|
||||
@@nagios_hostgroup { 'solaris-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'solaris-servers',
|
||||
alias => 'Solaris Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# AIX servers
|
||||
|
||||
@@nagios_hostgroup { 'aix-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'aix-servers',
|
||||
alias => 'AIX Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# Windows servers
|
||||
|
||||
@@nagios_hostgroup { 'windows-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'windows-servers',
|
||||
alias => 'Windows Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# Netware servers
|
||||
|
||||
@@nagios_hostgroup { 'netware-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'netware-servers',
|
||||
alias => 'Netware Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# DB servers
|
||||
|
||||
@@nagios_hostgroup { 'db-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'db-servers',
|
||||
alias => 'DB Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# Oracle servers
|
||||
|
||||
@@nagios_hostgroup { 'oracle-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'oracle-servers',
|
||||
alias => 'Oracle Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# MySQL servers
|
||||
|
||||
@@nagios_hostgroup { 'mysql-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'mysql-servers',
|
||||
alias => 'MySQL Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# MSSQL servers
|
||||
|
||||
@@nagios_hostgroup { 'mssql-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'mssql-servers',
|
||||
alias => 'MSSQL Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# NOSQL servers
|
||||
|
||||
@@nagios_hostgroup { 'nosql-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'nosql-servers',
|
||||
alias => 'NOSQL Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
# Hadoop servers
|
||||
|
||||
@@nagios_hostgroup { 'hadoop-servers':
|
||||
ensure => present,
|
||||
hostgroup_name => 'hadoop-servers',
|
||||
alias => 'HADOOP Servers',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_hostgroup_base,
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
## cd_nagios::nagios::objects::servicegroups.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages basic hostgroups known to NAGIOS through Puppet
|
||||
# exports, and populates /etc/nagios/conf.d/nagios_base_hostgroups.cfg.
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::servicegroups (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# network services
|
||||
|
||||
@@nagios_servicegroup { 'network-services':
|
||||
ensure => present,
|
||||
servicegroup_name => 'network-services',
|
||||
alias => 'Network Services',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_svcgrp_base,
|
||||
}
|
||||
|
||||
# linux services
|
||||
|
||||
@@nagios_servicegroup { 'linux-services':
|
||||
ensure => present,
|
||||
servicegroup_name => 'linux-services',
|
||||
alias => 'Linux Services',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_svcgrp_base,
|
||||
}
|
||||
|
||||
# database services
|
||||
|
||||
@@nagios_servicegroup { 'database-services':
|
||||
ensure => present,
|
||||
servicegroup_name => 'database-services',
|
||||
alias => 'Database Services',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_target_svcgrp_base,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
## cd_nagios::nagios::objects::template_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages /etc/nagios/conf.d/nagios_templates.cfg through
|
||||
# concat.
|
||||
# @example cd_nagios::nagios::objects::templates { 'generic contact':
|
||||
# ng_template_object => 'contact',
|
||||
# ng_template_object_name => 'generic-contact',
|
||||
# }
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::template_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# create the templates.cfg file
|
||||
|
||||
concat { $ng_target_templates:
|
||||
ensure => present,
|
||||
path => $ng_target_templates,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
concat::fragment { 'template_header':
|
||||
target => $ng_target_templates,
|
||||
content => template($ng_templates_head_erb),
|
||||
order => '000',
|
||||
}
|
||||
|
||||
# basic templates
|
||||
cd_nagios::nagios::objects::templates { 'generic contact':
|
||||
ng_template_object => 'contact',
|
||||
ng_template_object_name => 'generic-contact',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'generic-host':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'generic-host',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'linux-server':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'linux-server',
|
||||
ng_template_object_use => 'generic-host',
|
||||
ng_notification_options => 'd,u,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'windows-server':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'windows-server',
|
||||
ng_template_object_use => 'generic-host',
|
||||
ng_notification_options => 'd,u,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'generic-switch':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'generic-switch',
|
||||
ng_template_object_use => 'generic-host',
|
||||
ng_notification_options => 'd,u,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'generic-printer':
|
||||
ng_template_object => 'host',
|
||||
ng_template_object_name => 'generic-printer',
|
||||
ng_template_object_use => 'generic-host',
|
||||
ng_notification_options => 'd,u,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'generic-service':
|
||||
ng_template_object => 'service',
|
||||
ng_template_object_name => 'generic-service',
|
||||
ng_max_check_attempts => '3',
|
||||
ng_notification_options => 'w,u,c,r',
|
||||
}
|
||||
cd_nagios::nagios::objects::templates { 'local-service':
|
||||
ng_template_object => 'service',
|
||||
ng_template_object_name => 'local-service',
|
||||
ng_max_check_attempts => '4',
|
||||
ng_template_object_use => 'generic-service',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
## cd_nagios::nagios::objects::templates.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Define manages populates /etc/nagios/conf.d/templates.cfg.
|
||||
# @param [String] ng_template_object the object type for the templates.
|
||||
# Valid options are `contact`, `host` and `service`.
|
||||
# @param [String] ng_template_object_name populates the name field,
|
||||
# i.e. `generic-contact`, `generic-host`, `generic-service`.
|
||||
# @param [String] ng_svc_notification_period Period in which to send out
|
||||
# notifications for service events, i.e. `24x7`.
|
||||
# @param [String] ng_host_notification_period Period in which to send out
|
||||
# notifications for host events , i.e. `24x7`.
|
||||
# @param [String] ng_service_notification_options What service events to send
|
||||
# out notifications for:
|
||||
# w = notify on WARNING service states,
|
||||
# u = notify on UNKNOWN service states,
|
||||
# c = notify on CRITICAL service states,
|
||||
# r = notify on service recoveries (OK states),
|
||||
# f = notify when the service starts and stops flapping.
|
||||
# n = none (the contact will not receive any type of service notifications).
|
||||
# @param [String] ng_host_notification_options What host events to send
|
||||
# out notifications for:
|
||||
# d = notify on DOWN host states,
|
||||
# u = notify on UNREACHABLE host states,
|
||||
# r = notify on host recoveries (UP states),
|
||||
# f = notify when the host starts and stops flapping,
|
||||
# s = notify when host or service scheduled downtime starts and ends.
|
||||
# n = none (the contact will not receive any type of host notifications).
|
||||
# @param [String] ng_service_notification_commands Command to use for
|
||||
# service event notification. Command must be defined in commands.cfg
|
||||
# @param [String] ng_host_notification_commands Command to use for
|
||||
# host event notification. Command must be defined in commands.cfg.
|
||||
# @param [String] ng_object_register Whether to register the object to Nagios.
|
||||
# Since this is a template definition, we do not want to register those.
|
||||
# @param [String] ng_template_object_use Which template to use for a given
|
||||
# host or service definition, i.e. `generic-host`, `generic-service` etc.
|
||||
# @param [String] ng_notifications_enabled Whether notifications are enabled.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_event_handler_enabled Whether event handlers are enabled.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_flap_detection_enabled Whether flap detection is enabled.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_process_perf_data Whether to process performance data.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_retain_status_information Whether to retain status
|
||||
# information. Valid options are `0` and `1`.
|
||||
# @param [String] ng_retain_nonstatus_information Whether to retain non-status
|
||||
# information. Valid options are `0` and `1`.
|
||||
# @param [String] ng_notification_period Which period in to send out
|
||||
# notifications. for the defined service or host.
|
||||
# @param [String] ng_notification_interval how often (in minutes) we should
|
||||
# resend notifications for the current status.
|
||||
# @param [String] ng_check_period Which period in to run checks for the defined
|
||||
# object.
|
||||
# @param [String] ng_max_check_attempts how often to check the defined object
|
||||
# maximal.
|
||||
# @param [String] ng_notification_options see `ng_service_notification_options`
|
||||
# and `ng_host_notification_options`.
|
||||
# @param [String] ng_contact_groups contact groups for the defined object.
|
||||
# Specified contact group must exit in contact_groups
|
||||
# @param [String] ng_active_checks_enabled Whether to enable active checks.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_passive_checks_enabled Whether to enable passive checks.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_parallelize_check Whether to parallelize checks
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_obsess_over_service Whether to obsess over the service.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_check_freshness Whether to check freshness.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_is_volatile Whether the service is volatile.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_check_interval How often to check the service
|
||||
# under normal conditions.
|
||||
# @param [String] ng_retry_interval Re-check the service every x minutes
|
||||
# until a hard state can be determined.
|
||||
# @param [String] ng_host_check_command the check command for host checks
|
||||
################################################################################
|
||||
define cd_nagios::nagios::objects::templates (
|
||||
Optional[String] $ng_template_object = undef,
|
||||
Optional[String] $ng_template_object_name = undef,
|
||||
String $ng_svc_notification_period = '24x7',
|
||||
String $ng_host_notification_period = '24x7',
|
||||
String $ng_service_notification_options = 'w,u,c,r,f,s',
|
||||
String $ng_host_notification_options = 'd,u,r,f,s',
|
||||
String $ng_service_notification_commands = 'notify-service-by-email',
|
||||
String $ng_host_notification_commands = 'notify-host-by-email',
|
||||
String $ng_object_register = '0',
|
||||
Optional[String] $ng_template_object_use = undef,
|
||||
String $ng_notifications_enabled = '1',
|
||||
String $ng_event_handler_enabled = '1',
|
||||
String $ng_flap_detection_enabled = '1',
|
||||
String $ng_process_perf_data = '1',
|
||||
String $ng_retain_status_information = '1',
|
||||
String $ng_retain_nonstatus_information = '1',
|
||||
String $ng_notification_period = '24x7',
|
||||
String $ng_notification_interval = '30',
|
||||
String $ng_check_period = '24x7',
|
||||
String $ng_check_interval = '5',
|
||||
String $ng_retry_interval = '1',
|
||||
String $ng_max_check_attempts = '10',
|
||||
String $ng_host_check_command = 'check-host-alive',
|
||||
Optional[String] $ng_notification_options = undef,
|
||||
String $ng_contact_groups = 'admins',
|
||||
String $ng_active_checks_enabled = '1',
|
||||
String $ng_passive_checks_enabled = '1',
|
||||
String $ng_parallelize_check = '1',
|
||||
String $ng_obsess_over_service = '1',
|
||||
String $ng_check_freshness = '0',
|
||||
String $ng_is_volatile = '0',
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_target_templates = $cd_nagios::params::ng_target_templates
|
||||
$ng_templates_rule_erb = $cd_nagios::params::ng_templates_rule_erb
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
concat::fragment { $name:
|
||||
target => $ng_target_templates,
|
||||
content => template($ng_templates_rule_erb),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
# cd_nagios::nagios::objects::timeperiods.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages main timeperiods for NAGIOS through Puppet exports,
|
||||
# and populates /etc/nagios/conf.d/nagios_timeperiods_base.cfg.
|
||||
################################################################################
|
||||
class cd_nagios::nagios::objects::timeperiods (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
@@nagios_timeperiod { '24x7':
|
||||
ensure => present,
|
||||
timeperiod_name => '24x7',
|
||||
alias => '24 Hours A Day, 7 Days A Week',
|
||||
monday => '00:00-24:00',
|
||||
tuesday => '00:00-24:00',
|
||||
wednesday => '00:00-24:00',
|
||||
thursday => '00:00-24:00',
|
||||
friday => '00:00-24:00',
|
||||
saturday => '00:00-24:00',
|
||||
sunday => '00:00-24:00',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_timeperiods_base,
|
||||
}
|
||||
|
||||
@@nagios_timeperiod { 'office_hours':
|
||||
ensure => present,
|
||||
timeperiod_name => 'office_hours',
|
||||
alias => 'Office hours only, 5 Days A Week 09-05',
|
||||
monday => '09:00-17:00',
|
||||
tuesday => '09:00-17:00',
|
||||
wednesday => '09:00-17:00',
|
||||
thursday => '09:00-17:00',
|
||||
friday => '09:00-17:00',
|
||||
saturday => '00:00-00:00',
|
||||
sunday => '00:00-00:00',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_timeperiods_base,
|
||||
}
|
||||
|
||||
@@nagios_timeperiod { 'out_of_hours':
|
||||
ensure => present,
|
||||
timeperiod_name => 'out_of_hours',
|
||||
alias => 'Outside Office hours only',
|
||||
monday => '17:00-09:00',
|
||||
tuesday => '17:00-09:00',
|
||||
wednesday => '17:00-09:00',
|
||||
thursday => '17:00-09:00',
|
||||
friday => '17:00-09:00',
|
||||
saturday => '00:00-24:00',
|
||||
sunday => '00:00-24:00',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_timeperiods_base,
|
||||
}
|
||||
|
||||
@@nagios_timeperiod { 'none':
|
||||
ensure => present,
|
||||
timeperiod_name => 'none',
|
||||
alias => 'No Time Is A Good Time',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
register => '1',
|
||||
target => $ng_tgt_timeperiods_base,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
## cd_nagios::nagios::resources::resource.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# # License:
|
||||
# This file is part of cd_nagios.
|
||||
#
|
||||
# cd_nagios is used for providing automatic configuration of Nagios
|
||||
# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# @summary Class manages the resource config file header.
|
||||
# @example concat::fragment { "user_rule_plugins":
|
||||
# ng_user_arg_name => "$user1$",
|
||||
# ng_user_arg_value => '/usr/lib64/nagios/plugins',
|
||||
# ng_user_arg_comment => "Sets $USER1$ to be the path to the plugins",
|
||||
# }
|
||||
#############################################################################
|
||||
class cd_nagios::nagios::resources::resource (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $fqdn == $ng_nagios_server {
|
||||
concat { $ng_resource_file:
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
concat::fragment { 'header':
|
||||
target => $ng_resource_file,
|
||||
content => template($ng_resource_erb),
|
||||
order => '000',
|
||||
}
|
||||
|
||||
# plugins rule
|
||||
|
||||
cd_nagios::nagios::resources::resource_df { 'user_rule_plugins':
|
||||
ng_user_arg_name => 'USER1',
|
||||
ng_user_arg_value => '/usr/lib64/nagios/plugins/',
|
||||
ng_user_arg_comment => 'Sets user1 to be the path to the plugins',
|
||||
}
|
||||
|
||||
# eventhandlers rule
|
||||
cd_nagios::nagios::resources::resource_df { 'user_rule_eventhandlers':
|
||||
ng_user_arg_name => 'USER2',
|
||||
ng_user_arg_value => '/usr/lib64/nagios/plugins/eventhandlers/',
|
||||
ng_user_arg_comment => 'Sets user2 to be the path to the eventhandlers',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
## cd_nagios::nagios::resources::resource_df.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary define manages the resources in/etc/nagios/private/resources.cfg
|
||||
# @param [String] ng_user_arg_name the name of user argument i.e. $user1$
|
||||
# @param [String] ng_user_arg_value the value of t user argument i.e. $user1$
|
||||
# @param [String] ng_user_arg_comment the argument i.e. $user1$
|
||||
# @param [String] ng_resource_rule_erb resource rule #
|
||||
#############################################################################
|
||||
define cd_nagios::nagios::resources::resource_df (
|
||||
|
||||
Optional[String] $ng_user_arg_name = undef,
|
||||
Optional[String] $ng_user_arg_value = undef,
|
||||
Optional[String] $ng_user_arg_comment = undef,
|
||||
String $ng_resource_rule_erb = 'cd_nagios/nagios/resource_cfg_rule.erb',
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_resource_file = $cd_nagios::params::ng_resource_file
|
||||
|
||||
if $fqdn == $ng_nagios_server {
|
||||
concat::fragment { "rule_${name}":
|
||||
target => $ng_resource_file,
|
||||
content => template($ng_resource_rule_erb),
|
||||
order => '000',
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,988 +1,18 @@
|
||||
## cd_nagios::params.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class holds all parameters for the cd_nagios module and is
|
||||
## confdroid_nagios::params.pp
|
||||
# Module name: confdroid_nagios
|
||||
# Author: 12ww1160 (12ww1160@confdroid.com)
|
||||
# @summary Class holds all parameters for the confdroid_nagios module and is
|
||||
# inherited by all classes except defines.
|
||||
# @see https://confdroid.com/2017/07/nagios-cgi-cfg/
|
||||
# @param [String] pkg_ensure
|
||||
# which [package type](https://confdroid.com/2017/05/puppet-type-package/)
|
||||
# to choose, i.e. `latest` or `present`.
|
||||
# @param [String] ng_nagios_server Specify the FQDN of the nagios server host.
|
||||
# Must be a proper A-name, no CNAME i.e. on Loadbalancer. When the FQDN
|
||||
# matches the configured value, Nagios server components will be installed
|
||||
# and the clients will allow to be connected by that host. Impacts also
|
||||
# firewall ports (optional).
|
||||
# @param [String] ng_nagios_ext_ip Specify the IP address of the
|
||||
# nagios server. Required for NRPE configuration to allow the Nagios server
|
||||
# to connect to NRPE, which as of now does not trust DNS names. Must be the
|
||||
# public interface in case of NAT environments.
|
||||
# @param [Boolean] ng_include_nrpe Whether to include NRPE to allow
|
||||
# Nagios to connect to clients
|
||||
# @param [String] ng_ping_warn Default value for ping warning check. Can be
|
||||
# overridden on host level.
|
||||
# @param [String] ng_ping_crit Default value for ping critical check. Can be
|
||||
# overridden on host level.
|
||||
# @param [Boolean] ng_ping_ensure Whether to include or exclude the check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_disk_warn Default value for disk space warning check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_disk_crit Default value for disk space critical check
|
||||
# Can be overridden on host level.
|
||||
# @param [Boolean] ng_disk_ensure Whether to include or exclude the check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_swap_warn Default value for swap space warning check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_swap_crit Default value for swap space critical check.
|
||||
# Can be overridden on host level.
|
||||
# @param [Boolean] ng_swap_ensure Whether to include or exclude the check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_users_warn Default value for user logins warning check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_users_crit Default value for user logins critical check
|
||||
# Can be overridden on host level.
|
||||
# @param [Boolean] ng_users_ensure Whether to include or exclude the check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_procs_tot_warn Default warning for the total processes
|
||||
# warning check. Can be overridden on host level.
|
||||
# @param [String] ng_procs_tot_crit Default warning for the total processes
|
||||
# critical check. Can be overridden on host level.
|
||||
# @param [String] ng_procs_tot_param Default value for the process flags to be
|
||||
# checked. Can be overridden on host level.
|
||||
# @param [Boolean] ng_procs_tot_ens Whether to include or exclude the check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_procs_z_warn Default value for the zombie processes
|
||||
# warning check. Can be overridden on host level.
|
||||
# @param [String] ng_procs_z_crit Default value for the zombie processes
|
||||
# critical check. Can be overridden on host level.
|
||||
# @param [String] ng_procs_z_param Default value for the zombie processes flag.
|
||||
# Can be overridden on host level.
|
||||
# @param [Boolean] ng_procs_z_ensure Whether to include or exclude the check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_load_warn Default value for the load warning check.
|
||||
# Can be overridden on host level.
|
||||
# @param [String] ng_load_crit Default value for the load critical check.
|
||||
# Can be overridden on host level.
|
||||
# @param [Boolean] ng_load_ensure Whether to include or exclude the load check.
|
||||
# Can be overridden on host level.
|
||||
# @param [Boolean] ng_include_fw Whether to include firewall management.
|
||||
# requires cd_firewall or puppetlabs-firewall module.
|
||||
# @param [String] ng_fw_order Prefix for the port number to establish proper
|
||||
# firewall rule ordering.
|
||||
# @param [Boolean] ng_use_https Whether to use https.
|
||||
# @param [Boolean] ng_http_https_fw Whether we want to forward http to https.
|
||||
# only active if `ng_use_https` is set to `true`.
|
||||
# @param [String] ng_http_port Specify the port to use for httpd. Used in
|
||||
# templates and for firewall (Optional)
|
||||
# @param [String] ng_https_port Specify the port to use for httpd. Used in
|
||||
# templates and for firewall (Optional)
|
||||
# @param [String] ng_user The name of the Nagios service user.
|
||||
# @param [String] ng_user_home The home directory for the Nagios service user
|
||||
# @param [String] ng_user_shell The shell for the Nagios service user, which
|
||||
# never should be allowed to login.
|
||||
# @param [String] ng_u_comment The comment for the Nagios service user for
|
||||
# /etc/passwd. Shows up in email notifications from the Nagios daemon.
|
||||
# @param [String] ng_u_uid The UID for the Nagios service user. Important when
|
||||
# using shared environments like NFS.
|
||||
# @param [String] ng_u_groups The secondary groups for the Nagios service user.
|
||||
# Must not contain the primary group.
|
||||
# @param [String] ng_context_help whether or not a context-sensitive
|
||||
# help icon will be displayed for most of the CGIs.
|
||||
# @param [String] ng_pending_state what states should be displayed in the web
|
||||
# interface for hosts/services that have not yet been checked
|
||||
# @param [String] ng_use_auth whether or not the CGIs will use any
|
||||
# authentication when displaying host and service information, as
|
||||
# well as committing commands to Nagios for processing. This should
|
||||
# **__not__** be set to 0.
|
||||
# @param [String] ng_use_ssl_auth allows you to use x509 cert (SSL)
|
||||
# authentication in the CGIs. This is an advanced option and should
|
||||
# not be enabled unless you know what you're doing.
|
||||
# @param [Boolean] ng_enable_def_user Whether to enable a default user
|
||||
# (**__not recommended__**).
|
||||
# @param [String] ng_def_user_name default user name that can
|
||||
# access pages without authentication. This allows people within a
|
||||
# secure domain (i.e., behind a firewall) to see the current status
|
||||
# without authenticating. Only active if `ng_enable_def_user` is set to `true`
|
||||
# @param [String] ng_nagios_admin Specify the name of a nagios administration
|
||||
# user here. Value will be used in cgi.cfg for all authorized commands and
|
||||
# info,i.e. nagiosadmin. however, its strongly suggested to use a different
|
||||
# name. Can be overridden per host / hostgroups to allow flexibility and
|
||||
# increased security. You can also add a comma-separated list of people in
|
||||
# here instead, which then would function like a group instead a single user.
|
||||
# @param [String] ng_sysinfo_auth comma-delimited list of all usernames that
|
||||
# have access to viewing the Nagios process information as
|
||||
# provided by the Extended Information CGI (extinfo.cgi).
|
||||
# @param [String] ng_confinfo_auth comma-delimited list of all usernames that
|
||||
# can view ALL configuration information (hosts, commands, etc).
|
||||
# @param [String] ng_command_auth comma-delimited list of all usernames that
|
||||
# can issue shutdown and restart commands to Nagios via the
|
||||
# command CGI (cmd.cgi).
|
||||
# @param [String] ng_hostview_auth comma-delimited lists of all usernames that
|
||||
# can view information for all hosts
|
||||
# @param [String] ng_serviceview_auth comma-delimited lists of all usernames
|
||||
# that can view information for all services.
|
||||
# @param [String] ng_host_cmd_auth comma-delimited lists of all usernames that
|
||||
# can issue host related commands.
|
||||
# @param [String] ng_svc_cmd_auth comma-delimited lists of all usernames that
|
||||
# can issue service related commands.
|
||||
# @param [String] ng_readonly_auth comma-delimited list of usernames that have
|
||||
# read-only rights in the CGIs.
|
||||
# @param [String] ng_statusmap_img specify an image to be used as a
|
||||
# background in the statusmap CGI.
|
||||
# @param [Boolean] ng_use_colormap Whether to set values of background colors.
|
||||
# @param [String] ng_colormap_red value for the `red` area of the color map.
|
||||
# @param [String] ng_colormap_green value for the `green` area of the color map
|
||||
# @param [String] ng_colormap_blue value for the `blue` area of the color map.
|
||||
# @param [String] ng_statusmap_layout Value for the default statusmap layout.
|
||||
# @param [String] ng_wrl_layout Value for the default statuswrl layout.
|
||||
# @param [Boolean] ng_incl_own_wrl Whether to include your own objects in the
|
||||
# generated VRML world.
|
||||
# @param [String] ng_statuswrl_include Specify your own wrl object to be
|
||||
# included in the generated VRML world. Only active if `ng_incl_own_wrl`
|
||||
# is set to `true`.
|
||||
# @param [String] ng_ping_syntax what syntax should be used when
|
||||
# attempting to ping a host from the WAP interface
|
||||
# @param [String] ng_refresh_rate specify the refresh rate in seconds
|
||||
# of various CGIs
|
||||
# @param [String] ng_result_limit specify the default number of results
|
||||
# displayed on the status.cgi.
|
||||
# @param [String] ng_escape_html whether HTML tags in host and service
|
||||
# status output is escaped in the web interface. If enabled,
|
||||
# your plugin output will not be able to contain clickable links.
|
||||
# @param [Boolean] ng_use_sound whether to enable sound usage.
|
||||
# @param [String] ng_host_unreachable sound file for `host unreachable`
|
||||
# Only active if `ng_use_sound` is set to `true`.
|
||||
# @param [String] ng_host_down sound file for `host down`
|
||||
# Only active if `ng_use_sound` is set to `true`.
|
||||
# @param [String] ng_svc_critical sound file for `service critical`.
|
||||
# Only active if `ng_use_sound` is set to `true`.
|
||||
# @param [String] ng_svc_warn sound file for `service warning`
|
||||
# Only active if `ng_use_sound` is set to `true`.
|
||||
# @param [String] ng_svc_unknown sound file for `service unknown`
|
||||
# Only active if `ng_use_sound` is set to `true`.
|
||||
# @param [String] ng_normal_sound sound file for `normal`
|
||||
# Only active if `ng_use_sound` is set to `true`.
|
||||
# @param [String] ng_action_url_target Specify target frames in which
|
||||
# action URLs will open
|
||||
# @param [String] ng_notes_url_target Specify target frames in which
|
||||
# notes URLs will open
|
||||
# @param [String] ng_lock_author_names whether users can change the author
|
||||
# name when submitting comments, scheduling downtime.
|
||||
# @param [Boolean] ng_enable_splunk Whether to enable splunk integration.
|
||||
# @param [String] ng_splunk_url the URL for your Splunk URL
|
||||
# @param [String] ng_navbar_addresses allow navbar search queries IP addresses
|
||||
# @param [String] ng_navbar_aliases allow navbar search for aliases
|
||||
# @param [String] ng_ack_no_sticky Enabling ack_no_sticky will default the
|
||||
# "Sticky Acknowledgement" to be unchecked.
|
||||
# @param [String] ng_ack_no_send Enabling ack_no_send will default the
|
||||
# "Send Notification" to be unchecked.
|
||||
# @param [Boolean] ng_use_selinux_tools Whether to enable selinux tools and
|
||||
# policies. only effective if selinux is enabled.
|
||||
# @param [String] ng_required_hosts String of **__FQDNs__** for hosts which
|
||||
# should be allowed/required. Requires format
|
||||
# 'host1.example.com host2.example.com'. If you want no restriction, chose
|
||||
# 'all'.
|
||||
# @param [String] ng_required_ips String of **__Ip addresses __** for hosts
|
||||
# which should be allowed/required. Requires format 'ipaddress ip address
|
||||
# range'. If you want no restriction, choose '0.0.0.0/0'.
|
||||
# @param [Boolean] ng_enable_certbot Whether to use certbot for automated TLS
|
||||
# certificate management
|
||||
# @param [String] ng_certbot_webroot the path for certbot to place
|
||||
# challenges for the certification process.
|
||||
# @param [String] ng_mail_user email address to receive administrative mail.
|
||||
# used for nagios itself as well as for certbot. Mail environment must be
|
||||
# configured separately, i.e. through `cd_postfix`.
|
||||
# @param [String] ng_page_user pager address to be used by Nagios for
|
||||
# notifications. Paging environment must be configured separately.
|
||||
# @param [Boolean] ng_enable_index Whether to create an index file to allow
|
||||
# httpd checks with nagios on the nagios server.
|
||||
# @param [String] ng_webserver_name the name of the web server nagios should
|
||||
# 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] ng_resource_file 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] ng_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_svc_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_max_check_res_reap_time max amount of time (in seconds)
|
||||
# that a single # check result reaper event will be allowed to run before
|
||||
# returning control back to Nagios so it can perform other duties.
|
||||
# @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.
|
||||
# @param [String] ng_service_check_timeout how much time Nagios will allow
|
||||
# service check commands to execute before killing them off.
|
||||
# @param [String] ng_host_check_timeout how much time Nagios will allow
|
||||
# host check commands to execute before killing them off.
|
||||
# @param [String] ng_event_handler_timeout how much time Nagios will allow
|
||||
# event handler commands to execute before killing them off.
|
||||
# @param [String] ng_notification_timeout how much time Nagios will allow
|
||||
# notification commands to execute before killing them off.
|
||||
# @param [String] ng_ocsp_timeout how much time Nagios will allow
|
||||
# ocsp commands to execute before killing them off.
|
||||
# @param [String] ng_perfdata_timeout how much time Nagios will allow
|
||||
# performance data commands to execute before killing them off.
|
||||
# @param [String] ng_retain_state_inf Whether 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. Valid options are `0` and `1`.
|
||||
# @param [String] ng_state_retention_file Where 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 `ng_retain_state_inf` variable is set to 1.
|
||||
# @param [String] ng_retention_update_intval 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.
|
||||
# @param [String] ng_use_ret_program_state Whether Nagios will set
|
||||
# program status variables based on the values saved in the retention file.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_use_ret_scheduling_info Whether Nagios will retain
|
||||
# the scheduling info (next check time) for hosts and services based on the
|
||||
# values saved in the retention file. Valid options are `0` and `1`.
|
||||
# @param [String] ng_ret_host_attr_mask mask determines what host
|
||||
# attributes are not retained
|
||||
# @param [String] ng_ret_service_attr_mask mask determines what service
|
||||
# attributes are not retained
|
||||
# @param [String] ng_ret_proc_host_attr_mask what host process attributes
|
||||
# are not retained.
|
||||
# @param [String] ng_ret_proc_svc_attr_mask what service process attributes
|
||||
# are not retained
|
||||
# @param [String] ng_ret_contact_h_attr_mask what host contact attributes are
|
||||
# not retained.
|
||||
# @param [String] ng_ret_contact_s_attr_mask what service contact attributes
|
||||
# are not retained.
|
||||
# @param [String] ng_interval_length seconds per unit interval as used in the
|
||||
# host/contact/service configuration files.
|
||||
# @param [String] ng_check_for_updates whether Nagios will automatically check
|
||||
# to see if new updates (releases) are available. Effectively, setting
|
||||
# `$pkg_ensure` to `latest` will have Puppet take care for that automatically
|
||||
# though through the packages available in the yum repos.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_bare_update_check what data Nagios will send to
|
||||
# api.nagios.org when it checks for updates. Valid options are `0` and `1`.
|
||||
# @param [String] ng_use_aggr_host_checking Whether to enable aggressive host
|
||||
# checking. Read Nagios documentation for more infos aggressive host checking.
|
||||
# @param [String] ng_execute_service_checks Whether Nagios will actively
|
||||
# execute service checks when it initially starts.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_accept_pass_svc_checks Whether or not Nagios will accept
|
||||
# passive # service checks results when it initially (re)starts.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_execute_host_checks whether or not Nagios will actively
|
||||
# execute host checks when it initially starts.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_accept_pass_host_checks Whether or not Nagios will accept
|
||||
# passive # host checks results when it initially (re)starts.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_enable_notifications Whether Nagios will sent out any host
|
||||
# or service notifications when it is initially (re)started.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_enable_event_handlers Whether Nagios will run any host or
|
||||
# service event handlers when it is initially (re)started.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_process_perf_data Whether Nagios will process performance
|
||||
# data returned from service and host checks.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_host_perfdata_command Short name of a command definition
|
||||
# defined in your host configuration file. Only active if
|
||||
# `ng_process_perf_data` is set to `1`
|
||||
# @param [String] ng_svc_perfdata_command Short name of a command definition
|
||||
# defined in your service configuration file. Only active if
|
||||
# `ng_process_perf_data` is set to `1`
|
||||
# @param [String] ng_host_perfdata_file used to store host performance data.
|
||||
# Only active if `ng_process_perf_data` is set to `1`
|
||||
# @param [String] ng_service_perfdata_file used to store service performance
|
||||
# data. Only active if `ng_process_perf_data` is set to `1`
|
||||
# @param [String] ng_host_perfdata_template 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. Only active if `ng_process_perf_data` is set to `1`
|
||||
# @param [String] ng_svc_perfdata_template 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. Only active if `ng_process_perf_data` is set to `1`
|
||||
# @param [String] ng_host_perfdata_file_mode Whether the host performance data
|
||||
# files are opened in write ("w"), append ("a") or named pipe ("p") mode.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_svc_perfdata_file_mode Whether the service performance
|
||||
# data files are opened in write ("w"), append ("a") or named pipe ("p") mode.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_h_perfdata_proc_intval How often (in seconds) the host
|
||||
# performance data files are processed using the commands defined below.
|
||||
# `0` indicates that the files should not be periodically processed.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_s_perfdata_proc_intval How often (in seconds) the service
|
||||
# performance data files are processed using the commands defined below.
|
||||
# `0` indicates that the files should not be periodically processed.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_h_perfdata_proc_cmd Commands used to periodically process
|
||||
# the host performance data files.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_s_perfdata_proc_cmd Commands used to periodically process
|
||||
# the service performance data files.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_h_perfdata_proc_e_res Whether the core will process empty
|
||||
# host perfdata results. Valid options are `0` and `1`.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_s_perfdata_proc_e_res Whether the core will process empty
|
||||
# service perfdata results. Valid options are `0` and `1`.
|
||||
# Only active if `ng_process_perf_data` is set to `1`.
|
||||
# @param [String] ng_obsess_over_services Whether Nagios will obsess over
|
||||
# service checks and run the ocsp_command defined. Unless you are
|
||||
# planning on implementing distributed monitoring, do not enable this option.
|
||||
# @param [String] ng_ocsp_command Command that is run for every service check
|
||||
# that is processed by Nagios. This command is executed only if the
|
||||
# `ng_obsess_over_services` option is set to 1. The command argument is the
|
||||
# short name of a command definition defined in your service configuration
|
||||
# file. Read the HTML docs for # more information on implementing distributed
|
||||
# monitoring.
|
||||
# @param [String] ng_obsess_over_hosts Whether Nagios will obsess over
|
||||
# host checks and run the ocsp_command defined. Unless you are
|
||||
# planning on implementing distributed monitoring, do not enable this option.
|
||||
# @param [String] ng_ochp_command Command that is run for every service check
|
||||
# that is processed by Nagios. This command is executed only if the
|
||||
# `ng_obsess_over_hosts` option is set to 1. The command argument is the
|
||||
# short name of a command definition defined in your host configuration file.
|
||||
# Read the HTML docs for # more information on implementing distributed
|
||||
# monitoring.
|
||||
# @param [String] ng_translate_pass_h_checks 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 only if you have
|
||||
# distributed or failover monitoring setup. Valid options are `0` and `1`.
|
||||
# @param [String] ng_pass_h_checks_are_soft Whether Nagios will treat passive
|
||||
# host checks as being HARD or SOFT. Valid options are `0` and `1`.
|
||||
# @param [String] ng_check_orphaned_svc Whether Nagios will periodically check
|
||||
# for orphaned service checks.Valid options are `0` and `1`.
|
||||
# @param [String] ng_check_orphaned_hosts Whether Nagios will periodically
|
||||
# check for orphaned host checks.Valid options are `0` and `1`.
|
||||
# @param [String] ng_check_service_freshness Whether Nagios will periodically
|
||||
# check the "freshness" of service results. Valid options are `0` and `1`.
|
||||
# @param [String] ng_svc_fresh_check_intval how often (in seconds) Nagios will
|
||||
# check the "freshness" of service check results. Only active if
|
||||
# `ng_check_service_freshness` is set to `1`.
|
||||
# @param [String] ng_svc_check_timeout_state The state Nagios will report when
|
||||
# a service check times out - that is does not respond within
|
||||
# `ng_service_check_timeout` seconds. Valid settings are:
|
||||
# c - Critical (default)
|
||||
# u - Unknown
|
||||
# w - Warning
|
||||
# o - OK
|
||||
# @param [String] ng_check_host_freshness Whether Nagios will periodically
|
||||
# check the "freshness" of host check results. Valid options are `0` and `1`.
|
||||
# @param [String] ng_host_fresh_check_intval how often (in seconds) Nagios
|
||||
# will check the "freshness" of host check results. Only active if
|
||||
# `ng_check_service_freshness` is set to `1`.
|
||||
# @param [String] ng_add_freshness_latency number of seconds that Nagios will
|
||||
# add to any host and service freshness thresholds that it calculates
|
||||
# (those not explicitly specified by the user).
|
||||
# @param [String] ng_enable_flap_detection 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.
|
||||
# @param [String] ng_low_svc_flap_threshold Low threshold for service flapping.
|
||||
# only active if `ng_enable_flap_detection` is set to `1`.
|
||||
# @param [String] ng_high_svc_flap_threshold High threshold for service
|
||||
# flapping. Only active if `ng_enable_flap_detection` is set to `1`.
|
||||
# @param [String] ng_low_h_flap_threshold Low threshold for host flapping.
|
||||
# only active if `ng_enable_flap_detection` is set to `1`.
|
||||
# @param [String] ng_high_h_flap_threshold High threshold for host
|
||||
# flapping. Only active if `ng_enable_flap_detection` is set to `1`.
|
||||
# @param [String] ng_date_format 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)
|
||||
# @param [Boolean] ng_use_timezone_offset Whether to use timezone offsets.
|
||||
# if set to `false`, the system configured timezone will be used.
|
||||
# @param [String] ng_use_timezone 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. It is highly recommended to configure
|
||||
# the timezone correctly at system level anyway. Only active if
|
||||
# `ng_use_timezone_offset` is set to `true`.
|
||||
# @param [String] ng_illegal_obj_name_chars specify illegal characters that
|
||||
# cannot # be used in host names, service descriptions, or names of other
|
||||
# object types.
|
||||
# @param [String] ng_ill_macro_output_chars 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$
|
||||
# $HOSTPERFDATA$
|
||||
# $HOSTACKAUTHOR$
|
||||
# $HOSTACKCOMMENT$
|
||||
# $SERVICEOUTPUT$
|
||||
# $SERVICEPERFDATA$
|
||||
# $SERVICEACKAUTHOR$
|
||||
# $SERVICEACKCOMMENT$
|
||||
# @param [String] ng_use_regexp_matching Whether 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.
|
||||
# Valid options are `0` and `1`.
|
||||
# @param [String] ng_true_regexp_matching Whether or not "true" regular
|
||||
# expression # matching takes place in the object config files. Only active if
|
||||
# `ng_use_regexp_matching` is set to true.
|
||||
# @param [String] ng_daemon_dumps_core Whether Nagios is allowed to create
|
||||
# a core dump when it runs as a daemon.
|
||||
# @param [String] ng_use_large_inst_tweaks Whether or not Nagios will take some
|
||||
# shortcuts # which can save on memory and CPU usage in large Nagios
|
||||
# installations. Valid options are `0` or `1`.
|
||||
# @param [String] ng_enable_env_macros Whether Nagios will make all standard
|
||||
# macros available as environment variables when host/service checks and
|
||||
# system commands (event handlers, notifications, etc.) are executed. Can
|
||||
# cause performance problems in large installations if enabled.
|
||||
# Valid options are `0` or `1`.
|
||||
# @param [String] ng_free_child_process_mem Whether Nagios should free up
|
||||
# memory on child processes. Valid options are `0` and `1`.
|
||||
# @param [String] ng_child_proc_fork_twice ow Nagios will fork child processes.
|
||||
# Valid options are `0` or `1`.
|
||||
# @param [String] ng_debug_level how much (if any) debugging information will
|
||||
# be written to the debug file. Valid options are:
|
||||
# -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
|
||||
# @param [String] ng_debug_verbosity How verbose the debug log out will be.
|
||||
# Valid options:
|
||||
# 0 = Brief output
|
||||
# 1 = More detailed
|
||||
# 2 = Very detailed
|
||||
# @param [String] ng_debug_file FQDN where Nagios should write debug
|
||||
# information.
|
||||
# @param [String] ng_max_debug_file_size 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.
|
||||
# @param [String] ng_allow_empty_hostgroups Should we allow hostgroups to have
|
||||
# no hosts, we default this to off since that was the old behavior.
|
||||
# @param [String] ng_check_workers 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.
|
||||
# @param [String] ng_host_down_svc_checks 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. Valid options are `0` and
|
||||
# `1`.
|
||||
# @param [Boolean] ng_enable_load_ctl_options Whether to enable loadctl_options
|
||||
# To get current defaults based on your system issue a command to
|
||||
# the query handler. Experimental feature and not recommended for production.
|
||||
# @param [String] ng_loadctl_options load controlling options
|
||||
# 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
|
||||
# @param [String] ng_nrpe_port the port for NRPE. used by firewall and in
|
||||
# configuration file.
|
||||
# @param [Boolean] ng_enable_swap_check Whether to enable the declaration of
|
||||
# the swap check. Disabling this makes sense when you use the `cd_swap`
|
||||
# Puppet module and have enabled the check declaration from there, so the
|
||||
# Nagios check is properly aligned to the Puppet module controlling the
|
||||
# particular item.
|
||||
# @param [Array] reqpackages_server the packages for the server
|
||||
# @param [Array] reqpackages_client the packages for the clients
|
||||
###############################################################################
|
||||
class cd_nagios::params (
|
||||
|
||||
String $pkg_ensure = 'latest',
|
||||
|
||||
String $ng_nagios_server = "nagios.${::domain}",
|
||||
String $ng_nagios_ext_ip = undef,
|
||||
String $ng_mail_user = "admin@${::domain}",
|
||||
String $ng_page_user = "pageadmin@${::domain}",
|
||||
|
||||
Boolean $ng_include_nrpe = true,
|
||||
|
||||
# firewall
|
||||
Boolean $ng_include_fw = true,
|
||||
Boolean $ng_use_https = true,
|
||||
Boolean $ng_http_https_fw = true,
|
||||
String $ng_fw_order = '50',
|
||||
String $ng_http_port = '80',
|
||||
String $ng_https_port = '443',
|
||||
String $ng_nrpe_port = '5666',
|
||||
|
||||
# check command parameters
|
||||
## ping
|
||||
String $ng_ping_warn = '100.0,20%',
|
||||
String $ng_ping_crit = '500.0,60%',
|
||||
String $ng_ping_ensure = 'present',
|
||||
## disk
|
||||
String $ng_disk_warn = '20%',
|
||||
String $ng_disk_crit = '10%' ,
|
||||
String $ng_disk_ensure = 'present',
|
||||
# swap
|
||||
String $ng_swap_warn = '20',
|
||||
String $ng_swap_crit = '10',
|
||||
String $ng_swap_ensure = 'present',
|
||||
# users
|
||||
String $ng_users_warn = '20',
|
||||
String $ng_users_crit = '50',
|
||||
String $ng_users_ensure = 'present',
|
||||
#total procs
|
||||
String $ng_procs_tot_warn = '330',
|
||||
String $ng_procs_tot_crit = '400',
|
||||
String $ng_procs_tot_param = 'RDST',
|
||||
String $ng_procs_tot_ens = 'present',
|
||||
# zombie procs
|
||||
String $ng_procs_z_warn = '10',
|
||||
String $ng_procs_z_crit = '30',
|
||||
String $ng_procs_z_param = 'Z',
|
||||
String $ng_procs_z_ensure = 'present',
|
||||
# load
|
||||
String $ng_load_warn = '5.00,4.00,3.00',
|
||||
String $ng_load_crit = '10.00,6.00,4.00',
|
||||
String $ng_load_ensure = 'present',
|
||||
|
||||
# user settings
|
||||
String $ng_user = 'nagios',
|
||||
String $ng_u_comment = 'Nagios service user',
|
||||
String $ng_u_uid = '1004',
|
||||
String $ng_user_home = '/var/spool/nagios',
|
||||
Optional[String] $ng_u_groups = undef,
|
||||
String $ng_user_shell = '/bin/bash',
|
||||
|
||||
# cgi settings
|
||||
String $ng_context_help = '1',
|
||||
String $ng_pending_state = '1',
|
||||
String $ng_use_auth = '1',
|
||||
String $ng_use_ssl_auth = '0',
|
||||
Boolean $ng_enable_def_user = false,
|
||||
String $ng_def_user_name = 'nagios_insecure',
|
||||
String $ng_nagios_admin = 'nagios_sec_adm',
|
||||
String $ng_sysinfo_auth = '',
|
||||
String $ng_confinfo_auth = '',
|
||||
String $ng_command_auth = '',
|
||||
String $ng_hostview_auth = '',
|
||||
String $ng_serviceview_auth = '',
|
||||
String $ng_host_cmd_auth = '',
|
||||
String $ng_svc_cmd_auth = '',
|
||||
String $ng_readonly_auth = '' ,
|
||||
String $ng_statusmap_img = 'smbackground.gd2',
|
||||
Boolean $ng_use_colormap = false,
|
||||
String $ng_colormap_red = '255',
|
||||
String $ng_colormap_green = '255',
|
||||
String $ng_colormap_blue = '255',
|
||||
String $ng_statusmap_layout = '6',
|
||||
String $ng_wrl_layout = '4',
|
||||
Boolean $ng_incl_own_wrl = false,
|
||||
String $ng_statuswrl_include = '',
|
||||
String $ng_ping_syntax = '/bin/ping -n -U -c 5 $HOSTADDRESS$',
|
||||
String $ng_refresh_rate = '90',
|
||||
String $ng_result_limit = '100',
|
||||
String $ng_escape_html = '1',
|
||||
Boolean $ng_use_sound = false,
|
||||
String $ng_host_unreachable = 'hostdown.wav',
|
||||
String $ng_host_down = 'hostdown.wav',
|
||||
String $ng_svc_critical = 'critical.wav',
|
||||
String $ng_svc_warn = 'warning.wav',
|
||||
String $ng_svc_unknown = 'warning.wav',
|
||||
String $ng_normal_sound = 'noproblem.wav',
|
||||
String $ng_action_url_target = '_blank',
|
||||
String $ng_notes_url_target = '_blank',
|
||||
String $ng_lock_author_names = '1',
|
||||
Boolean $ng_enable_splunk = false,
|
||||
String $ng_splunk_url = 'http://127.0.0.1:8000/',
|
||||
String $ng_navbar_addresses = '1',
|
||||
String $ng_navbar_aliases = '1',
|
||||
String $ng_ack_no_sticky = '0',
|
||||
String $ng_ack_no_send = '0',
|
||||
|
||||
# selinux
|
||||
Boolean $ng_use_selinux_tools = true,
|
||||
|
||||
# httpd
|
||||
String $ng_required_hosts = '',
|
||||
String $ng_required_ips = '127.0.0.0/8',
|
||||
Boolean $ng_enable_index = true,
|
||||
|
||||
# certbot
|
||||
Boolean $ng_enable_certbot = true,
|
||||
String $ng_certbot_webroot = '/var/www/html',
|
||||
String $ng_webserver_name = "nagios.${::domain}",
|
||||
|
||||
# main settings
|
||||
String $ng_log_file = '/var/log/nagios/nagios.log',
|
||||
String $ng_max_check_attempts = '10',
|
||||
String $ng_object_cache_file = '/var/spool/nagios/objects.cache',
|
||||
String $ng_precached_obj_file = '/var/spool/nagios/objects.precache',
|
||||
String $ng_resource_file = '/etc/nagios/private/resource.cfg',
|
||||
String $ng_status_file = '/var/log/nagios/status.dat',
|
||||
String $ng_status_upd_interval = '10',
|
||||
String $ng_check_ext_commands = '1',
|
||||
String $ng_command_file = '/var/spool/nagios/cmd/nagios.cmd',
|
||||
Boolean $ng_enable_query_handler = false,
|
||||
String $ng_query_socket = '/var/spool/nagios/cmd/nagios.qh',
|
||||
String $ng_lock_file = '/var/run/nagios/nagios.pid',
|
||||
String $ng_temp_file = '/var/spool/nagios/nagios.tmp',
|
||||
String $ng_temp_path = '/tmp',
|
||||
String $ng_event_broker_options = '-1',
|
||||
String $ng_event_broker_module = '',
|
||||
String $ng_log_rotation_method = 'h',
|
||||
String $ng_log_archive_path = '/var/log/nagios/archives',
|
||||
String $ng_use_syslog = '1',
|
||||
String $ng_log_notifications = '1',
|
||||
String $ng_log_service_retries = '1',
|
||||
String $ng_log_host_retries = '1',
|
||||
String $ng_log_event_handlers = '1',
|
||||
String $ng_log_initial_states = '0',
|
||||
String $ng_log_current_states = '1',
|
||||
String $ng_log_external_commands = '1',
|
||||
String $ng_log_passive_checks = '1',
|
||||
String $ng_glob_host_evt_handler = '',
|
||||
String $ng_glob_svc_evt_handler = '',
|
||||
String $ng_svc_int_check_delay = 's',
|
||||
String $ng_max_svc_check_spread = '30',
|
||||
String $ng_svc_interleave_factor = 's',
|
||||
String $ng_host_int_check_delay = 's',
|
||||
String $ng_max_host_check_spread = '30',
|
||||
String $ng_max_concurrent_checks = '0',
|
||||
String $ng_check_res_reaper_freq = '10',
|
||||
String $ng_max_check_res_reap_time = '30',
|
||||
String $ng_check_result_path = '/var/spool/nagios/checkresults',
|
||||
String $ng_max_check_res_file_age = '3600',
|
||||
String $ng_cached_h_check_horizon = '15',
|
||||
String $ng_cached_s_check_horizon = '15',
|
||||
String $ng_pred_host_dep_checks = '1',
|
||||
String $ng_pred_svc_dep_checks = '1',
|
||||
String $ng_soft_state_dependencies = '0',
|
||||
String $ng_time_change_threshold = '900',
|
||||
String $ng_auto_reschedule_checks = '0',
|
||||
String $ng_auto_reschedule_intval = '30',
|
||||
String $ng_auto_reschedule_window = '180',
|
||||
String $ng_service_check_timeout = '60',
|
||||
String $ng_host_check_timeout = '30',
|
||||
String $ng_event_handler_timeout = '30',
|
||||
String $ng_notification_timeout = '30',
|
||||
String $ng_ocsp_timeout = '5',
|
||||
String $ng_perfdata_timeout = '5',
|
||||
String $ng_retain_state_inf = '1',
|
||||
String $ng_state_retention_file = '/var/spool/nagios/retention.dat',
|
||||
String $ng_retention_update_intval = '60',
|
||||
String $ng_use_ret_program_state = '1',
|
||||
String $ng_use_ret_scheduling_info = '1',
|
||||
String $ng_ret_host_attr_mask = '0',
|
||||
String $ng_ret_service_attr_mask = '0',
|
||||
String $ng_ret_proc_host_attr_mask = '0',
|
||||
String $ng_ret_proc_svc_attr_mask = '0',
|
||||
String $ng_ret_contact_h_attr_mask = '0',
|
||||
String $ng_ret_contact_s_attr_mask = '0',
|
||||
String $ng_interval_length = '60',
|
||||
String $ng_check_for_updates = '1',
|
||||
String $ng_bare_update_check = '0',
|
||||
String $ng_use_aggr_host_checking = '0',
|
||||
String $ng_execute_service_checks = '1',
|
||||
String $ng_accept_pass_svc_checks = '1',
|
||||
String $ng_execute_host_checks = '1',
|
||||
String $ng_accept_pass_host_checks = '1',
|
||||
String $ng_enable_notifications = '1',
|
||||
String $ng_enable_event_handlers = '1',
|
||||
String $ng_process_perf_data = '0',
|
||||
String $ng_host_perfdata_command = 'process-host-perfdata',
|
||||
String $ng_svc_perfdata_command = 'process-service-perfdata',
|
||||
String $ng_host_perfdata_file = '/var/spool/nagios/host-perfdata',
|
||||
String $ng_service_perfdata_file = '/var/spool/nagios/service-perfdata',
|
||||
String $ng_host_perfdata_template = '[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$',
|
||||
String $ng_svc_perfdata_template = '[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$',
|
||||
String $ng_host_perfdata_file_mode = 'a',
|
||||
String $ng_svc_perfdata_file_mode = 'a',
|
||||
String $ng_h_perfdata_proc_intval = '0',
|
||||
String $ng_s_perfdata_proc_intval = '0',
|
||||
String $ng_h_perfdata_proc_cmd = 'process-host-perfdata-file',
|
||||
String $ng_s_perfdata_proc_cmd = 'process-service-perfdata-file',
|
||||
String $ng_h_perfdata_proc_e_res = '1',
|
||||
String $ng_s_perfdata_proc_e_res = '1',
|
||||
String $ng_obsess_over_services = '0',
|
||||
String $ng_ocsp_command = '',
|
||||
String $ng_obsess_over_hosts = '0',
|
||||
String $ng_ochp_command = '',
|
||||
String $ng_translate_pass_h_checks = '0',
|
||||
String $ng_pass_h_checks_are_soft = '0',
|
||||
String $ng_check_orphaned_svc = '1',
|
||||
String $ng_check_orphaned_hosts = '1',
|
||||
String $ng_check_service_freshness = '1',
|
||||
String $ng_svc_fresh_check_intval = '60',
|
||||
String $ng_svc_check_timeout_state = 'c',
|
||||
String $ng_check_host_freshness = '0',
|
||||
String $ng_host_fresh_check_intval = '60',
|
||||
String $ng_add_freshness_latency = '15',
|
||||
String $ng_enable_flap_detection = '1',
|
||||
String $ng_low_svc_flap_threshold = '5.0',
|
||||
String $ng_high_svc_flap_threshold = '20.0',
|
||||
String $ng_low_h_flap_threshold = '5.0',
|
||||
String $ng_high_h_flap_threshold = '20.0',
|
||||
String $ng_date_format = 'us',
|
||||
Boolean $ng_use_timezone_offset = false,
|
||||
String $ng_use_timezone = '',
|
||||
String $ng_illegal_obj_name_chars = '`~!$%^&*|\'"<>?,()=',
|
||||
String $ng_ill_macro_output_chars = '`~$&|\'"<>',
|
||||
String $ng_use_regexp_matching = '0',
|
||||
String $ng_true_regexp_matching = '0',
|
||||
String $ng_daemon_dumps_core = '0',
|
||||
String $ng_use_large_inst_tweaks = '0',
|
||||
String $ng_enable_env_macros = '0',
|
||||
String $ng_free_child_process_mem = '1',
|
||||
String $ng_child_proc_fork_twice = '1',
|
||||
String $ng_debug_level = '0',
|
||||
String $ng_debug_verbosity = '1',
|
||||
String $ng_debug_file = '/var/spool/nagios/nagios.debug',
|
||||
String $ng_max_debug_file_size = '1000000',
|
||||
String $ng_allow_empty_hostgroups = '0',
|
||||
String $ng_check_workers = '',
|
||||
String $ng_host_down_svc_checks = '0',
|
||||
Boolean $ng_enable_load_ctl_options = false,
|
||||
String $ng_loadctl_options = 'jobs_max=100;backoff_limit=10;rampup_change=5',
|
||||
|
||||
# single nagios checks
|
||||
Boolean $ng_enable_swap_check = true,
|
||||
|
||||
# installation
|
||||
Array $reqpackages_server = ['nagios','nagios-devel'],
|
||||
Array $reqpackages_client = ['net-snmp-utils','nagios-plugins','nagios-plugins-all','nagios-plugins-nrpe','nagios-common'],
|
||||
class confdroid_nagios::params (
|
||||
|
||||
) {
|
||||
# service
|
||||
$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_run_dir = '/var/run/nagios'
|
||||
$ng_cmd_dir = "${ng_spool_dir}/cmd"
|
||||
$ng_checkresults_dir = "${ng_spool_dir}/checkresults"
|
||||
|
||||
# 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_statdat_erb = 'cd_nagios/selinux/statusdat.erb'
|
||||
$ng_checknrpe_erb = 'cd_nagios/selinux/checknrpe.erb'
|
||||
$ng_checknagios_erb = 'cd_nagios/selinux/checknagios.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'
|
||||
$ng_resource_erb = 'cd_nagios/nagios/resource_cfg.erb'
|
||||
$ng_grep_erb = 'cd_nagios/selinux/grep.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"
|
||||
|
||||
# nagios
|
||||
$ng_target_templates = "${ng_conf_d_dir}/nagios_templates.cfg"
|
||||
$ng_templates_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb'
|
||||
$ng_templates_rule_erb = 'cd_nagios/nagios/templates_cfg_rule.erb'
|
||||
$ng_tgt_timeperiods_base = "${ng_conf_d_dir}/nagios_timeperiods.cfg"
|
||||
$ng_tgt_timep_add = "${ng_conf_d_dir}/nagios_timeperiods_add.cfg"
|
||||
$ng_tgt_timep_head_erb = 'cd_nagios/nagios/timeperiods_cfg_head.erb'
|
||||
$ng_tgt_timep_rule_erb = 'cd_nagios/nagios/timeperiods_cfg_rule.erb'
|
||||
$ng_target_localhost = "${ng_conf_d_dir}/nagios_localhost.cfg"
|
||||
$ng_target_host = "${ng_conf_d_dir}/nagios_host.cfg"
|
||||
$ng_target_hostgroup_base = "${ng_conf_d_dir}/nagios_hostgroups_base.cfg"
|
||||
$ng_tgt_hostgroup_add = "${ng_conf_d_dir}/nagios_hostgroups_add.cfg"
|
||||
$ng_tgt_hostgrp_head_erb = 'cd_nagios/nagios/hostgroups_cfg_head.erb'
|
||||
$ng_tgt_hostgrp_rule_erb = 'cd_nagios/nagios/hostgroups_cfg_rule.erb'
|
||||
$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_svcgrp_base = "${ng_conf_d_dir}/nagios_servicegroups_base.cfg"
|
||||
$ng_tgt_servicegroup_add = "${ng_conf_d_dir}/nagios_servicegroups_add.cfg"
|
||||
$ng_tgt_svcgrp_head_erb = 'cd_nagios/nagios/svcgroups_cfg_head.erb'
|
||||
$ng_tgt_svcgrp_rule_erb = 'cd_nagios/nagios/svcgroups_cfg_rule.erb'
|
||||
$ng_target_base_contact = "${ng_conf_d_dir}/nagios_contact_base.cfg"
|
||||
$ng_target_add_contact = "${ng_conf_d_dir}/nagios_contact_add.cfg"
|
||||
$ng_contacts_head_erb = 'cd_nagios/nagios/contacts_cfg_head.erb'
|
||||
$ng_contacts_rule_erb = 'cd_nagios/nagios/contacts_cfg_rule.erb'
|
||||
$ng_tgt_contactgroup_base = "${ng_conf_d_dir}/nagios_contactgroup_base.cfg"
|
||||
$ng_tgt_contactgroup_add = "${ng_conf_d_dir}/nagios_contactgroup_add.cfg"
|
||||
$ng_cntctgrps_head_erb = 'cd_nagios/nagios/contactgroups_cfg_head.erb'
|
||||
$ng_cntctgrps_rule_erb = 'cd_nagios/nagios/contactgroups_cfg_rule.erb'
|
||||
$ng_target_command = "${ng_conf_d_dir}/nagios_commands_base.cfg"
|
||||
$ng_nagios_service_cmd = 'check_nagios!/var/log/nagios/status.dat!5!/usr/sbin/nagios'
|
||||
# Default facts
|
||||
$fqdn = $facts['networking']['fqdn']
|
||||
$domain = $facts['networking']['domain']
|
||||
$os_name = $facts['os']['name']
|
||||
$os_release = $facts['os']['release']['major']
|
||||
|
||||
# includes must be last
|
||||
include cd_nagios::main::config
|
||||
include confdroid_nagios::main::config
|
||||
}
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
## cd_nagios::selinux::config.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages all aspects of selinux for cd_nagios.
|
||||
##############################################################################
|
||||
class cd_nagios::selinux::config (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $ng_use_selinux_tools == true {
|
||||
require cd_selinux
|
||||
|
||||
# it appears that selinux behaves differently across different nodes,
|
||||
# so all we can do for now is to create a list of the AVC alerts and come up
|
||||
# with a solution on that later.
|
||||
|
||||
exec { 'create_avc_list':
|
||||
command => 'sealert -a /var/log/audit/audit.log > avc_alerts',
|
||||
cwd => $ng_user_home,
|
||||
path => ['/usr/bin'],
|
||||
creates => "${ng_user_home}/avc_alerts",
|
||||
}
|
||||
|
||||
# sealert tac-cgi
|
||||
# exec { 'create_policy_taccgi':
|
||||
# command => template($ng_taccgi_erb),
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# user => $ng_user,
|
||||
# cwd => $ng_user_home,
|
||||
# creates => "${ng_user_home}/my-taccgi.pp",
|
||||
# notify => Exec['semodule_taccgi'],
|
||||
# }
|
||||
|
||||
# exec { 'semodule_taccgi':
|
||||
# command => "semodule -i ${ng_user_home}/my-taccgi.pp",
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# user => $ng_user,
|
||||
# cwd => $ng_user_home,
|
||||
# require => Exec['create_policy_taccgi'],
|
||||
# refreshonly => true,
|
||||
# }
|
||||
|
||||
# sealert status.cgi
|
||||
|
||||
# exec { 'create_policy_statuscgi':
|
||||
# command => template($ng_statcgi_erb),
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# cwd => $ng_user_home,
|
||||
# creates => "${ng_user_home}/my-statuscgi.pp",
|
||||
# notify => Exec['semodule_statuscgi'],
|
||||
# }
|
||||
|
||||
# exec { 'semodule_statuscgi':
|
||||
# command => 'semodule -i my-statuscgi.pp',
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# cwd => $ng_user_home,
|
||||
# require => Exec['create_policy_statuscgi'],
|
||||
# refreshonly => true,
|
||||
# notify => Service[$ng_service],
|
||||
# }
|
||||
|
||||
# sealert check_nrpe
|
||||
|
||||
# exec { 'create_policy_checknrpe':
|
||||
# command => template($ng_checknrpe_erb),
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# cwd => $ng_user_home,
|
||||
# creates => "${ng_user_home}/my-checknrpe.pp",
|
||||
# notify => Exec['semodule_checknrpe'],
|
||||
# }
|
||||
|
||||
# exec { 'semodule_checknrpe':
|
||||
# command => 'semodule -i my-checknrpe.pp',
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# cwd => $ng_user_home,
|
||||
# require => Exec['create_policy_checknrpe'],
|
||||
# refreshonly => true,
|
||||
# notify => Service[$ng_service],
|
||||
# }
|
||||
|
||||
# sealert check_nagios
|
||||
|
||||
# exec { 'create_policy_checknagios':
|
||||
# command => template($ng_checknagios_erb),
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# cwd => $ng_user_home,
|
||||
# creates => "${ng_user_home}/my-checknagios.pp",
|
||||
# notify => Exec['semodule_checknagios'],
|
||||
# }
|
||||
|
||||
# exec { 'semodule_checknagios':
|
||||
# command => 'semodule -i my-checknagios.pp',
|
||||
# path => ['/usr/bin','/usr/sbin'],
|
||||
# cwd => $ng_user_home,
|
||||
# require => Exec['create_policy_checknagios'],
|
||||
# refreshonly => true,
|
||||
# notify => Service[$ng_service],
|
||||
# }
|
||||
|
||||
# sealert status.dat
|
||||
|
||||
exec { 'create_policy_statusdat':
|
||||
command => template($ng_statdat_erb),
|
||||
path => ['/usr/bin','/usr/sbin'],
|
||||
user => $ng_user,
|
||||
cwd => $ng_user_home,
|
||||
creates => "${ng_user_home}/my-http.pp",
|
||||
notify => Exec['semodule_statusdat'],
|
||||
}
|
||||
|
||||
exec { 'semodule_statusdat':
|
||||
command => "semodule -i ${ng_user_home}/my-httpd.pp",
|
||||
path => ['/usr/bin','/usr/sbin'],
|
||||
user => $ng_user,
|
||||
cwd => $ng_user_home,
|
||||
require => Exec['create_policy_statusdat'],
|
||||
refreshonly => true,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# sealert grep
|
||||
|
||||
exec { 'create_policy_grep':
|
||||
command => template($ng_grep_erb),
|
||||
path => ['/usr/bin','/usr/sbin'],
|
||||
user => $ng_user,
|
||||
cwd => $ng_user_home,
|
||||
creates => "${ng_user_home}/my-grep.pp",
|
||||
notify => Exec['semodule_statusdat'],
|
||||
}
|
||||
|
||||
exec { 'semodule_grep':
|
||||
command => "semodule -i ${ng_user_home}/my-grep.pp",
|
||||
path => ['/usr/bin','/usr/sbin'],
|
||||
user => $ng_user,
|
||||
cwd => $ng_user_home,
|
||||
require => Exec['create_policy_grep'],
|
||||
refreshonly => true,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
## cd_nagios::server::access.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Define manages user- and password rules for accessing nagios.
|
||||
# @param [string] ng_htpasswd_user user name for the /etc/nagios/passwd file
|
||||
# @param [string] ng_htpasswd_password the encrypted password for the
|
||||
# /etc/nagios/passwd file.
|
||||
##############################################################################
|
||||
define cd_nagios::server::access (
|
||||
|
||||
Optional[String] $ng_htpasswd_user = undef,
|
||||
Optional[String] $ng_htpasswd_password = undef,
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_htpasswd_file = $cd_nagios::params::ng_htpasswd_file
|
||||
$ng_htpasswd_rule = $cd_nagios::params::ng_htpasswd_rule
|
||||
$ng_service = $cd_nagios::params::ng_service
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# create password rules
|
||||
|
||||
concat::fragment { $name:
|
||||
target => $ng_htpasswd_file,
|
||||
content => template($ng_htpasswd_rule),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
## cd_nagios::server::access_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages presence of /etc/nagios/phtpasswd file.
|
||||
# @example
|
||||
# cd_nagios::server::access { 'example':
|
||||
# ng_htpasswd_user => 'example_user',
|
||||
# ng_htpasswd_password => 'example_password_encrypted',
|
||||
# }
|
||||
##############################################################################
|
||||
class cd_nagios::server::access_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios/htpasswd file
|
||||
|
||||
concat { $ng_htpasswd_file:
|
||||
ensure => present,
|
||||
path => $ng_htpasswd_file,
|
||||
owner => 'root',
|
||||
group => 'apache',
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
## cd_nagios::server::files.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages all configuration files required for cd_nagios.
|
||||
##############################################################################
|
||||
class cd_nagios::server::files (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
if $ng_use_https == true {
|
||||
if $ng_enable_certbot == true {
|
||||
require cd_nagios::certbot::certs
|
||||
}
|
||||
}
|
||||
|
||||
require cd_nagios::main::dirs
|
||||
|
||||
# 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:
|
||||
ensure => file,
|
||||
path => $ng_cgi_cfg_file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_cgi_cfg_erb),
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
## Apache files
|
||||
# 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,
|
||||
}
|
||||
|
||||
file { $ng_forward_conf:
|
||||
ensure => file,
|
||||
path => $ng_forward_conf,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => httpd_config_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_forward_conf_erb),
|
||||
notify => Service[$ae_service],
|
||||
}
|
||||
|
||||
if $ng_use_https == true {
|
||||
# create ssl vhost
|
||||
|
||||
file { $ng_ssl_vhost_file:
|
||||
ensure => file,
|
||||
path => $ng_ssl_vhost_file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => httpd_config_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_ssl_vhost_erb),
|
||||
notify => Service[$ae_service],
|
||||
}
|
||||
}
|
||||
|
||||
if $ng_use_https != true {
|
||||
# remove ssl_vhost
|
||||
|
||||
file { $ng_ssl_vhost_file:
|
||||
ensure => absent,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,198 +0,0 @@
|
||||
## cd_nagios::server::service.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages the service(s) for cd_nagios.
|
||||
#############################################################################
|
||||
class cd_nagios::server::service (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
if $ng_include_nrpe == true {
|
||||
require cd_nrpe
|
||||
}
|
||||
|
||||
require cd_nagios::server::files
|
||||
require cd_nagios::server::access_rules
|
||||
require cd_nagios::nagios::objects::config
|
||||
require cd_nagios::nagios::resources::resource
|
||||
|
||||
service { $ng_service:
|
||||
ensure => running,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
@@nagios_host { 'localhost':
|
||||
ensure => $ng_ping_ensure,
|
||||
alias => 'localhost',
|
||||
address => '127.0.0.1',
|
||||
use => 'linux-server',
|
||||
target => $ng_target_localhost,
|
||||
hostgroups => 'linux-servers',
|
||||
contacts => 'ops',
|
||||
max_check_attempts => $ng_max_check_attempts,
|
||||
notification_period => '24x7',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
@@nagios_service { 'check_nagios_localhost':
|
||||
check_command => $ng_nagios_service_cmd,
|
||||
use => 'generic-service',
|
||||
host_name => 'localhost',
|
||||
notification_period => '24x7',
|
||||
service_description => 'localhost_nagios_service',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
contacts => 'ops',
|
||||
}
|
||||
|
||||
@@nagios_host { $::fqdn:
|
||||
ensure => $ng_ping_ensure,
|
||||
alias => $::hostname,
|
||||
address => $::fqdn,
|
||||
use => 'linux-server',
|
||||
target => $ng_target_host,
|
||||
hostgroups => 'linux-servers',
|
||||
contacts => 'ops',
|
||||
max_check_attempts => $ng_max_check_attempts,
|
||||
notification_period => '24x7',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
||||
notify => Service[$ng_user],
|
||||
}
|
||||
|
||||
@@nagios_service { "root_partition_${::hostname}":
|
||||
ensure => $ng_disk_ensure,
|
||||
check_command => "check_nrpe!check_disk!${ng_disk_warn}!${ng_disk_crit}!/",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_root_partition",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
if $ng_enable_swap_check == true {
|
||||
@@nagios_service { "Swap_Usage_${::hostname}":
|
||||
ensure => $ng_swap_ensure,
|
||||
check_command => "check_nrpe!check_swap!${ng_swap_warn}!${ng_swap_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_swap_usage",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
}
|
||||
|
||||
@@nagios_service { "Local_Users_${::hostname}":
|
||||
ensure => $ng_users_ensure,
|
||||
check_command => "check_nrpe!check_users!${ng_users_warn}!${ng_users_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_local_users",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Total Processes_${::hostname}":
|
||||
ensure => $ng_procs_tot_ens,
|
||||
check_command => "check_nrpe!check_procs!${ng_procs_tot_warn}!${ng_procs_tot_crit}!${ng_procs_tot_param}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_total_processes",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Zombie Processes_${::hostname}":
|
||||
ensure => $ng_procs_z_ensure,
|
||||
check_command => "check_nrpe!check_procs!${ng_procs_z_warn}!${ng_procs_z_crit}!${ng_procs_z_param}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_zombie_processes",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Current_Load_${::hostname}":
|
||||
ensure => $ng_load_ensure,
|
||||
check_command => "check_nrpe!check_load!${ng_load_warn}!${ng_load_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_current_load",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
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'] }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user