Exporting statistics to Prometheus
ISC is developing a new open source monitoring application, called Stork. Stork consists of a Stork User Agent, which runs on the BIND9 or Kea application host, and a server, which provides a graphical web monitoring dashboard. The dashboard is focused on Kea usage currently, and is not recommended for BIND users.
STAG as a BIND Prometheus Exporter
The Stork User Agent is not distributed with BIND. It can be compiled from sources (available from the ISC web site) or installed directly from the ISC repository of packages for popular operating systems on Cloudsmith.
Deploying the Stork User Agent
The Stork User Agent (STAG) is deployed on each BIND server. See the Stork Administrative Reference Manual and STAG man pages for details on the the (very few) settings required to configure the relationship between Prometheus and the STAG.
named must be built with json-c and the statistics-channel must be configured. It is recommended to set
zone-statistics to full.
STAG will look for the
named process and parse the configuration file (
named -c ...). If the command parameters does not include
-c STAG will default to
Included Grafana Charts
The Stork distribution includes a Grafana template for BIND, which lays out a series of useful charts, covering Platform Resource Usage, Queries, Cache and Resolver statistics. These are designed to be helpful for BIND resolver operators. Grafana is highly customizable, and it is possible to edit and customize these charts, or add others.
Because the exporter is not in BIND itself, but on the host, it is also able to export some load information about the platform that is helpful to view in context with query loads. Data shown here includes
named CPU and memory utilization, platform memory utilization and file descriptors.
This section shows incoming requests and outgoing queries by record type, query errors by error type and responses by response code, and a breakdown of queries by transport type (UDP vs TCP).
Graphs include cache hits, cache misses, cache hit ratio, and the current cache contents by rrtype.
Graphs include DNSSEC validation rate, Resolver query and response errors by error type, and query duration 'buckets'.