OP#436 add nagios contactgroups

This commit is contained in:
2026-03-01 15:12:15 +01:00
parent f6ae7094a3
commit d9265aea38
4 changed files with 136 additions and 4 deletions

View File

@@ -7,8 +7,10 @@
- [Synopsis](#synopsis)
- [WARNING](#warning)
- [Features](#features)
- [configuring user access](#configuring-user-access)
- [Additional users](#additional-users)
- [configuring UI user access](#configuring-ui-user-access)
- [Additional UI users](#additional-ui-users)
- [Adding contacts](#adding-contacts)
- [Adding contact groups](#adding-contact-groups)
- [Repo Documentation](#repo-documentation)
- [Dependencies](#dependencies)
- [Deployment](#deployment)
@@ -40,7 +42,7 @@ At this stage, the module is being redeveloped and being built to the latest sta
- configures the main nagios configuration file and sets values as (pre)configured per values in params, which can be overwritten.
- if `ng_include_nrpe`is set to `true`, the confdroid_nrpe module is automatically applied on clients ([confdroid_nrpe](https://sourcecode.confdroid.com/confdroid/confdroid_nrpe) must be in the catalogue then)
### configuring user access
### configuring UI user access
Main access to the user interface requires defining an administrative user and password via `ng_main_user` and `ng_main_password`. The password should be encrypted like this:
@@ -58,7 +60,7 @@ testuser: $2y$05$rNy/P22OfYZlpdEPnCAIg.OUizRD34P7pDRwUGiaYjH44PcRuZ2ia
Use that value to override the default password in ENC or Hiera, if you use it.
### Additional users
### Additional UI users
The main user is automatically created. If you want to add more users, this should be done via the define confdroid_nagios::server::access. In your control repo, site.pp etc. address the access define like this:
@@ -69,6 +71,33 @@ confdroid_nagios::server::access { 'example':
}
```
### Adding contacts
In order to add contacts for the notifications, address the define `confdroid_nagios::nagios::objects::add_contact` in your config repo, site.pp etc. like this:
```puppet
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',
}
```
This requires the contact groups to be in place as well.
### Adding contact groups
In order to add contact groups for the notifications, address the define `confdroid_nagios::nagios::objects::add_contactgroups` in your config repo, site.pp etc. like this:
```puppet
confdroid_nagios::nagios::objects::add_contactgroups { 'example_group':
ng_contactgroup_name => 'example_group',
ng_contactgroup_alias => 'Example Group',
ng_contactgroup_register => '1',
}
```
## Repo Documentation
See the full Puppet documentation including parameters in `docs/index.html`

View File

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

View File

@@ -0,0 +1,40 @@
## confdroid_nagios::nagios::objects::add_contactgroups_rules.pp
# Module name: confdroid_nagios
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages /etc/nagios/conf.d/nagios_add_contactgroups.cfg file
# and populates through define and external puppet rules
# @example
# confdroid_nagios::nagios::objects::add_contactgroups { 'example_group':
# ng_contactgroup_name => 'example_group',
# ng_contactgroup_alias => 'Example Group',
# ng_contactgroup_register => '1',
# }
################################################################################
class confdroid_nagios::nagios::objects::add_contactgroups_rules (
) inherits confdroid_nagios::params {
if $ng_nagios_server == $fqdn {
# 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',
}
}
}

View File

@@ -48,6 +48,39 @@ class confdroid_nagios::params (
# httpd
Boolean $ng_use_https = false,
# 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',
) {
# Default facts
$fqdn = $facts['networking']['fqdn']