BIND Exporter
现在使用最为广泛的DNS服务器软件是 BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是 9,由ISC(Internet Systems Consortium)编写和维护。
针对 Bind Prometheus 社区开发了 Bind Exporter 来导出 BIND 的监控数据给 Prometheus 官方仓库地址是 https://github.com/prometheus-community/bind_exporter ,当前最新版本是 0.5.0 ,发布于 2021 年 11 月 23 日,BIND Exporter 支持 Bind v9+ 以上版本。
安装运行
BIND Exporter 支持二进制和容器运行,从 https://github.com/prometheus-community/bind_exporter/releases 可以下载到 BIND Exporter 的最新版本,包含常用的发行版操作系统和常见的处理器架构。
使用二进制文件启动 BIND Exporter 可以通过下列命令来启动:
./bind_exporter [flags]
如果要监控的 named 是运行在机器本地 localhost ,那么使用容器运行 BIND Exporter 可以使用如下命令
docker pull prometheuscommunity/bind-exporter:v0.5.0
如要要监控的 named 运行在非默认的统计 URL ,那么启动 BIND Exporter 可以使用如下命令:
docker run -d prometheuscommunity/bind-exporter:v0.5.0 -bind.stats-url http://<IP/hostname>:8053
TLS 和 基本认证
BIND Exporter 支持 TLS 和基本的认证,使用 TLS 或者基本认证需要准备一个配置文件,并且在启动 BIND Exporter 的时候使用 --web.config.file
参数来指定这个文件,这个文件的格式在 https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md 中有描述。
排错
首先需要确认 BIND 在构建的时候添加了 libxml2 的支持,可以使用 named -V | grep libxml2
来检查是否使用。
配置 BIND 需要打开一个 statistics channel ,建议 BIND Exporter 和 BIND 运行在同一台机器上,或者容器的同一个网桥上,这样只需要打开一个端口就可以了。
statistics-channels {
inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
};
小结
BIND 是自建 DNS 非常好的解决方案,BIND Exporter 是监控 BIND 非常好的工具,结合 Prometheus 可以做的很好。