Bind (Linux - v9.6 and higher)

This template assesses the performance of a Bind service, version 9.6 and later, on Linux machines. It uses Perl scripts for monitoring the performance of queries.


Prerequisites: SSH and Perl installed on the target server. SNMP installed on the target server and permission to monitor named processes.

If Perl is installed in a location different from /usr/bin/perl, you should correct all components in the first line of the Script Body field (#!/usr/bin/perl), or you can create a symbolic link to Perl (refer to the documentation for the ln command).

You can find where Perl is installed by using the following command:  which perl

Credentials: Root credentials on the target server.


Note: Tested on CentOS 5.5 and Bind 9.9.2 version.

Note: All monitors, except SNMP Process Monitor: Named, has the Count statistic as difference option enabled and will show the statistical difference from the last SAM polling cycle.

All monitors except
SNMP Process Monitor: Named, require the following arguments:
   perl ${SCRIPT} path_to_rndc path_to_named.stats
where
   path_to_rndc - This is full path to the rndc command. By default: /usr/local/sbin/rndc.
      path_to_named.stats - This is full path to named.stat file, which is generated by the “rndc stats” command.


Below is an example using the Scripts Arguments field:
perl ${SCRIPT} /usr/local/sbin/rndc /var/named/named.stats


Monitored Components:

Note: You need to set thresholds for counters according to your environment. It is recommended to monitor counters for some period of time to understand potential value ranges and then set the thresholds accordingly. For more information, see http://knowledgebase.solarwinds.com/kb/questions/2415.


SNMP Process Monitor: Named

     This component returns CPU and memory usage of the named daemon.

     If these counters  are unavailable, there may be problems with SNMP configuration or the named service has stopped.

Incoming Queries

     This monitor returns the number of incoming queries for several RR type. You should provide correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          A – This component returns the number of incoming A queries. This record is a 32-bit IP address.

          NS – This component returns the number of incoming NS queries. This record is the authoritative name server for the domain.

          CNAME – This component returns the number of incoming CNAME queries. This record identifies the canonical name of an alias.

          SOA – This component returns the number of incoming SOA queries. This record identifies the start of a zone of authority.

          PTR – This component returns the number of incoming PTR queries. This record is a pointer to another part of the domain name space.

          MX – This component returns the number of incoming MX queries. This record identifies a mail exchange for the domain with a 16-bit preference value (lower is better) followed by the host name of the mail exchange.

          AAAA – This component returns the number of incoming AAAA queries. This record is an IPv6 address.

          SRV – This component returns the number of incoming SRV queries. This record have information about well-known network services (replaces WKS).

          A6 – This component returns the number of incoming A6 queries. This record is an IPv6 address. This can be a partial address (a suffix) and an indirection to the name where the rest of the address (the prefix) can be found.

          Total – This component returns the total number of all incoming queries.

Outgoing Queries

     This monitor returns the number of outgoing queries for several RR type sent from the internal resolver. You should provide the correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          A – This component returns the number of outgoing A queries. This record is a 32-bit IP address.

          NS – This component returns the number of outgoing NS queries. This record is the authoritative name server for the domain.

          CNAME – This component returns the number of outgoing CNAME queries. This record identifies the canonical name of an alias.

          SOA – This component returns the number of outgoing SOA queries. This record identifies the start of a zone of authority.

          PTR – This component returns the number of outgoing PTR queries. This record is a pointer to another part of the domain name space.

          MX – This component returns the number of outgoing MX queries. This record identifies a mail exchange for the domain with a 16-bit preference value (lower is better) followed by the host name of the mail exchange.

          AAAA – This component returns the number of outgoing AAAA queries. This record is an IPv6 address.

          SRV – This component returns the number of outgoing SRV queries. This record has information about well-known network services (replaces WKS).

          A6 – This component returns the number of outgoing A6 queries. This record is IPv6 address. This can be a partial address (a suffix) and an indirection to the name where the rest of the address (the prefix) can be found.

          Total – This component returns the total number of all outgoing queries.

Name Server Statistics 1

     This monitor returns the statistics counters about incoming request processing. You should provide correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          IPv4 requests received – This component returns the number of IPv4 requests received. This also counts non query requests.

          IPv6 requests received – This component returns the number of IPv6 requests received. This also counts non query requests.

          queries resulted in successful answer – This component returns the number of queries resulted in a successful answer. This means the query which returns a NOERROR response with at least one answer RR.

          queries resulted in authoritative answer – This component returns the number of queries resulted in authoritative answer.

          queries resulted in non authoritative answer – This component returns the number of queries resulted in non authoritative answer.

          queries resulted in nxrrset – This component returns the number of queries resulted in NOERROR responses with no data.

          queries resulted in SERVFAIL – This component returns the number of queries resulted in SERVFAIL.

          queries resulted in NXDOMAIN – This component returns the number of queries resulted in NXDOMAIN.

          queries resulted in referral answer – This component returns the number of queries resulted in referral answer.

          duplicate queries received – This component returns the queries which the server attempted to recurse but discovered an existing query with the same IP address, port, query ID, name, type and class already being processed.

Name Server Statistics 2

     This monitor returns the statistics counters about incoming requests processing. You should provide the correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          TCP requests received – This component returns the number of TCP requests received.

          auth queries rejected – This component returns the number of authoritative (non recursive) queries rejected.

          recursive queries rejected – This component returns the number of recursive queries rejected.

          update requests rejected – This component returns the number of dynamic update requests rejected.

          responses sent – This component returns the number of responses sent.

          queries dropped – This component returns the number of recursive queries for which the server discovered an excessive number of existing recursive queries for the same name, type, and class and were subsequently dropped.

          other query failures – This component returns the number of other query failures.

          queries caused recursion – This component returns the number of queries which caused the server to perform recursion in order to find the final answer.

          requests with EDNS(0) received – This component returns the number of requests with EDNS(0) received. Extension mechanisms for DNS (EDNS) is a specification for expanding the size of several parameters of the Domain Name System (DNS) protocol which had size restrictions that the Internet engineering community deemed too limited for increasing functionality of the protocol.

          responses with EDNS(0) sent – This component returns the number of responses with EDNS(0) sent. Extension mechanisms for DNS (EDNS) is a specification for expanding the size of several parameters of the Domain Name System (DNS) protocol which had size restrictions that the Internet engineering community deemed too limited for increasing functionality of the protocol.

Zone Maintenance Statistics

     This monitor returns the statistics counters regarding zone maintenance operations such as zone transfers. You should provide the correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          IPv4 notifies sent – This component returns the number of IPv4 notifies sent.

          IPv6 notifies sent – This component returns the number of IPv6 notifies sent.

          IPv4 notifies received – This component returns the number of IPv4 notifies received.

          IPv6 notifies received – This component returns the number of IPv6 notifies received.

          transfer requests succeeded – This component returns the number of zone transfer requests succeeded.

          transfer requests failed – This component returns the number of zone transfer requests failed.

          notifies rejected – This component returns the number of incoming notifies rejected.

Resolver Statistics 1

     This monitor returns the statistics counters about name resolution performed in the internal resolver. You should provide correct arguments. If this monitor is unavailable, it may be that this service is not running. Returning values:

          IPv4 queries sent – This component returns the number of IPv4 queries sent.

          IPv6 queries sent – This component returns the number of IPv6 queries sent.

          IPv4 responses received – This component returns the number of IPv4 responses received.

          IPv6 responses received – This component returns the number of IPv6 responses received.

          queries with RTT less than 10ms – This component returns the number of queries with round trip times (RTTs) less than 10 ms.

          queries with RTT 10 to 100ms – This component returns the number of queries with round trip times (RTTs) between 10 and 100 ms.

          queries with RTT 100 to 500ms – This component returns the number of queries with round trip times (RTTs) between 100 and 500 ms.

          queries with RTT 500 to 800ms – This component returns the number of queries with round trip times (RTTs) between 500 and 800 ms.

          queries with RTT 800 to 1600ms – This component returns the number of queries with round trip times (RTTs) between 800 and 1600 ms.

          queries with RTT more than 1600ms – This component returns the number of queries with round trip times (RTTs) more than 1600 ms.

Resolver Statistics 2

     This monitor returns the statistics counters about name resolution performed in the internal resolver. You should provide the correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          NXDOMAIN received – This component returns the number of NXDOMAIN received.

          SERVFAIL received – This component returns the number of SERVFAIL received.

          FORMERR received – This component returns the number of FORMERR received.

          other errors received – This component returns the number of other errors received.

          EDNS(0) query failures – This component returns the number of EDNS(0) query failures.

          query retries – This component returns the number of query retries performed.

          query timeouts – This component returns the number of query timeouts.

          lame delegations received – This component returns the number of lame delegations received.

          IPv4 NS address fetches – This component returns the number of IPv4 NS address fetches invoked.

          IPv4 NS address fetch failed – This component returns the number of IPv4 NS address fetch failed.

Socket I/O Statistics (IPv4)

     This monitor returns the statistics counters about network related events for IPv4. You should provide the correct arguments. If this monitor is unavailable, it may be that this service is not running. Returned values:

          UDP/IPv4 sockets opened – This component returns the number of sockets opened successfully.

          UDP/IPv4 sockets closed – This component returns the number of sockets closed.

          UDP/IPv4 socket bind failures – This component returns the number of failures of binding sockets.

          UDP/IPv4 connections established – This component returns the number of connections established successfully.

          TCP/IPv4 sockets opened – This component returns the number of sockets opened successfully.

          TCP/IPv4 sockets closed – This component returns the number of sockets closed.

          TCP/IPv4 socket connect failures – This component returns the number of failures of connecting sockets.

          TCP/IPv4 connections established – This component returns the number of connections established successfully.

          TCP/IPv4 send errors – This component returns the number of errors in socket send operations.

          TCP/IPv4 recv errors – This component returns the number of errors in socket receive operations.

Socket I/O Statistics (IPv6)

     This monitor returns the statistics counters about network related events for IPv6. You should provide the correct arguments. By default, this monitor is disabled. If this monitor is unavailable, it may be that this service is not running. Returned values:

          UDP/IPv6 sockets opened – This component returns the number of sockets opened successfully.

          UDP/IPv6 sockets closed – This component returns the number of sockets closed.

          UDP/IPv6 socket bind failures – This component returns the number of failures of binding sockets.

          UDP/IPv6 connections established – This component returns the number of connections established successfully.

          TCP/IPv6 sockets opened – This component returns the number of sockets opened successfully.

          TCP/IPv6 sockets closed – This component returns the number of sockets closed.

          TCP/IPv6 socket connect failures – This component returns the number of failures of connecting sockets.

          TCP/IPv6 connections established – This component returns the number of connections established successfully.

          TCP/IPv6 send errors – This component returns the number of errors in socket send operations.

          TCP/IPv6 recv errors – This component returns the number of errors in socket receive operations.

Portions of this document were originally created by and are excerpted from the following sources:
“BIND 9 Administrator Reference Manual”: http://ftp.isc.org/isc/bind9/cur/9.9/doc/arm/Bv9ARM.html.