본문 바로가기
WIKI 기술 지식 베이스

DNS 모니터링 (DNS Monitoring)

원문 보기 위키 갱신

DNS 서버 문제를 진단하고 디버깅하는 방법을 알아봐요. DNS 서버 성능에 대한 가시성을 제공해 서버 측과 클라이언트 측 DNS 문제를 식별하도록 도와줘요.

출처: 문서

본문

개요 (Overview)

DNS Monitoring은 DNS 서버 성능에 대한 가시성을 제공해 서버 측과 클라이언트 측 DNS 문제를 식별하도록 도와줘요. 플로우 수준 DNS 메트릭을 수집·표시해 다음을 식별할 수 있어요:

  • 어떤 파드나 서비스가 DNS 요청을 하고 어떤 서버가 처리하는지.
  • 상위 요청자와 그들의 쿼리율.
  • 점진적 또는 갑작스러운 응답 시간 스파이크를 겪는 DNS 서버.
  • DNS 서버의 높은 오류율과 특정 오류 유형.
  • 인프라 전반의 도메인 해석 패턴.

{% image source="https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_overview_2.37e99864d1a8802b141c67f53e7b41d9.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_overview_2.37e99864d1a8802b141c67f53e7b41d9.png?auto=format&fit=max&w=850&dpr=2 2x" alt="The CNM Analytics page with the DNS toggle enabled." /%}

사전 요구 사항 (Prerequisites)

{% alert level="info" %} 이 문서는 CNM의 DNS Monitoring에 적용돼요. 네트워크 장치 모니터링(NDM)에 대한 정보는 NDM 설정 지침을 참고하세요. {% /alert %}

쿼리 (Queries)

CNM > Analytics의 DNS 토글에서 검색창을 사용해 클라이언트(DNS 요청을 하는 쪽)와 DNS 서버(DNS 요청에 응답하는 쪽) 사이의 종속성을 쿼리해요. 대상 포트는 DNS 포트 53으로 자동으로 범위가 한정되어 모든 결과 종속성이 이 client → DNS server 형식과 일치해요.

검색을 특정 클라이언트로 좁히려면 검색창에서 클라이언트 태그를 사용해 DNS 트래픽을 필터링해요. 기본적으로 클라이언트는 가장 흔한 태그로 그룹화되며, 각 행은 DNS 서버에 DNS 요청을 하는 서비스를 나타내요.

{% image source="https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_client_search_2.ddfa39311ce05970da6044427a1dea5d.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_client_search_2.ddfa39311ce05970da6044427a1dea5d.png?auto=format&fit=max&w=850&dpr=2 2x" alt="The DNS monitoring page with client_service:web-store entered into the search bar and network.dns_query entered for View servers as" /%}

검색을 특정 DNS 서버로 좁히려면 검색창을 서버 태그로 필터링해요. Group by 드롭다운 메뉴에서 다음 옵션 중 하나로 서버 표시를 구성해요:

  • dns_server: DNS 요청을 받는 서버. 이 태그는 pod_name 또는 task_name과 동일한 값을 가져요. 해당 태그를 사용할 수 없으면 host_name이 사용돼요.
  • host: DNS 서버의 호스트 이름.
  • service: DNS 서버에서 실행되는 서비스.
  • IP: DNS 서버의 IP.
  • dns_query: 쿼리된 도메인.

{% image source="https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/recommended_queries_dns_2.8caab7e59a59675b0e4200c8d2a71fcf.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/recommended_queries_dns_2.8caab7e59a59675b0e4200c8d2a71fcf.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Recommended queries in the DNS monitoring page displaying the description of a query for DNS timeouts." /%}

DNS 페이지 상단에는 Network Analytics 페이지와 유사하게 세 가지 권장 쿼리가 있어요. 이는 DNS 건강 상태를 조사하고 높은 수준의 DNS 메트릭을 보기 위해 흔히 사용되는 정적 쿼리예요. 권장 쿼리를 시작점으로 사용해 DNS 구성에 대한 추가 인사이트를 얻고 DNS 문제를 해결하세요.

