Puppet Class: icingaweb2::module::monitoring
- Defined in:
- manifests/module/monitoring.pp
Summary
Manages the monitoring module. This module is mandatory for probably every setup.Overview
Requirements:
* IDO feature in Icinga 2 (MySQL or PostgreSQL)
* `ApiUser` object in Icinga 2 with proper permissions
class {'icingaweb2::module::monitoring':
ido_host => 'localhost',
ido_type => 'mysql',
ido_db_name => 'icinga2',
ido_db_username => 'icinga2',
ido_db_password => 'supersecret',
commandtransports => {
icinga2 => {
transport => 'api',
username => 'icingaweb2',
password => 'supersecret',
}
}
}
Note:
At first have a look at the [Monitoring module documentation](www.icinga.com/docs/icingaweb2/latest/modules/monitoring/doc/01-About/).
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'manifests/module/monitoring.pp', line 58
class icingaweb2::module::monitoring(
Enum['absent', 'present'] $ensure = 'present',
Variant[String, Array[String]] $protected_customvars = ['*pw*', '*pass*', 'community'],
Enum['mysql', 'pgsql'] $ido_type = 'mysql',
Optional[Stdlib::Host] $ido_host = undef,
Stdlib::Port $ido_port = 3306,
Optional[String] $ido_db_name = undef,
Optional[String] $ido_db_username = undef,
Optional[String] $ido_db_password = undef,
Optional[String] $ido_db_charset = undef,
Hash $commandtransports = {},
){
$conf_dir = $::icingaweb2::globals::conf_dir
$module_conf_dir = "${conf_dir}/modules/monitoring"
case $::osfamily {
'Debian': {
$install_method = 'package'
$package_name = 'icingaweb2-module-monitoring'
}
default: {
$install_method = 'none'
$package_name = undef
}
}
icingaweb2::config::resource { 'icingaweb2-module-monitoring':
type => 'db',
db_type => $ido_type,
host => $ido_host,
port => $ido_port,
db_name => $ido_db_name,
db_username => $ido_db_username,
db_password => $ido_db_password,
db_charset => $ido_db_charset,
}
$backend_settings = {
'type' => 'ido',
'resource' => 'icingaweb2-module-monitoring',
}
$security_settings = {
'protected_customvars' => $protected_customvars ? {
String => $protected_customvars,
Array[String] => join($protected_customvars, ','),
}
}
$settings = {
'module-monitoring-backends' => {
'section_name' => 'backends',
'target' => "${module_conf_dir}/backends.ini",
'settings' => delete_undef_values($backend_settings)
},
'module-monitoring-security' => {
'section_name' => 'security',
'target' => "${module_conf_dir}/config.ini",
'settings' => delete_undef_values($security_settings)
}
}
create_resources('icingaweb2::module::monitoring::commandtransport', $commandtransports)
icingaweb2::module {'monitoring':
ensure => $ensure,
install_method => $install_method,
package_name => $package_name,
settings => $settings,
}
}
|