Skip to main content
DNZ logs every DNS query it answers: the name and type, the status, who answered it (a local zone, an upstream, the cache, a blocklist), the client’s address and how long it took. Use the log to check that a record is being used, to find a client that keeps asking for a missing name, or to see why a site is blocked.

Open the query log

Open DNS → Query Logs. Viewing it needs the logs.read permission.
  • Type in Filter by name or client to search.
  • Turn on Live to refresh the list every 5 seconds, or click Refresh.

This division and All queries

By default the page shows queries for names in this division’s zones. Forwarded and cached queries belong to no division, so they don’t appear there. Superadmins also get a Scope switch. All queries shows every query the server answered, including names forwarded to upstreams, and adds a source filter:
  • All sources
  • Local zones
  • Forwarded & cache
  • Blocked: every blocked query (blocklists and RPZ), with the client’s IP (see Filtering)
  • Errors

From the command line

See CLI: monitoring for every option. Scripts can also read a division’s log over the API with a token that has logs.read: GET /api/divisions/{id}/logs?q=&limit= (see API overview).

How long data is kept

DNZ keeps two kinds of data: Queries are written to the log in batches, and rows older than the retention period are deleted. Change the period in the config file or the environment:
/etc/dnz/dnz.toml
/etc/dnz/dnz.env
The top names and clients in dnz stats come from the query log, so they cover at most log_retention_days, even when you ask for --range 90d. The counts come from the hourly totals and cover the whole range.

Monitoring

Usage charts, upstream health and alerts on the Overview.

Notifications

NXDOMAIN spikes, rate limiting and a daily summary.