Technitium DNS
Use this skill to perform read-only checks against a Technitium DNS Server instance.
Configuration
Set these environment variables before running scripts:
export TECHNITIUM_URL="http://dns-server.example:5380"
export TECHNITIUM_TOKEN="..."
Technitium v15+ accepts API/session tokens with:
Authorization: Bearer <token>
Prefer a dedicated limited/read-only user and a non-expiring API token for monitoring.
Health Check
Run the bundled helper:
python3 scripts/technitium_health_check.py
Or from another working directory:
TECHNITIUM_URL="http://dns-server.example:5380" \
TECHNITIUM_TOKEN="..." \
python3 /path/to/technitium-dns/scripts/technitium_health_check.py
The script prints JSON:
{
"ok": true,
"checked": [],
"failures": []
}
Exit codes:
0: no critical failures1: one or more monitored checks detected a critical condition2: configuration or core API/session check failed
What It Checks
Read-only endpoints:
/api/user/session/get— token/session validity and server info/api/settings/get— version, uptime timestamp, DNS settings availability/api/dashboard/stats/get?type=LastHour&utc=true— DNS stats/api/zones/list— disabled, expired, or sync-failed zones/api/dhcp/leases/list— DHCP lease visibility, if permitted/used
Alerts/failures are intended for:
- API/server unreachable
- invalid/expired token
- zone
disabled,isExpired, orsyncFailed - abnormal SERVFAIL/refused/dropped error rate
DHCP permission failure is reported as a warning in checked because many deployments do not use Technitium DHCP or restrict DHCP permissions.
Proactive Use
For heartbeat/proactive monitoring:
- Run the health check only when due; avoid checking every wake.
- If JSON
okis true, stay silent. - If
okis false, summarize only actionable failures. - Do not modify settings, zones, DHCP, cache, or logs without explicit user confirmation.
API Docs
Technitium DNS Server API docs: https://github.com/TechnitiumSoftware/DnsServer/blob/master/APIDOCS.md