diff --git a/README.md b/README.md index 53b5b2a..2fff146 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ - [Puppet server and agent](#puppet-server-and-agent) - [Firewall](#firewall) - [Directories, Files and Services](#directories-files-and-services) + - [Nagios monitoring](#nagios-monitoring) - [Optional](#optional) - [R10k service](#r10k-service) - [R10k Web hook](#r10k-web-hook) @@ -60,6 +61,23 @@ This module is also designed to work with [Foreman][def] as External Node Class permissions and selinux context - start services as required +### Nagios monitoring + +When `$pt_manage_nagios` is `true`, the module exports a Puppet agent check on +every node and a Puppet Server check on the Puppet Server node. The target +Nagios installation must provide the NRPE command alias used by the export. +The Puppet Server check can use the standard `check_procs` plugin: + +```ini +command[check_puppet_server]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$ +``` + +With the exported command, `check_puppet_server!1:!puppetserver` alerts when no +running process has `puppetserver` in its full command line. It does not check +whether the systemd service is enabled. + +The modules `confdroid_nagios` and `confdroid_nrpe` include the proper commands already. + ### Optional #### R10k service diff --git a/manifests/monitoring/target.pp b/manifests/monitoring/target.pp index b50bae3..041afd9 100644 --- a/manifests/monitoring/target.pp +++ b/manifests/monitoring/target.pp @@ -7,6 +7,7 @@ class confdroid_puppet::monitoring::target ( ) inherits confdroid_puppet::params { if $pt_manage_nagios == true { + # puppet agent service @@nagios_service { "check_puppet_${fqdn}": check_command => "check_nrpe!check_puppet!${pt_procs_allowed}!puppet", use => 'generic-service', @@ -19,5 +20,21 @@ class confdroid_puppet::monitoring::target ( mode => '0640', contacts => $pt_target_contacts, } + + if $fqdn == $pt_pm_fqdn { + # puppet server service + @@nagios_service { "check_puppet_server_${fqdn}": + check_command => "check_nrpe!check_puppet_server!${pt_procs_allowed}!puppet", + use => 'generic-service', + host_name => $fqdn, + notification_period => '24x7', + service_description => "${fqdn}_check_puppet_server", + target => $pt_target_service, + owner => 'nagios', + group => 'nagios', + mode => '0640', + contacts => $pt_target_contacts, + } + } } }