diff --git a/site-modules/profile/manifests/icinga2/plugins/rabbitmq.pp b/site-modules/profile/manifests/icinga2/plugins/rabbitmq.pp index 7a6804c1..1378ea93 100644 --- a/site-modules/profile/manifests/icinga2/plugins/rabbitmq.pp +++ b/site-modules/profile/manifests/icinga2/plugins/rabbitmq.pp @@ -1,89 +1,84 @@ # RabbitMQ icinga2 plugins class profile::icinga2::plugins::rabbitmq { $packages = ['nagios-plugins-rabbitmq', 'libjson-perl'] package {$packages: ensure => present, } $plugin_configfile = '/etc/icinga2/conf.d/rabbitmq-plugins.conf' $base_arguments = { '-H' => '$rabbitmq_host$', '--port' => '$rabbitmq_port$', '--user' => '$rabbitmq_user$', '--password' => '$rabbitmq_password$', + } + + $vhost_argument = { '--vhost' => { 'value' => '$rabbitmq_vhost$', 'set_if' => '{{ var vhost = macro("$rabbitmq_vhost$"); return len(vhost) > 0 }}', - } + }, } $base_vars = { 'rabbitmq_host' => '$check_address$', 'rabbitmq_port' => '15672', 'rabbitmq_user' => 'guest', 'rabbitmq_password' => 'guest', } $plugins = { - rabbitmq_shovels => { - arguments => $base_arguments, + rabbitmq_aliveness => { + arguments => $base_arguments + $vhost_argument, vars => $base_vars, }, - rabbitmq_partition => { + rabbitmq_connections => { arguments => $base_arguments, vars => $base_vars, }, - rabbitmq_connections => { + rabbitmq_objects => { arguments => $base_arguments, vars => $base_vars, }, - rabbitmq_aliveness => { + rabbitmq_overview => { arguments => $base_arguments, vars => $base_vars, }, - rabbitmq_cluster => { + rabbitmq_partition => { arguments => $base_arguments, vars => $base_vars, }, - rabbitmq_watermark => { - arguments => $base_arguments, + rabbitmq_queue => { + arguments => $base_arguments + $vhost_argument, vars => $base_vars, }, rabbitmq_server => { arguments => $base_arguments + { '--node' => '$rabbitmq_node$', }, vars => $base_vars + { 'rabbitmq_node' => '$check_address$', }, }, - rabbitmq_exchange => { - arguments => $base_arguments, - vars => $base_vars, - }, - rabbitmq_objects => { - arguments => $base_arguments, - vars => $base_vars, - }, - rabbitmq_overview => { + rabbitmq_shovels => { arguments => $base_arguments, vars => $base_vars, }, - rabbitmq_queue => { - arguments => $base_arguments, + rabbitmq_watermark => { + arguments => $base_arguments + $vhost_argument, vars => $base_vars, }, } $plugins.each |$command, $plugin| { ::icinga2::object::checkcommand {$command: import => ['plugin-check-command', 'ipv4-or-ipv6'], command => ["-:PluginContribDir + \"-rabbitmq/check_${command}\""], arguments => $plugin['arguments'], vars => $plugin['vars'], target => $plugin_configfile, } } }