The PowerDNS Recursor is a high-end, high-performance resolving name server. Utilizing multiple processors and supporting the same powerful scripting ability of the Authoritative Server, the Recursor delivers top performance while retaining the flexibility modern DNS deployments require.

Prerequisite

  1. Edit the configuration file in /etc/powerdns/recursor.conf and set the values as follows:
webserver=yes
api-key=<api key>            # only available since ver 4.0
webserver-readonly=yes       # default no
  1. Add the api-key and serverid in auto-monitoring.yaml file in /opt/opsramp/agent/conf/app/metrics/powerdnsrec
  2. For Virtual machines, install the Linux agent.

Configuring the credentials

Configure the credentials in the directory /opt/opsramp/agent/conf/app.d/creds.yaml

powerdnsrecursor:
- name: powerdnsrecursor
  user: <username>
  pwd: <Password>
  encoding-type: plain
  labels:
    key1: val1
    key2: val2
  

Configuring the application

Virtual machine

Configure the application in the directory /opt/opsramp/agent/conf/app/discovery/auto-detection.yaml

- name: powerdnsrecursor
  instance-checks:
    service-check:
      - pdns-recursor
    process-check:
      - pdns-recursor
    port-check:
      - 8082
  

Docker environment

Configure the application in the directory /opt/opsramp/agent/conf/app/discovery/auto-container-detection.yaml

- name: powerdnsrecursor
  container-checks:
    image-check:
      - powerdns
    port-check:
      - 8082
  

Kubernetes environment

Configure the application in config.yaml

- name: powerdnsrecursor
  container-checks:
    image-check:
      - powerdns
    port-check:
      - 8082
  

Validate

Go to Resources under the Infrastructure tab to check if your resources are onboarded and the metrics are collected.

Metrics

