如何使用Prometheus和Grafana监视BIND DNS服务器
在这篇文章中,我们将介绍使用Prometheus Server和Grafana设置BIND DNS服务器监视以可视化绑定度量的步骤。
BIND代表"伯克利Internet名称域名"是一种开放源代码的域名服务器,它允许我们在Internet上发布DNS信息,并允许网络用户进行DNS查询。
可以用来监视BIND DNS服务器的工具数量是有限的,就我个人而言,我喜欢带有Grafana的Prometheus Bind导出器。
LibreNMS具有BIND应用程序监视功能,我打算尝试一下。
设置准备工作
已安装和配置的BIND DNS服务器BIND必须与 libxml2
支持。
可以使用以下方法确认
# named -V | grep libxml2 using libxml2 version: 2.9.1
3.已安装的Prometheus –在Ubuntu/CentOS/Debian上安装Prometheus
步骤1:安装绑定Prometheus导出器
安装wget
--- Ubuntu/Debian -- $sudo apt -y install wget --- CentOS/Fedora -- $sudo yum -y install wget
下载最新版本的bind_exporter二进制文件:
curl -s https://api.github.com/repos/prometheus-community/bind_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi
这将下载适用于Linux的64位二进制版本,对于其他操作系统,请查看bind_exporter版本页面。
提取下载的文件。
tar xvf bind_exporter*.tar.gz
将提取的二进制文件移动到/usr/local/bin目录:
cd bind_exporter-*/ sudo mv bind_exporter /usr/local/bin
通过检查安装的版本来确认安装。
$bind_exporter --version bind_exporter, version 0.3.0 (branch: HEAD, revision: c34ff3d6b4817f42e74b2b05b3797cf99683b4a9) build user: Hyman@theitroad build date: 20170109-18:54:09 go version: go1.12.14
我们可以使用以下命令打印命令选项 bind_exporter --help
$bind_exporter --help Usage of bind_exporter: -bind.pid-file string Path to Bind's pid file to export process information. (default "/run/named/named.pid") -bind.stats-groups value Comma-separated list of statistics to collect. Available: [server, view, tasks] (default "server,view,tasks") -bind.stats-url string HTTP XML API address of an Bind server. (default "http://localhost:8053/") -bind.stats-version string BIND statistics version. Can be detected automatically. Available: [xml.v2, xml.v3, auto] (default "auto") -bind.timeout duration Timeout for trying to get stats from Bind. (default 10s) -version Print version information. -web.listen-address string Address to listen on for web interface and telemetry. (default ":9119") -web.telemetry-path string Path under which to expose metrics. (default "/metrics")
步骤2:配置BIND DNS服务器
我们需要配置BIND以打开统计信息通道。
由于导出器和BIND在同一主机上,因此该端口在本地打开。
对于CentOS ISC BIND DNS服务器,请编辑该文件 /etc/named.conf
添加。
statistics-channels { inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; };
对于Ubuntu/Debian ISC BIND DNS服务器,编辑文件 /etc/bind/named.conf.options
statistics-channels { inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; };
重新启动绑定以使更改生效
sudo systemctl restart named
步骤3:建立Bind Exporter systemd服务
下一部分是创建用于启动收集器的systemd服务,该服务可访问bind(named)pid文件并启用视图统计信息组: Prometheus
系统用户帐号:
sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus
该用户将管理出口商服务。
添加用户帐户后,创建一个systemd服务单元文件:
sudo tee /etc/systemd/system/bind_exporter.service<<EOF [Unit] Description=Prometheus Documentation=https://github.com/digitalocean/bind_exporter Wants=network-online.target After=network-online.target [Service] Type=simple User=prometheus Group=prometheus ExecReload=/bin/kill -HUP $MAINPID ExecStart=/usr/local/bin/bind_exporter \ --bind.pid-file=/var/run/named/named.pid \ --bind.timeout=20s \ --web.listen-address=0.0.0.0:9153 \ --web.telemetry-path=/metrics \ --bind.stats-url=http://localhost:8053/\ --bind.stats-groups=server,view,tasks SyslogIdentifier=prometheus Restart=always [Install] WantedBy=multi-user.target EOF
重新加载systemd并开始 bind_exporter
服务:
sudo systemctl daemon-reload sudo systemctl restart bind_exporter.service
启用服务以在启动时启动:
sudo systemctl enable bind_exporter.service
确认服务正在侦听端口 9153
如配置
$sudo ss -tunelp | grep 9153 tcp LISTEN 0 128 :::9153 :::* users:(("bind_exporter",pid=23266,fd=3)) uid:997 ino:113951 sk:ffff8d17fab19980 v6only:0 <->
如果有,请打开防火墙上的端口 firewalld
运行步:
sudo firewall-cmd --add-port=9153/tcp --permanent sudo firewall-cmd --reload
步骤4:配置Prometheus服务器
如果我们没有正在运行的Prometheus服务器,请参阅我们之前的指南,了解如何在CentOS和Ubuntu Linux上安装Prometheus Server。
以下是我的两个工作的定义
- job_name: dns-master static_configs: - targets: ['10.1.5.3:9153'] labels: alias: dns-master - job_name: dns-slave1 static_configs: - targets: ['10.1.5.4:9153'] labels: alias: dns-slave
重新开始 prometheus
服务器:
sudo systemctl restart prometheus
第5步:添加Grafana信息中心
我们将使用Cristian Calin创建的Grafana仪表板。
资讯主页ID为 1666
。
登录Grafana并添加Prometheus数据源(如果尚未添加)。
添加Prometheus数据源后,通过导航至"仪表板">"导入"来导入"绑定Grafana仪表板"。
使用1666作为Grafana仪表板ID。
给它起一个描述性的名称,然后选择之前添加的Prometheus数据源。
单击"导入"按钮开始使用仪表板。
几分钟后,指标应开始显示。