Documentation

Icinga2 CheckCommand

object CheckCommand "check_ptr_validname" {
  import "plugin-check-command"

  command = [ PluginDir + "/check_ptr_validname" ]

  arguments += {
    "-i" = "$check_ptr_ip$"
    "-r" = "$check_ptr_resolver$"
    "--timeout-ms" = "$check_ptr_timeout_ms$"
    "--warn-partial" = {
      set_if = "$check_ptr_warn_partial$"
    }
    "--perfdata" = {
      set_if = "$check_ptr_perfdata$"
    }
    "--idn-check" = {
      set_if = "$check_ptr_idn_check$"
    }
  }

  vars.check_ptr_timeout_ms = 2000
  vars.check_ptr_perfdata = true
}

Icinga2 apply rule

apply Service "ptr-validname-" for (ip => cfg in host.vars.ptr_checks) {
  import "generic-service"

  check_command = "check_ptr_validname"
  vars.check_ptr_ip = ip
  vars += cfg

  assign where host.vars.ptr_checks
}

Nagios command and service

define command {
  command_name    check_ptr_validname
  command_line    /usr/lib/nagios/plugins/check_ptr_validname -i $ARG1$ --perfdata
}

define service {
  use                     generic-service
  host_name               dns-target-host
  service_description     PTR Validname 8.8.8.8
  check_command           check_ptr_validname!8.8.8.8
}

General CLI usage

# Manual validation
./check_ptr_validname -i 8.8.8.8 --perfdata

# Explicit resolver
./check_ptr_validname -i 1.1.1.1 -r 8.8.8.8 --warn-partial

# JSON output for automation
./check_ptr_validname -i 8.8.4.4 --json | jq .