stx-puppet/puppet-manifests/src/modules/platform/manifests/collectd.pp

79 lines
1.8 KiB
Puppet

class platform::collectd::params (
$interval = undef,
$timeout = undef,
$read_threads = undef,
$write_threads = undef,
$write_queue_limit_high = undef,
$write_queue_limit_low = undef,
$max_read_interval = undef,
$network_servers = [],
$default_server_port = undef,
# python plugin controls
$module_path = undef,
$plugins = [],
$log_traces = undef,
$encoding = undef,
$collectd_d_dir = undef,
) {}
class platform::collectd
inherits ::platform::collectd::params {
#Get port or set default one
$server_ports = $network_servers.map |$elem| {
if(split($elem, ':').size() > 2) {
if(']:' in $elem) {
split($elem, ':')[-1]
} else {
$default_server_port
}
} else {
if(':' in $elem) {
split($elem, ':')[-1]
} else {
$default_server_port
}
}
}
#Get address
$server_ips = $network_servers.map | $i, $elem| {
$address = regsubst($elem.delete(":${server_ports[$i]}"),'[\[\]]','','G')
}
file { '/etc/collectd.conf':
ensure => 'present',
replace => true,
content => template('platform/collectd.conf.erb'),
} # now start collectd
-> exec { 'collectd-enable':
command => 'systemctl enable collectd',
unless => 'systemctl is-enabled collectd'
}
# ensure pmon soft link for process monitoring
-> file { '/etc/pmon.d/collectd.conf':
ensure => 'link',
target => '/opt/collectd/extensions/config/collectd.conf.pmon',
owner => 'root',
group => 'root',
mode => '0600',
}
}
class platform::collectd::runtime {
include ::platform::collectd
}
# restart target
class platform::collectd::restart {
include ::platform::collectd
exec { 'collectd-restart':
command => '/usr/local/sbin/pmon-restart collectd'
}
}