OpsRamp MetricMetric Display NameUnitDescription
powerdns_recursor_answers_slowAnswers SlowNumber of queries NOT answered within 1 second
powerdns_recursor_answers0_1Answers0 To 1Number of queries answered within 1 millisecond
powerdns_recursor_answers1_10Answers1 To 10Number of queries answered within 10 milliseconds
powerdns_recursor_answers10_100Answers10 To 100Number of queries answered within 100 milliseconds
powerdns_recursor_answers100_1000Answers100 To 1000Number of queries answered within 1 second
powerdns_recursor_auth4_answers_slowAuth4 Answers SlowNumber of queries NOT answered by auth4s within 1 second
powerdns_recursor_auth4_answers0_1Auth4 Answers0 To 1Number of queries answered by auth4s within 1 millisecond
powerdns_recursor_auth4_answers1_10Auth4 Answers1 To 10Number of queries answered by auth4s within 10 milliseconds
powerdns_recursor_auth4_answers10_100Auth4 Answers10 To 100Number of queries answered by auth4s within 100 milliseconds
powerdns_recursor_auth4_answers100_1000Auth4 Answers100 To 1000Number of queries answered by auth4s within 1 second
powerdns_recursor_auth6_answers_slowAuth6 Answers SlowNumber of queries NOT answered by auth6s within 1 second
powerdns_recursor_auth6_answers0_1Auth6 Answers0 To 1Number of queries answered by auth6s within 1 millisecond
powerdns_recursor_auth6_answers1_10Auth6 Answers1 To 10Number of queries answered by auth6s within 10 milliseconds
powerdns_recursor_auth6_answers10_100Auth6 Answers10 To 100Number of queries answered by auth6s within 100 milliseconds
powerdns_recursor_auth6_answers100_1000Auth6 Answers100 To 1000Number of queries answered by auth6s within 1 second
powerdns_recursor_cache_entriesCache EntriesNumber of cache hits
powerdns_recursor_cache_hitsCache HitsNumber of cache misses
powerdns_recursor_cache_missesCache MissesNumber of cache misses
powerdns_recursor_case_mismatchesCase MismatchesNumber of cache mismatches
powerdns_recursor_chain_resendsChain ResendsNumber of queries chained to existing outstanding query
powerdns_recursor_client_parse_errorsClient Parse ErrorsNumber of Client Parse Errors
powerdns_recursor_concurrent_queriesConcurrent QueriesNumber of Concurrent Queries
powerdns_recursor_dlg_only_dropsDlg Only DropsNumber of Dlg Only Drops
powerdns_recursor_dnssec_queriesDnssec QueriesNumber of Dnssec Queries
powerdns_recursor_dnssec_result_bogusDnssec Result BogusNumber of DNSSEC validations that had the Bogus state
powerdns_recursor_dnssec_result_indeterminateDnssec Result IndeterminateNumber of DNSSEC validations that had the Indeterminate state
powerdns_recursor_dnssec_result_insecureDnssec Result InsecureNumber of DNSSEC validations that had the Insecure state
powerdns_recursor_dnssec_result_ntaDnssec Result NtaNumber of DNSSEC validations that had the NTA (negative trust anchor) state
powerdns_recursor_dnssec_result_secureDnssec Result SecureNumber of DNSSEC validations that had the Secure state
powerdns_recursor_dnssec_validationsDnssec ValidationsNumber of DNSSEC validations performed
powerdns_recursor_dont_outqueriesDont OutqueriesDont Outqueries
powerdns_recursor_edns_ping_matchesEdns Ping MatchesNumber of servers that sent a valid EDNS PING response
powerdns_recursor_edns_ping_mismatchesEdns Ping MismatchesNumber of servers that sent an invalid EDNS PING response
powerdns_recursor_failed_host_entriesFailed Host EntriesNumber of Failed Host Entries
powerdns_recursor_ignored_packetsIgnored PacketsNumber of Ignored Packets
powerdns_recursor_ipv6_outqueriesIpv6 OutqueriesNumber of Ipv6 Outqueries
powerdns_recursor_ipv6_questionsIpv6 QuestionsNumber of Ipv6 Questions
powerdns_recursor_max_mthread_stackMax Mthread StackNumber of Max Mthread Stack
powerdns_recursor_negcache_entriesNegcache EntriesNumber of Negcache Entries
powerdns_recursor_no_packet_errorNo Packet ErrorNumber of No Packet Error
powerdns_recursor_noedns_outqueriesNoedns OutqueriesNumber of Noedns Outqueries
powerdns_recursor_noerror_answersNoerror AnswersNumber of Noerror Answers
powerdns_recursor_noping_outqueriesNoping OutqueriesNumber of Noping Outqueries
powerdns_recursor_nsset_invalidationsNsset InvalidationsNumber of Nsset Invalidations
powerdns_recursor_nsspeeds_entriesNsspeeds EntriesNumber of Nsspeeds Entries
powerdns_recursor_nxdomain_answersNxdomain AnswersNumber of Nxdomain Answers
powerdns_recursor_outgoing_timeoutsOutgoing TimeoutsNumber of timeouts for outgoing IPv4/pv6 queries
powerdns_recursor_outgoing4_timeoutsOutgoing4 TimeoutsNumber of timeouts for outgoing UDP IPv4 queries
powerdns_recursor_outgoing6_timeoutsOutgoing6 TimeoutsNumber of timeouts for outgoing UDP IPv6 queries
powerdns_recursor_over_capacity_dropsOver Capacity DropsNumber of questions dropped due to having reached concurrent query limit
powerdns_recursor_packetcache_entriesPacketcache EntriesNumber of entries in the packet cache
powerdns_recursor_packetcache_hitsPacketcache HitsNumber of hits in the packet cache
powerdns_recursor_packetcache_missesPacketcache MissesNumber of misses in the packet cache
powerdns_recursor_policy_dropsPolicy DropsNumber of packets dropped because of Lua policy decision
powerdns_recursor_policy_result_customPolicy Result CustomNumber of packets that were sent a custom answer by the RPZ/filter engine
powerdns_recursor_policy_result_dropPolicy Result DropNumber of packets that were not actioned upon by the RPZ/filter engine
powerdns_recursor_policy_result_noactionPolicy Result NoactionNumber of packets dropped by the RPZ/filter engine
powerdns_recursor_policy_result_nodataPolicy Result NodataNumber of packets that were replied to with NXDOMAIN by the RPZ/filter engine
powerdns_recursor_policy_result_nxdomainPolicy Result NxdomainNumber of packets that were replied to with NODATA by the RPZ/filter engine
powerdns_recursor_policy_result_truncatePolicy Result TruncateNumber of packets that were forced to TCP by the RPZ/filter engine
powerdns_recursor_qa_latencyQa LatencymicrosecondNumber of Qa Latency
powerdns_recursor_questionsQuestionsNumber of Questions
powerdns_recursor_real_memory_usageReal Memory UsageNumber of Real Memory Usage
powerdns_recursor_resource_limitsResource LimitsNumber of Resource Limits
powerdns_recursor_security_statusSecurity StatusSecurity Status
powerdns_recursor_server_parse_errorsServer Parse ErrorsNumber of Server Parse Errors
powerdns_recursor_servfail_answersServfail AnswersNumber of Servfail Answers
powerdns_recursor_spoof_preventsSpoof PreventsNumber of Spoof Prevents
powerdns_recursor_sys_msecSys MsecminutesNumber of Sys Msec
powerdns_recursor_tcp_client_overflowTcp Client OverflowNumber of outgoing queries dropped per second because of 'dont query' setting
powerdns_recursor_tcp_clientsTcp ClientsNumber of active TCP/IP clients
powerdns_recursor_tcp_outqueriesTcp OutqueriesNumber of outgoing TCP queries
powerdns_recursor_tcp_questionsTcp QuestionsNumber of entries in the throttle map
powerdns_recursor_throttle_entriesThrottle EntriesNumber of entries in the throttle map
powerdns_recursor_throttled_outThrottled OutNumber of throttled outgoing UDP queries
powerdns_recursor_throttled_outqueriesThrottled OutqueriesNumber of outqueries in the throttle map
powerdns_recursor_too_old_dropsToo Old DropsNumber of questions that were dropped because they were too old
powerdns_recursor_udp_in_errorsUdp In ErrorsNumber of packets that were received faster than the OS could process them
powerdns_recursor_udp_noport_errorsUdp Noport ErrorsNumber of UDP packets where an ICMP response was received saying the remote port was not listening
powerdns_recursor_udp_recvbuf_errorsUdp Recvbuf ErrorsNumber of errors caused in the UDP receive buffer
powerdns_recursor_udp_sndbuf_errorsUdp Sndbuf ErrorsNumber of errors caused in the UDP send buffer
powerdns_recursor_unauthorized_tcpUnauthorized TcpNumber of TCP questions denied because of allow-from restrictions
powerdns_recursor_unauthorized_udpUnauthorized UdpNumber of UDP questions denied because of allow-from restrictions
powerdns_recursor_unexpected_packetsUnexpected PacketsNumber of unexpected answers from remote servers
powerdns_recursor_unreachablesUnreachablesNumber times nameservers were unreachable
powerdns_recursor_uptimeUptimeNumber of seconds PowerDNS has been running
powerdns_recursor_user_msecUser MsecmillisecondNumber of CPU milliseconds spent in 'user' mode
powerdns_recursor_all_outqueriesAll OutqueriesNumber of outgoing udp queries