Power DNS Recursor

Supported OS Linux Mac OS

통합 버전5.0.0

개요

PowerDNS Recursor의 성능을 추적하고 비정상적인 트래픽을 모니터링하세요. 이 Agent 점검은 다음을 포함하여 Recursor에서 다양한 메트릭을 수집합니다.

  • 쿼리 답변 시간-1밀리초 미만, 10밀리초, 100밀리초, 1초 또는 1초보다 긴 응답이 몇 개인지 확인합니다.
  • 쿼리 시간 초과.
  • 캐시 히트 및 미스.
  • 유형별 답변률: SRVFAIL, NXDOMAIN, NOERROR.
  • 무시되거나 드롭된 패킷.

이외에 다수가 있습니다.

설정

설치

PowerDNS Recursor 점검은 Datadog Agent 패키지에 포함되어 있으므로 Recursor에 별도로 설치할 필요가 없습니다.

설정

PowerDNS 준비

이 점검은 PowerDNS Recursor의 통계 API를 사용하여 성능 통계를 수집합니다. 4.1 이전의 pdns_recursor 버전은 기본적으로 통계 API를 활성화하지 않습니다. 이전 버전을 실행 중인 경우 다음을 recursor 구성 파일에 추가하여 활성화합니다(예: /etc/powerdns/recursor.conf).

webserver=yes
api-key=changeme             # only available since v4.0
webserver-readonly=yes       # default no
#webserver-port=8081         # default 8082
#webserver-address=0.0.0.0   # default 127.0.0.1

pdns_recursor 3.x를 실행하는 경우 다음 옵션 이름 앞에 experimental-을 추가합니다 (예: experimental-webserver=yes).

pdns_recursor 4.1 이상이라면 api-key를 설정하기만 하면 됩니다.

통계 API를 활성화하려면 recursor를 다시 시작합니다.

호스트

호스트에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

  1. Agent 구성 디렉터리 루트의 conf.d/ 폴더에 있는 powerdns_recursor.d/conf.yaml 파일을 편집합니다. 사용 가능한 모든 구성 옵션은 샘플 powerdns_recursor.d/conf.yaml을 참조하세요.

    init_config:
    
    instances:
      ## @param host - string - required
      ## Host running the recursor.
      #
      - host: 127.0.0.1
    
        ## @param port - integer - required
        ## Recursor web server port.
        #
        port: 8082
    
        ## @param api_key - string - required
        ## Recursor web server api key.
        #
        api_key: "<POWERDNS_API_KEY>"
    
        ## @param version - integer - required - default: 3
        ## Version 3 or 4 of PowerDNS Recursor to connect to.
        ## The PowerDNS Recursor in v4 has a production ready web server that allows for
        ## statistics gathering. In version 3.x the server was marked as experimental.
        ##
        ## As the server was marked as experimental in version 3 many of the metrics have
        ## changed names and the API structure (paths) have also changed. With these changes
        ## there has been a need to separate the two concerns. The check now has a key value
        ## version: which if set to version 4 queries with the correct API path on the
        ## non-experimental web server.
        ##
        ## https://doc.powerdns.com/md/httpapi/api_spec/#url-apiv1serversserver95idstatistics
        #
        version: 3
    
  2. Agent를 다시 시작합니다.

로그 수집
  1. Datadog 에이전트에서는 로그 수집이 기본적으로 비활성화되어 있습니다. datadog.yaml 파일에서 활성화해야 합니다.

    logs_enabled: true
    
  2. 다음을 실행해 systemd-journal 그룹에 dd-agent 사용자를 추가하세요.

    usermod -a -G systemd-journal dd-agent
    
  3. PowerDNS Recursor 로그 수집을 시작하려면 이 구성 블록을 powerdns_recursor.d/conf.yaml 파일에 추가하세요.

    logs:
      - type: journald
        source: powerdns
    

    사용 가능한 모든 구성 옵션은 샘플 powerdns_recursor.d/conf.yaml을 참고하세요.

  4. Agent를 다시 시작합니다.

컨테이너화된 환경