권장 쿼리 위에 마우스를 올리면 쿼리 결과가 무엇을 의미하는지에 대한 간단한 설명을 볼 수 있어요. 쿼리를 클릭해 실행하고, Clear query를 클릭해 쿼리를 제거해요. 각 권장 쿼리에는 자체 권장 그래프 세트도 있어요. 권장 쿼리를 지우면 그래프가 기본 설정으로 재설정돼요.

메트릭 (Metrics)

다음 DNS 메트릭을 사용할 수 있어요:

참고: 데이터는 30초마다 수집되고 5분 버킷으로 집계되며 14일 동안 보존돼요.

메트릭 (Metric) 설명 (Description)
DNS 요청 (DNS requests) 클라이언트가 만든 DNS 요청 수.
초당 DNS 요청 (DNS requests / second) 클라이언트가 만든 DNS 요청의 비율.
DNS 응답 시간 (DNS response time) 클라이언트의 요청에 대한 DNS 서버의 평균 응답 시간.
시간 초과 (Timeouts) 클라이언트의 시간 초과된 DNS 요청 수(모든 DNS 응답의 백분율로 표시).참고: 이 시간 초과는 NPM이 내부적으로 계산한 메트릭이며 NPM 외부에서 보고된 DNS 시간 초과와 일치하지 않을 수 있어요. DNS 클라이언트나 서버가 보고하는 DNS 시간 초과와는 다르며, 같은 것이 아니에요.
오류 (Errors) DNS 오류 코드를 생성한 클라이언트의 요청 수(모든 DNS 응답의 백분율로 표시).
SERVFAIL SERVFAIL(DNS 서버 응답 실패) 코드를 생성한 클라이언트의 요청 수(모든 DNS 응답의 백분율로 표시).
NXDOMAIN NXDOMAIN(도메인 이름이 존재하지 않음) 코드를 생성한 클라이언트의 요청 수(모든 DNS 응답의 백분율로 표시).
기타 (OTHER) NXDOMAIN이나 SERVFAIL이 아닌 오류 코드를 생성한 클라이언트의 요청 수(모든 DNS 응답의 백분율로 표시).
실패 (Failures) 클라이언트의 DNS 요청에서 발생한 시간 초과와 오류의 총 수(모든 DNS 응답의 백분율로 표시).

테이블 (Table)

네트워크 테이블은 위 메트릭을 쿼리로 정의된 각 클라이언트 및 서버 종속성별로 분류해요. 테이블 오른쪽 상단의 Customize 기어 아이콘(⚙️)을 사용해 테이블의 열을 구성할 수 있어요.

Filter Traffic 옵션으로 뷰의 트래픽 범위를 좁혀요.

{% image source="https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_table_view.942fbae6687c659d1a37ba4f6cf583ee.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_table_view.942fbae6687c659d1a37ba4f6cf583ee.png?auto=format&fit=max&w=850&dpr=2 2x" alt="The CNM Analytics page showing the table view of DNS network traffic." /%}

사이드 패널 (Sidepanel)

사이드 패널은 DNS 서버 종속성을 빠르게 디버깅하는 데 도움이 되는 컨텍스트 텔레메트리를 제공해요. Flows, Logs, Traces, Processes 탭을 사용해 DNS 서버의 높은 수신 요청 수, 응답 시간 또는 실패율이 다음 때문인지 판단해요:

  • 기본 인프라의 리소스를 소비하는 무거운 프로세스
  • 클라이언트 측 코드의 애플리케이션 오류
  • 특정 포트나 IP에서 시작된 많은 수의 요청

{% image source="https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_sidepanel_3.4c8c937fbed76b5d5b25936721fc83be.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/network_performance_monitoring/dns_monitoring/dns_sidepanel_3.4c8c937fbed76b5d5b25936721fc83be.png?auto=format&fit=max&w=850&dpr=2 2x" alt="DNS Monitoring sidepanel" /%}

더 알아보기 (Learn more)

도움이 되는 추가 문서, 링크, 아티클이에요: