OP#436 update Readme

This commit is contained in:
2026-03-02 15:01:55 +01:00
parent bfe21a8f11
commit 5abb52ff06
4 changed files with 181 additions and 52 deletions

138
README.md
View File

@@ -102,7 +102,7 @@ Use that value to override the default password in ENC or Hiera, if you use it.
### 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:
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:
```puppet
confdroid_nagios::server::access { 'example':
@@ -126,6 +126,25 @@ In order to add contacts for the notifications, address the define `confdroid_na
This requires the contact groups to be in place as well.
Alternatively you also can create a custom class within this module and use the export command like this:
```puppet
@@nagios_contact { 'ops':
ensure => present,
alias => 'Operations',
contact_name => 'ops',
contactgroups => 'operations',
email => 'ops@example.net',
can_submit_commands => '1',
register => '1',
use => 'generic-contact',
target => $ng_target_base_contact,
owner => $ng_user,
group => $ng_user,
mode => '0640',
}
```
### 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:
@@ -138,6 +157,21 @@ In order to add contact groups for the notifications, address the define `confdr
}
```
Alternatively you also can create a custom class within this module and use the export command like this:
```puppet
@@nagios_contactgroup { 'operations':
ensure => present,
alias => 'Operations Team',
contactgroup_name => 'operations',
owner => $ng_user,
group => $ng_user,
mode => '0640',
register => '1',
target => $ng_tgt_contactgroup_base,
}
```
### Adding host groups
In order to add host groups, address the define `confdroid_nagios::nagios::objects::add_hostgroups` in your config repo, site.pp etc. like this:
@@ -149,22 +183,116 @@ In order to add host groups, address the define `confdroid_nagios::nagios::objec
}
```
Hosts will be populated through the target.pp dynamically.
Alternatively you also can create a custom class within this module and use the export command like this:
```puppet
@@nagios_hostgroup { 'rhel-servers':
ensure => present,
hostgroup_name => 'rhel-servers',
alias => 'RHEL Servers',
owner => $ng_user,
group => $ng_user,
mode => '0640',
register => '1',
target => $ng_target_hostgroup_base,
}
```
Hosts themselves will be populated through the target.pp dynamically.
### Adding service groups
ToDo
In order to add service groups, address the define `confdroid_nagios::nagios::objects::add_servicegroups` in your config repo, site.pp etc. like this:
```puppet
confdroid_nagios::nagios::objects::add_servicegroups { 'example_servicegroup':
ng_servicegroup_name => 'example_servicegroup',
ng_servicegroup_alias => 'Example servicegroup',
}
```
Alternatively you also can create a custom class within this module and use the export command like this:
```puppet
@@nagios_servicegroup { 'network-services':
ensure => present,
servicegroup_name => 'network-services',
alias => 'Network Services',
owner => $ng_user,
group => $ng_user,
mode => '0640',
register => '1',
target => $ng_target_svcgrp_base,
}
```
### Adding time periods
ToDo
In order to add time periods, address the define `confdroid_nagios::nagios::objects::add_timeperiods` in your config repo, site.pp etc. like this:
```puppet
confdroid_nagios::nagios::objects::add_timeperiods { 'example_timeperiod':
ng_timep_name => 'example_timeperiod',
ng_timep_alias => 'Example timeperiod',
ng_timep_monday => '00:00-00:00',
ng_timep_tuesday => '00:00-00:00',
ng_timep_wednesday => '00:00-00:00',
ng_timep_thursday => '00:00-00:00',
ng_timep_friday => '00:00-00:00',
ng_timep_saturday => '00:00-00:00',
ng_timep_sunday => '00:00-00:00',
}
```
Alternatively you also can create a custom class within this module and use the export command like this:
```puppet
@@nagios_timeperiod { 'office_hours':
ensure => present,
timeperiod_name => 'office_hours',
alias => 'Office hours only, 5 Days A Week 09-05',
monday => '09:00-17:00',
tuesday => '09:00-17:00',
wednesday => '09:00-17:00',
thursday => '09:00-17:00',
friday => '09:00-17:00',
saturday => '00:00-00:00',
sunday => '00:00-00:00',
owner => $ng_user,
group => $ng_user,
mode => '0640',
register => '1',
target => $ng_tgt_timeperiods_base,
}
```
### Adding custom commands
ToDo
Commands are defined in `confdroid_nagios::nagios::objects::commands` and deployed /etc/nagios/conf.d/nagios_commands_base.cfg through PuppetDB exports like this:
```puppet
@@nagios_command { 'check_disk':
ensure => present,
command_name => 'check_disk',
command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
```
### Adding templates
In order to add time periods, address the define `confdroid_nagios::nagios::objects::add_templates` in your config repo, site.pp etc. like this:
```puppet
confdroid_nagios::nagios::objects::templates { 'generic contact':
ng_template_object => 'contact',
ng_template_object_name => 'generic-contact',
}
```
## PuppetDB
A working instance of PuppetDB connected to the Puppet master is required for this to work. Installation and configuration of PuppetDB is out of scope for this module, however [cd_puppetdb](https://gitlab.confdroid.com/puppet/cd_puppetdb) is available to automate this task for you as well within a few minutes.

View File

@@ -13,8 +13,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
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$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -23,8 +23,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'notify-service-by-email',
command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -33,8 +33,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check-host-alive',
command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -43,8 +43,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_disk',
command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -53,8 +53,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_local_load',
command_line => '$USER1$/check_load -w $ARG1$ -c $ARG2$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -63,8 +63,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_local_procs',
command_line => '$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -73,8 +73,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_local_users',
command_line => '$USER1$/check_users -w $ARG1$ -c $ARG2$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -83,8 +83,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_local_swap',
command_line => '$USER1$/check_swap -w $ARG1$ -c $ARG2$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -93,8 +93,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_ftp',
command_line => '$USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -103,8 +103,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_snmp',
command_line => '$USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -113,8 +113,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_http',
command_line => '$USER1$/check_http -I $HOSTADDRESS$ $ARG1$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -123,8 +123,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_ssh',
command_line => '$USER1$/check_ssh $ARG1$ $HOSTADDRESS$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -133,8 +133,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_ping',
command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -143,8 +143,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_tcp',
command_line => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -153,8 +153,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_udp',
command_line => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -163,8 +163,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_nrpe',
command_line => '$USER1$/check_nrpe -t 30 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -173,8 +173,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_nagios',
command_line => '$USER1$/check_nagios -F $ARG1$ -e $ARG2$ -C $ARG3$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -183,8 +183,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'check_bandwidth',
command_line => '$USER1$/check_bandwidth.sh -t 30 -H $HOSTADDRESS$ linux $ARG1$ $ARG2$ $ARG3$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -193,8 +193,8 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'process-service-perfdata-file',
command_line => '/bin/mv /var/log/pnp4nagios/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@ -203,18 +203,18 @@ class confdroid_nagios::nagios::objects::commands (
ensure => present,
command_name => 'process-host-perfdata-file',
command_line => '/bin/mv /var/log/pnp4nagios/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}
@@nagios_command { 'check_ntp_time':
@@nagios_command { 'check_ntp_time':
ensure => present,
command_name => 'check_ntp_time',
command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$',
owner => 'nagios',
group => 'nagios',
owner => $ng_user,
group => $ng_user,
mode => '0640',
target => $ng_target_command,
}

View File

@@ -3,9 +3,10 @@
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary Class manages /etc/nagios/conf.d/nagios_templates.cfg through
# concat.
# @example confdroid_nagios::nagios::objects::templates { 'generic contact':
# ng_template_object => 'contact',
# ng_template_object_name => 'generic-contact',
# @example
# confdroid_nagios::nagios::objects::templates { 'generic contact':
# ng_template_object => 'contact',
# ng_template_object_name => 'generic-contact',
# }
################################################################################
class confdroid_nagios::nagios::objects::template_rules (

View File

@@ -238,7 +238,7 @@ class confdroid_nagios::params (
$ng_tgt_svcgrp_head_erb = 'confdroid_nagios/nagios/svcgroups_cfg_head.erb'
$ng_tgt_svcgrp_rule_erb = 'confdroid_nagios/nagios/svcgroups_cfg_rule.erb'
$ng_target_base_contact = "${ng_conf_d_dir}/nagios_contact_base.cfg"
$ng_target_add_contact = "${ng_conf_d_dir}/nagios_contact_add.cfg"
$ng_target_add_contact = "${ng_conf_d_dir}/nagios_contact.cfg"
$ng_contacts_head_erb = 'confdroid_nagios/nagios/contacts_cfg_head.erb'
$ng_contacts_rule_erb = 'confdroid_nagios/nagios/contacts_cfg_rule.erb'
$ng_tgt_contactgroup_base = "${ng_conf_d_dir}/nagios_contactgroup_base.cfg"