컨테이너화된 환경의 경우 Autodiscovery 통합 템플릿에 아래 파라미터를 적용하는 방법이 안내되어 있습니다.

파라미터
<INTEGRATION_NAME>powerdns_recursor
<INIT_CONFIG>비어 있음 또는 {}
<INSTANCE_CONFIG>{"host":"%%host%%", "port":8082, "api_key":"<POWERDNS_API_KEY>", "version": 3}
로그 수집

Datadog Agent에서는 로그 수집 기능이 기본적으로 비활성화되어 있습니다. 활성화하려면 Kubernetes 로그 수집을 참고하세요.

파라미터
<LOG_CONFIG>{"source": "powerdns"}

검증

Agent status 하위 명령을 실행하고 Checks 섹션에서 powerdns_recursor를 찾습니다.

수집한 데이터

Metrics

powerdns.recursor.all_outqueries
(gauge)
초당 발신 UDP 쿼리 수
query로 표시
powerdns.recursor.answers0_1
(gauge)
1밀리초 이내에 응답한 초당 쿼리 수
query로 표시
powerdns.recursor.answers100_1000
(gauge)
1초 이내에 응답한 초당 쿼리 수
query로 표시
powerdns.recursor.answers10_100
(gauge)
100밀리초 이내에 응답한 초당 쿼리 수
query로 표시
powerdns.recursor.answers1_10
(gauge)
10밀리초 이내에 응답한 초당 쿼리 수
query로 표시
powerdns.recursor.answers_slow
(gauge)
1초 이내에 응답하지 않은 초당 쿼리 수
query로 표시
powerdns.recursor.auth4_answers0_1
(gauge)
1밀리초 이내에 auth4s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth4_answers100_1000
(gauge)
1초 이내에 auth4s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth4_answers10_100
(gauge)
100밀리초 이내에 auth4s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth4_answers1_10
(gauge)
10밀리초 이내에 auth4s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth4_answers_slow
(gauge)
1초 이내에 auth4s가 응답하지 않은 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth6_answers0_1
(gauge)
1밀리초 이내에 auth6s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth6_answers100_1000
(gauge)
1초 이내에 auth6s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth6_answers10_100
(gauge)
100밀리초 이내에 auth6s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth6_answers1_10
(gauge)
10밀리초 이내에 auth6s가 응답한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.auth6_answers_slow
(gauge)
1초 이내에 auth6s가 응답하지 않은 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.cache_entries
(gauge)
캐시의 엔트리 수
entry로 표시
powerdns.recursor.cache_hits
(gauge)
초당 캐시 히트 수
hit로 표시
powerdns.recursor.cache_misses
(gauge)
초당 캐시 미스 수
miss로 표시
powerdns.recursor.case_mismatches
(gauge)
초당 대소문자 불일치 횟수
error로 표시
powerdns.recursor.chain_resends
(gauge)
이미 처리 중인 쿼리와 연결된 초당 쿼리 수
query로 표시
powerdns.recursor.client_parse_errors
(gauge)
초당 파싱 불가 패킷 수
hit로 표시
powerdns.recursor.concurrent_queries
(gauge)
현재 실행 중인 MThread의 수
query로 표시
powerdns.recursor.dlg_only_drops
(gauge)
‘Delegation only’ 설정으로 인해 초당 삭제된 레코드 수. pdns_recursor v4.x부터 사용 가능
record로 표시
powerdns.recursor.dnssec_queries
(gauge)
DO 비트 설정된 초당 수신 쿼리 수. pdns_recursor v4.x부터 사용 가능
record로 표시
powerdns.recursor.dnssec_result_bogus
(gauge)
Bogus 상태인 초당 DNSSEC 유효성 검사 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.dnssec_result_indeterminate
(gauge)
Indeterminate 상태인 초당 DNSSEC 유효성 검사 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.dnssec_result_insecure
(gauge)
Insecure 상태인 초당 DNSSEC 유효성 검사 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.dnssec_result_nta
(gauge)
NTA(Negative trust anchor) 상태인 초당 DNSSEC 유효성 검사 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.dnssec_result_secure
(gauge)
Secure 상태인 초당 DNSSEC 유효성 검사 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.dnssec_validations
(gauge)
초당 실행된 DNSSEC 유효성 검사 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.dont_outqueries
(gauge)
‘쿼리 안 함’ 설정으로 인해 삭제된 발신 쿼리 수
query로 표시
powerdns.recursor.edns_ping_matches
(gauge)
유효한 EDNS PING 응답을 전송한 초당 서버 수. pdns_recursor v4.x부터 사용 가능
host로 표시
powerdns.recursor.edns_ping_mismatches
(gauge)
유효하지 않은 EDNS PING 응답을 전송한 초당 서버 수. pdns_recursor v4.x부터 사용 가능
host로 표시
powerdns.recursor.failed_host_entries
(gauge)
해석 실패한 서버의 수
host로 표시
powerdns.recursor.ignored_packets
(gauge)
쿼리만 수신해야 하는 서버 소켓에서 초당 수신된 논쿼리 패킷의 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.ipv6_outqueries
(gauge)
IPv6를 통한 초당 발신 쿼리 수
powerdns.recursor.ipv6_questions
(gauge)
RD 비트 설정된 엔드 유저 시작 IPv6 UDP 쿼리 수
query로 표시
powerdns.recursor.max_mthread_stack
(gauge)
지금까지 사용된 스레드 스택의 최대 사용량
powerdns.recursor.negcache_entries
(gauge)
부정 응답 캐시 수
entry로 표시
powerdns.recursor.no_error_packets
(gauge)
초당 수신된 오류 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.noedns_outqueries
(gauge)
EDNS 없이 전송한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.noerror_answers
(gauge)
초당 NOERROR 응답 수
operation으로 표시
powerdns.recursor.noping_outqueries
(gauge)
EDNS PING 없이 전송한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.nsset_invalidations
(gauge)
더 이상 작동하지 않아 삭제된 초당 nsset 횟수. pdns_recursor v4.x부터 사용 가능
powerdns.recursor.nsspeeds_entries
(gauge)
NS 속도 맵의 엔트리 수. pdns_recursor v4.x부터 사용 가능
entry로 표시
powerdns.recursor.nxdomain_answers
(gauge)
초당 NXDOMAIN 응답 수
response로 표시
powerdns.recursor.outgoing4_timeouts
(gauge)
발신 UDP IPv4 쿼리의 초당 타임아웃 횟수. pdns_recursor v4.x부터 사용 가능
timeout으로 표시
powerdns.recursor.outgoing6_timeouts
(gauge)
발신 UDP IPv6 쿼리의 초당 타임아웃 횟수. pdns_recursor v4.x부터 사용 가능
timeout으로 표시
powerdns.recursor.outgoing_timeouts
(gauge)
초당 발신 UDP 쿼리 타임아웃 횟수
timeout으로 표시됨
powerdns.recursor.over_capacity_drops
(gauge)
동시 쿼리 제한에 도달하여 삭제된 초당 질의 횟수
query로 표시
powerdns.recursor.packetcache_entries
(gauge)
패킷 캐시의 엔트리 수
entry로 표시
powerdns.recursor.packetcache_hits
(gauge)
초당 패킷 캐시 히트 수
hit로 표시
powerdns.recursor.packetcache_misses
(gauge)
초당 패킷 캐시 미스 수
miss로 표시
powerdns.recursor.policy_drops
(gauge)
Lua 정책 결정으로 인해 초당 삭제된 패킷 수
packet으로 표시
powerdns.recursor.policy_result_custom
(gauge)
RPZ/필터 엔진이 사용자 지정 응답을 전송한 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.policy_result_drop
(gauge)
RPZ/필터 엔진이 삭제한 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.policy_result_noaction
(gauge)
RPZ/필터 엔진이 조치를 취하지 않은 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.policy_result_nodata
(gauge)
RPZ/필터 엔진이 NODATA로 응답한 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.policy_result_nxdomain
(gauge)
RPZ/필터 엔진이 NXDOMAIN로 응답한 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.policy_result_truncate
(gauge)
RPZ/필터 엔진이 TCP로 강제 전환한 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.qa_latency
(gauge)
지난 ’latency-statistic-size’ 패킷에 지수 가중 이동 평균을 적용한 평균 레이턴시(마이크로초)
microsecond로 표시
powerdns.recursor.questions
(gauge)
사용자가 시작한 초당 UDP 쿼리 수
operation으로 표시
powerdns.recursor.real_memory_usage
(gauge)
PowerDNS가 사용하는 메모리 양(바이트). pdns_recursor v4.x부터 사용 가능
byte로 표시
powerdns.recursor.resource_limits
(gauge)
리소스 제한으로 인해 실행하지 못한 초당 쿼리 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.server_parse_errors
(gauge)
파싱할 수 없는 초당 서버 응답 패킷 수
error로 표시
powerdns.recursor.servfail_answers
(gauge)
초당 SERVFAIL 응답 수
response로 표시
powerdns.recursor.spoof_prevents
(gauge)
PowerDNS가 스푸핑 시도로 간주하여 데이터를 삭제한 초당 횟수
powerdns.recursor.sys_msec
(gauge)
‘시스템’ 모드에서 소요된 CPU 시간(밀리초)
millisecond로 표시
powerdns.recursor.tcp_client_overflow
(gauge)
‘쿼리 안 함’ 설정으로 인해 드롭된 발신 쿼리 수
query로 표시
powerdns.recursor.tcp_clients
(gauge)
초당 활성 TCP/IP 클라이언트 수
powerdns.recursor.tcp_outqueries
(gauge)
초당 발신 TCP 쿼리 수
operation으로 표시
powerdns.recursor.tcp_questions
(gauge)
초당 수신 TCP 쿼리 수
operation으로 표시
powerdns.recursor.throttle_entries
(gauge)
스로틀 맵의 엔트리 수
entry로 표시
powerdns.recursor.throttled_out
(gauge)
스로틀된(제한된) 초당 발신 TCP 쿼리 수
operation으로 표시
powerdns.recursor.too_old_drops
(gauge)
너무 오래되어 삭제된 초당 질의 수. pdns_recursor v4.x부터 사용 가능
query로 표시
powerdns.recursor.udp_in_errors
(gauge)
OS가 처리할 수 있는 속도보다 빠르게 수신된 초당 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.udp_noport_errors
(gauge)
원격 포트가 수신 중 상태가 아니라는 ICMP 응답을 받은 초당 UDP 패킷 수. pdns_recursor v4.x부터 사용 가능
packet으로 표시
powerdns.recursor.udp_recvbuf_errors
(gauge)
UDP 수신 버퍼에서 발생하는 초당 오류 수. pdns_recursor v4.x부터 사용 가능
error로 표시
powerdns.recursor.udp_sndbuf_errors
(gauge)
UDP 전송 버퍼에서 발생하는 초당 오류 수. pdns_recursor v4.x부터 사용 가능
error로 표시
powerdns.recursor.unauthorized_tcp
(gauge)
‘allow-from’ 제한으로 인해 거부된 초당 TCP 질의 수
operation으로 표시
powerdns.recursor.unauthorized_udp
(gauge)
‘allow-from’ 제한으로 인해 거부된 초당 UDP 질의 수
operation으로 표시
powerdns.recursor.unexpected_packets
(gauge)
원격 서버에서 수신한 초당 예상치 못한 응답 수
operation으로 표시
powerdns.recursor.unreachables
(gauge)
초당 네임서버에 연결할 수 없는 횟수
powerdns.recursor.uptime
(gauge)
PowerDNS가 실행된 시간(초)
second로 표시
powerdns.recursor.user_msec
(gauge)
‘사용자’ 모드에서 소요된 CPU 시간(밀리초)
millisecond로 표시

이벤트

PowerDNS Recursor 점검은 이벤트를 포함하지 않습니다.

서비스 점검

powerdns.recursor.can_connect

Agent 점검이 모니터링되는 Gearman 인스턴스에 연결할 수 없는 경우 CRITICAL을 반환합니다. 연결할 수 있으면OK를 반환합니다.

상태: ok, critical

트러블슈팅

도움이 필요하세요? Datadog 지원 팀에 문의하세요.