目录
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它会更有价值。借助 InfluxDB,排名第一的时序平台,旨在与 Telegraf 一起扩展。
查看入门方法
PowerDNS Recursor 是一款高性能解析名称服务器,用于为超过 1 亿用户提供 DNS 解析服务。
为什么使用 Telegraf 插件进行 PowerDNS Recursor 监控?
域名系统是将人类可识别的域名映射到存储和驱动每个域名下网站的计算机的实际 IP 地址的系统。
每当您访问网站时,都会涉及到 4 种不同的 DNS 服务器。第一个是 DNS 递归解析器服务器,它充当客户端(如智能手机或笔记本电脑)和 DNS 网络其余部分之间的中间人。DNS 解析器可以直接返回答案(如果它已经存储了域名的 IP 地址),或者通过询问 DNS 根服务器来获取信息。DNS 根服务器可能需要通过从权威名称服务器请求信息来获取信息。还有 TLD 服务器,它们维护常见域名扩展名(如 .com、.net 等)的信息。
通过使用 PowerDNS 的 Telegraf 插件,您可以高效地监控您正在使用 PowerDNS 运行的任何 DNS 服务器,而只需极少的工作量。Telegraf 能够以最少的配置进行设置,然后将数据发送到 InfluxDB,InfluxDB 能够毫无问题地处理海量数据。
出于性能和安全原因,DNS 监控非常重要。如果您遇到 DNS 问题,对用户而言最明显的性能问题是他们将无法访问您的网站或应用程序。从安全角度来看,您可以监视安全攻击,例如 DNS 投毒,不良行为者试图将虚假信息插入您的 DNS 缓存,以将用户重定向到您网站的虚假版本或尝试收集私人数据。DDOS 攻击是使用 Telegraf 监控 powerDNS 的另一个原因。DDOS 是分布式拒绝服务攻击,它使用多台计算机尝试通过大量请求来使网站或应用程序崩溃。
如果没有 DNS 监控,您的应用程序将更容易受到这些类型的攻击。
如何使用 Telegraf 插件监控 PowerDNS Recursor
设置 PowerDNS Recursor 非常容易,只需几行配置即可
[[inputs.powerdns_recursor]] ## Path to the Recursor control socket. unix_sockets = ["/var/run/pdns_recursor.controlsocket"] ## Directory to create receive socket. This default is likely not writable, ## please reference the full plugin documentation for a recommended setup. # socket_dir = "/var/run/" ## Socket permissions for the receive socket. # socket_mode = "0666"
Telegraf 将需要读/写权限,因为它使用 Unix 控制套接字从 PowerDNS 读取指标。以下设置已在 Debian Stretch 上测试过,可能需要进行一些调整才能在其他系统上工作。
首先,更改 PowerDNS recursor 配置文件中的控制套接字权限。这通常位于 /etc/powerdns/recursor.conf 中
socket-mode = 660
接下来,将 Telegraf 放入 pdns 组
usermod telegraf -a -G pdns
Telegraf 无法写入默认的 /var/run 套接字目录,因此您需要创建一个子目录并调整权限,以便两个用户都可以访问它
mkdir /var/run/pdns chown root:pdns /var/run/pdns chmod 770 /var/run/pdns
用于监控的关键 PowerDNS Recursor 指标
PowerDNS Recursor Telegraf 输入插件提供了大量指标的访问权限,您可以在下面看到
- powerdns_recursor
- 标签
- 服务器
- 字段
- all-outqueries
- answers-slow
- answers0-1
- answers1-10
- answers10-100
- answers100-1000
- auth-zone-queries
- auth4-answers-slow
- auth4-answers0-1
- auth4-answers1-10
- auth4-answers10-100
- auth4-answers100-1000
- auth6-answers-slow
- auth6-answers0-1
- auth6-answers1-10
- auth6-answers10-100
- auth6-answers100-1000
- cache-entries
- cache-hits
- cache-misses
- case-mismatches
- chain-resends
- client-parse-errors
- concurrent-queries
- dlg-only-drops
- dnssec-queries
- dnssec-result-bogus
- dnssec-result-indeterminate
- dnssec-result-insecure
- dnssec-result-nta
- dnssec-result-secure
- dnssec-validations
- dont-outqueries
- ecs-queries
- ecs-responses
- edns-ping-matches
- edns-ping-mismatches
- failed-host-entries
- fd-usage
- ignored-packets
- ipv6-outqueries
- ipv6-questions
- malloc-bytes
- max-cache-entries
- max-mthread-stack
- max-packetcache-entries
- negcache-entries
- no-packet-error
- noedns-outqueries
- noerror-answers
- noping-outqueries
- nsset-invalidations
- nsspeeds-entries
- nxdomain-answers
- outgoing-timeouts
- outgoing4-timeouts
- outgoing6-timeouts
- over-capacity-drops
- packetcache-entries
- packetcache-hits
- packetcache-misses
- policy-drops
- policy-result-custom
- policy-result-drop
- policy-result-noaction
- policy-result-nodata
- policy-result-nxdomain
- policy-result-truncate
- qa-latency
- query-pipe-full-drops
- questions
- real-memory-usage
- resource-limits
- security-status
- server-parse-errors
- servfail-answers
- spoof-prevents
- sys-msec
- tcp-client-overflow
- tcp-clients
- tcp-outqueries
- tcp-questions
- throttle-entries
- throttled-out
- throttled-outqueries
- too-old-drops
- udp-in-errors
- udp-noport-errors
- udp-recvbuf-errors
- udp-sndbuf-errors
- unauthorized-tcp
- unauthorized-udp
- unexpected-packets
- unreachables
- uptime
- user-msec
- x-our-latency
- x-ourtime-slow
- x-ourtime0-1
- x-ourtime1-2
- x-ourtime16-32
- x-ourtime2-4
- x-ourtime4-8
- x-ourtime8-16
- 标签
示例输出
powerdns_recursor,server=/var/run/pdns_recursor.controlsocket all-outqueries=3631810i,answers-slow=36863i,answers0-1=179612i,answers1-10=1223305i,answers10-100=1252199i,answers100-1000=408357i,auth-zone-queries=4i,auth4-answers-slow=44758i,auth4-answers0-1=59721i,auth4-answers1-10=1766787i,auth4-answers10-100=1329638i,auth4-answers100-1000=430372i,auth6-answers-slow=0i,auth6-answers0-1=0i,auth6-answers1-10=0i,auth6-answers10-100=0i,auth6-answers100-1000=0i,cache-entries=296689i,cache-hits=150654i,cache-misses=2949682i,case-mismatches=0i,chain-resends=420004i,client-parse-errors=0i,concurrent-queries=0i,dlg-only-drops=0i,dnssec-queries=152970i,dnssec-result-bogus=0i,dnssec-result-indeterminate=0i,dnssec-result-insecure=0i,dnssec-result-nta=0i,dnssec-result-secure=47i,dnssec-validations=47i,dont-outqueries=62i,ecs-queries=0i,ecs-responses=0i,edns-ping-matches=0i,edns-ping-mismatches=0i,failed-host-entries=21i,fd-usage=32i,ignored-packets=0i,ipv6-outqueries=0i,ipv6-questions=0i,malloc-bytes=0i,max-cache-entries=1000000i,max-mthread-stack=33747i,max-packetcache-entries=500000i,negcache-entries=100019i,no-packet-error=0i,noedns-outqueries=73341i,noerror-answers=25453808i,noping-outqueries=0i,nsset-invalidations=2398i,nsspeeds-entries=3966i,nxdomain-answers=3341302i,outgoing-timeouts=44384i,outgoing4-timeouts=44384i,outgoing6-timeouts=0i,over-capacity-drops=0i,packetcache-entries=78258i,packetcache-hits=25999027i,packetcache-misses=3100179i,policy-drops=0i,policy-result-custom=0i,policy-result-drop=0i,policy-result-noaction=3100336i,policy-result-nodata=0i,policy-result-nxdomain=0i,policy-result-truncate=0i,qa-latency=6553i,query-pipe-full-drops=0i,questions=29099363i,real-memory-usage=280494080i,resource-limits=0i,security-status=1i,server-parse-errors=0i,servfail-answers=304253i,spoof-prevents=0i,sys-msec=1312600i,tcp-client-overflow=0i,tcp-clients=0i,tcp-outqueries=116i,tcp-questions=133i,throttle-entries=21i,throttled-out=13296i,throttled-outqueries=13296i,too-old-drops=2i,udp-in-errors=4i,udp-noport-errors=2918i,udp-recvbuf-errors=0i,udp-sndbuf-errors=0i,unauthorized-tcp=0i,unauthorized-udp=0i,unexpected-packets=0i,unreachables=1708i,uptime=167482i,user-msec=1282640i,x-our-latency=19i,x-ourtime-slow=642i,x-ourtime0-1=3095566i,x-ourtime1-2=3401i,x-ourtime16-32=201i,x-ourtime2-4=304i,x-ourtime4-8=198i,x-ourtime8-16=24i 1533903879000000000
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它会更有价值。借助 InfluxDB,排名第一的时序平台,旨在与 Telegraf 一起扩展。
查看入门方法