OP#436 add nagios contacts

This commit is contained in:
2026-03-01 14:46:40 +01:00
parent 4448200905
commit 7e462fbd37
5 changed files with 82 additions and 5 deletions

View File

@@ -10,7 +10,7 @@ class confdroid_nagios::nagios::config (
require confdroid_nagios::nagios::objects::commands require confdroid_nagios::nagios::objects::commands
#require confdroid_nagios::nagios::objects::template_rules #require confdroid_nagios::nagios::objects::template_rules
#require confdroid_nagios::nagios::objects::contacts #require confdroid_nagios::nagios::objects::contacts
#require confdroid_nagios::nagios::objects::add_contact_rules require confdroid_nagios::nagios::objects::add_contact_rules
#require confdroid_nagios::nagios::objects::contactgroups #require confdroid_nagios::nagios::objects::contactgroups
#require confdroid_nagios::nagios::objects::add_contactgroups_rules #require confdroid_nagios::nagios::objects::add_contactgroups_rules
#require confdroid_nagios::nagios::objects::hostgroups #require confdroid_nagios::nagios::objects::hostgroups

View File

@@ -0,0 +1,38 @@
## confdroid_nagios::nagios::objects::add_contact.pp
# Module name: confdroid_nagios
# Author: 12ww1160 (12ww1160@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
# confdroid_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 confdroid_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 = $confdroid_nagios::params::ng_nagios_server
$ng_target_add_contact = $confdroid_nagios::params::ng_target_add_contact
$ng_contacts_rule_erb = $confdroid_nagios::params::ng_contacts_rule_erb
if $ng_nagios_server == $fqdn {
concat::fragment { $name:
target => $ng_target_add_contact,
content => template($ng_contacts_rule_erb),
}
}
}

View File

@@ -0,0 +1,40 @@
## confdroid_nagios::nagios::objects::add_contact_rules.pp
# Module name: confdroid_nagios
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages /etc/nagios/conf.d/nagios_add_contact.cfg through
# concat.
# @example confdroid_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 confdroid_nagios::nagios::objects::add_contact_rules (
) inherits confdroid_nagios::params {
if $ng_nagios_server == $fqdn {
# 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',
}
}
}

View File

@@ -13,7 +13,7 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present, ensure => present,
command_name => 'notify-host-by-email', 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$', 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 => 'nagions', owner => 'nagios',
group => 'nagios', group => 'nagios',
mode => '0640', mode => '0640',
target => $ng_target_command, target => $ng_target_command,

View File

@@ -77,6 +77,8 @@ class confdroid_nagios::params (
# files # files
$ng_nagios_cfg_file = "${ng_main_dir}/nagios.cfg" $ng_nagios_cfg_file = "${ng_main_dir}/nagios.cfg"
$ng_nagios_cfg_erb = 'confdroid_nagios/nagios/nagios_cfg.erb' $ng_nagios_cfg_erb = 'confdroid_nagios/nagios/nagios_cfg.erb'
$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
$ng_cgi_cfg_erb = 'confdroid_nagios/nagios/cgi_cfg.erb'
# nagios # nagios
$ng_target_templates = "${ng_conf_d_dir}/nagios_templates.cfg" $ng_target_templates = "${ng_conf_d_dir}/nagios_templates.cfg"
@@ -117,9 +119,6 @@ class confdroid_nagios::params (
$ng_resource_erb = 'confdroid_nagios/nagios/resource_cfg.erb' $ng_resource_erb = 'confdroid_nagios/nagios/resource_cfg.erb'
## old ## old
$ng_main_config = "${ng_main_dir}/nagios.cfg"
$ng_cgi_cfg_file = "${ng_main_dir}/cgi.cfg"
$ng_cgi_cfg_erb = 'confdroid_nagios/nagios/cgi_cfg.erb'
$ng_taccgi_erb = 'confdroid_nagios/selinux/taccgi.erb' $ng_taccgi_erb = 'confdroid_nagios/selinux/taccgi.erb'
$ng_statcgi_erb = 'confdroid_nagios/selinux/statuscgi.erb' $ng_statcgi_erb = 'confdroid_nagios/selinux/statuscgi.erb'
$ng_statdat_erb = 'confdroid_nagios/selinux/statusdat.erb' $ng_statdat_erb = 'confdroid_nagios/selinux/statusdat.erb'