class nodo::subsystem::monitor(
  $use_nagios    = hiera('nodo::subsystem::monitor::use_nagios',    True),
  $address       = hiera('nodo::subsystem::monitor::address',       $::ipaddress),
  $check_command = hiera('nodo::subsystem::monitor::check_command', 'check_ping'),
  $check_ping    = hiera('nodo::subsystem::monitor::check_ping',    present),
  $check_ssh     = hiera('nodo::subsystem::monitor::check_ssh',     absent),
  $ping_rate     = hiera('nodo::subsystem::monitor::ping_rate',     '!100.0,20%!500.0,60%')
) {

  if $use_nagios != false {

    $command = $check_command ? {
      'check_ping' => "check_ping${ping_rate}",
      default      => $check_command,
    }

    class { 'nagios::target':
      address       => $address,
      check_command => $command,
    }

    nagios::service::ping { "${::fqdn}":
      ensure    => $check_ping,
      ping_rate => $ping_rate,
    }

    nagios::service { "check_ssh4":
      ensure        => $check_ssh,
      check_command => "check_ssh_4",
    }
  }
}