There is an option “statistics-file” in the BIND9 configuration for query statistics. It will give you statistics for
- Incoming Requests – total number of queries
- Incoming Queries – queries by record type
- Outgoing Queries – queries by record type per view
- Name Server Statistics – extended queries statistics by network connection type (UDP, TCP or IPv4 and IPv6 interface), by type of answer (authoritative, non authoritative and so on) and more
- Zone Maintenance Statistics – transfer and system queries
- Resolver Statistics – recursive queries
- Cache DB RRsets – cached resources records sets
- Socket I/O Statistics – statistics numbers for UDP, TCP (for both IPv4 and IPV6) sockets and connections opened, closed, failure
- Per Zone Query Statistics – so you can see how many queries you have for a zone in a view (and the transfers if the server is a slave)
In named.conf:
options { .... statistics-file "/var/log/named.stats"; zone-statistics yes ; ....
But if you check in /var/log this file might be missing even your BIND server has been running for months!
This is because the statistics and the file is generated on request and is a snapshot at the moment you do the request
To request from the BIND server to generate the file is pretty easy:
root@srv ~ # rndc stats root@srv ~ #
No standard output and you should have the stats file generated:
root@srv ~ # ls -altr /var/log/named.stats -rw-r--r-- 1 named named 174997 Apr 7 01:43 /var/log/named.stats
The generated requests are appended in the file with a UNIX timestamp.
.... --- Statistics Dump --- (1550561292) +++ Statistics Dump +++ (1551233218) ....