From 94042d4eb7a611d625579e13a21aba6ad7614778 Mon Sep 17 00:00:00 2001 From: 12ww1160 <12ww1160@confdroid.com> Date: Mon, 7 Sep 2026 16:33:31 +0200 Subject: [PATCH] OP#672 add nagios monitoring --- manifests/main/config.pp | 4 ++++ manifests/monitoring/target.pp | 23 +++++++++++++++++++++++ manifests/params.pp | 9 +++++++++ 3 files changed, 36 insertions(+) create mode 100644 manifests/monitoring/target.pp diff --git a/manifests/main/config.pp b/manifests/main/config.pp index 224610e..1c8d31f 100644 --- a/manifests/main/config.pp +++ b/manifests/main/config.pp @@ -11,4 +11,8 @@ class confdroid_puppet::main::config ( if $pt_use_r10k == true { include confdroid_puppet::r10k::install } + + if $pt_manage_nagios == true { + include confdroid_puppet::monitoring::target + } } diff --git a/manifests/monitoring/target.pp b/manifests/monitoring/target.pp new file mode 100644 index 0000000..b50bae3 --- /dev/null +++ b/manifests/monitoring/target.pp @@ -0,0 +1,23 @@ +## confdroid_puppet::monitoring::target.pp +# Module name: confdroid_puppet +# Author: 12ww1160 (12ww1160@puppetsoft.com) +# @summary class manages exports for nagios monitoring +############################################################################## +class confdroid_puppet::monitoring::target ( + +) inherits confdroid_puppet::params { + if $pt_manage_nagios == true { + @@nagios_service { "check_puppet_${fqdn}": + check_command => "check_nrpe!check_puppet!${pt_procs_allowed}!puppet", + use => 'generic-service', + host_name => $fqdn, + notification_period => '24x7', + service_description => "${fqdn}_check_puppet", + target => $pt_target_service, + owner => 'nagios', + group => 'nagios', + mode => '0640', + contacts => $pt_target_contacts, + } + } +} diff --git a/manifests/params.pp b/manifests/params.pp index 22edac6..197f5e8 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -65,6 +65,9 @@ # @param [String] pt_pptdb_server_crt placeholder for the server.crt # @param [String] pt_pptdb_server_key placeholder for the server.crt # @param [String] pt_pptdb_log_max_age the max age for puppetdb logs in days +# @param [Boolean] pt_manage_nagios whether to manage nagios settings +# @param [String] pt_target_service the nagios service config file +# @param [Array] pt_target_contacts the nagios contacts to notify ############################################################################### class confdroid_puppet::params ( @@ -141,6 +144,12 @@ class confdroid_puppet::params ( String $pt_r10k_basedir = '/etc/puppetlabs/code/environments', String $pt_r10k_webhook_port = '8085', +# nagios + Boolean $pt_manage_nagios = false, + String $pt_target_service = '/etc/nagios/conf.d/puppet_service.cfg', + Array $pt_target_contacts = ['nagiosadmin'], + String $pt_procs_allowed = '1:' + ) { # facts $fqdn = $facts['networking']['fqdn']