diff --git a/.vscode/settings.json b/.vscode/settings.json index d16540a..2da8375 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,9 +8,11 @@ "httplog", "managehome", "maxconn", + "nagiosadmin", "nologin", "onlyif", "pidfile", + "procs", "redispatch", "roundrobin", "sess", diff --git a/manifests/main/config.pp b/manifests/main/config.pp index 7a0f81f..37a05d6 100644 --- a/manifests/main/config.pp +++ b/manifests/main/config.pp @@ -12,6 +12,10 @@ class confdroid_haproxy::main::config ( include confdroid_haproxy::monitoring::fail2ban } + if $hy_manage_nagios == true { + include confdroid_haproxy::monitoring::target + } + if $hy_selinux_allow_stats == true { exec { 'setsebool haproxy_connect_any on': path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'], diff --git a/manifests/monitoring/target.pp b/manifests/monitoring/target.pp new file mode 100644 index 0000000..9f49983 --- /dev/null +++ b/manifests/monitoring/target.pp @@ -0,0 +1,23 @@ +## confdroid_haproxy::monitoring::target.pp +# Module name: confdroid_haproxy +# Author: 12ww1160 (12ww1160@puppetsoft.com) +# @summary class manages exports for nagios monitoring +############################################################################## +class confdroid_haproxy::monitoring::target ( + +) inherits confdroid_haproxy::params { + if $hy_manage_nagios == true { + @@nagios_service { "check_haproxy_${fqdn}": + check_command => "check_nrpe!check_haproxy!${hy_procs_allowed}!haproxy", + use => 'generic-service', + host_name => $fqdn, + notification_period => '24x7', + service_description => "${fqdn}_check_haproxy", + target => $hy_target_service, + owner => 'nagios', + group => 'nagios', + mode => '0640', + contacts => $hy_target_contacts, + } + } +} diff --git a/manifests/params.pp b/manifests/params.pp index 4f8c51b..0421b35 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -55,6 +55,9 @@ # @param [Boolean] hy_manage_be_users whether to manage backend users # @param [Boolean] hy_selinux_allow_stats whether to allow stats in selinux # @param [String] hy_stats_port the port to use for stats. used in firewall settings +# @param [Boolean] hy_manage_nagios whether to manage nagios service checks +# @param [String] hy_target_service the path to the nagios service check file +# @param [Array] hy_target_contacts the contacts to use for nagios service checks ############################################################################### class confdroid_haproxy::params ( @@ -115,6 +118,12 @@ class confdroid_haproxy::params ( Boolean $hy_manage_be_users = false, String $hy_be_userlist = '####', +# nagios + Boolean $hy_manage_nagios = false, + String $hy_target_service = '/etc/nagios/conf.d/haproxy_service.cfg', + Array $hy_target_contacts = ['nagiosadmin'], + String $hy_procs_allowed = '1:1' + ) { $fqdn = $facts['networking']['fqdn']