Description
If it's any help, we noticed this issue after patching from BIND 9.20.2 to 9.20.3
Host operating system
Linux x86_64 5.14.0-427.40.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 4 15:22:45 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux
BIND version
BIND 9.20.3 (Stable Release) id:1e2850e
bind_exporter version
bind_exporter, version 0.3.0 (branch: HEAD, revision: c34ff3d)
build user: root@48c85d39c9a6
build date: 20200109-18:54:09
go version: go1.12.14
bind_exporter command-line flags
--bind.stats-url=http://127.0.0.1:8053
(when testing with --bind.stats-groups=server,view
, the error log message stops)
bind_exporter log output
level=info ts=2024-11-01T17:11:52.430Z caller=bind_exporter.go:559 msg="Build context" build_context="(go=go1.20.7, platform=linux/amd64, user=root@e6068f3fc710, date=20230811-20:19:28, tags=netgo static_build)"
level=info ts=2024-11-01T17:11:52.430Z caller=bind_exporter.go:560 msg="Collectors enabled" collectors=server,view,tasks
level=info ts=2024-11-01T17:11:52.431Z caller=tls_config.go:274 msg="Listening on" address=[::]:9119
level=info ts=2024-11-01T17:11:52.431Z caller=tls_config.go:277 msg="TLS is disabled." http2=false address=[::]:9119
level=error ts=2024-11-01T17:12:01.550Z caller=bind_exporter.go:445 msg="Couldn't retrieve BIND stats" err="unexpected status 404 No such URL"
What did you expect to see?
No errors in logs and these 2 queries to return results:
wget -qO- http://127.0.0.1:8053/xml/v3/tasks
wget -qO- http://127.0.0.1:8053/json/v1/tasks
What did you see instead?
This for both queries: wget: server returned error: HTTP/1.1 404 No such URL
Additional context
I couldn't find any explicit change notes in BIND, but I saw this reference in the 9.21.2 BIND ARM (This makes me think the endpoints have changed):
Broken-out subsets of the statistics can be viewed at
http://127.0.0.1:8888/xml/v3/status (server uptime and last reconfiguration time)
http://127.0.0.1:8888/xml/v3/server (server and resolver statistics)
http://127.0.0.1:8888/xml/v3/zones (zone statistics)
http://127.0.0.1:8888/xml/v3/xfrins (incoming zone transfer statistics)
http://127.0.0.1:8888/xml/v3/net (network status and socket statistics)
http://127.0.0.1:8888/xml/v3/mem (memory manager statistics)
http://127.0.0.1:8888/xml/v3/traffic (traffic sizes)
The full set of statistics can also be read in JSON format at
http://127.0.0.1:8888/json,
with the broken-out subsets at:
http://127.0.0.1:8888/json/v1/status (server uptime and last reconfiguration time),
http://127.0.0.1:8888/json/v1/server (server and resolver statistics)
http://127.0.0.1:8888/json/v1/zones (zone statistics)
http://127.0.0.1:8888/json/v1/xfrins (incoming zone transfer statistics),
http://127.0.0.1:8888/json/v1/net (network status and socket statistics)
http://127.0.0.1:8888/json/v1/mem (memory manager statistics)
http://127.0.0.1:8888/json/v1/traffic (traffic sizes)
When testing, all of these queries will return results. (which seem to contain pieces of what I was expecting in the prior /tasks.