首先编译 bind_exporter, 编译方式参见 https://github.com/digitalocean/bind_exporter
创建一个 systemd 配置文件来运行 bind_exporter
vi /etc/systemd/system/bind_exporter.service
内容如下, 注意此处的用户和组使用与 named 程序相同的用户和组 "named".--web.listen-address 为对外暴露的 metric 地址和端口, Prometheus 从此处抓取 bind_exporter 的 metrics;--bind.stats-url 为本地 bind 服务绑定的地址和 IP
- [Unit]
- Description=bind_exporter
- Documentation=https://github.com/digitalocean/bind_exporter
- Wants=network-online.target
- After=network-online.target
- [Service]
- Type=simple
- User=named
- Group=named
- ExecReload=/bin/kill -HUP $MAINPID
- ExecStart=/opt/bind_exporter/bind_exporter \
- --bind.pid-file=/var/run/named/named.pid \
- --bind.timeout=20s \
- --Web.listen-address=0.0.0.0:9119 \
- --Web.telemetry-path=/metrics \
- --bind.stats-url=http://localhost:53/ \
- --bind.stats-groups=server,view,tasks
- SyslogIdentifier=bind_exporter
- Restart=always
- [Install]
- WantedBy=multi-user.target
加载并启动 bind_export
- systemctl daemon-reload
- systemctl restart bind_exporter.service
在 / etc/named.conf 中添加如下内容, 注意 "statistics-channels" 是与 "options" 并列的, 而不是位于 "options" 内部
- statistics-channels {
- .NET 127.0.0.1 port 53 allow { 127.0.0.1; };
- };
重新启动 named
service named restart
在 Prometheus 的 YAML 文件中添加如下 job, 重新启动 Prometheus 即可
- - job_name: dns-master
- static_configs:
- - targets: ['10.85.6.66:9119']
- labels:
- alias: dns-master
在 Prometheus 的 targets 中可以看到新加的内容
可以通过 "curl http://10.85.6.66:9119/metrics" 来获取 bind_exporter 支持的 metrics 以及方法, 最常用的方法为 "bind_up", 用于查看一个 bind 服务是否启动, 值 1 表示启动成功
参考:
https://grafana.com/dashboards/1666
来源: https://www.cnblogs.com/charlieroro/p/11013428.html