Datadog の DNS モニタリングページ
DNS モニタリングを有効にするには、Agent バージョン 7.33 以降にアップグレードします。

DNS モニタリングにより提供される DNS サーバーのパフォーマンス概要を把握することで、サーバー側およびクライアント側の DNS に関する問題を確認できます。フローレベルの DNS メトリクスを収集、表示するこのページを使用して、以下を確認できます。

  • DNS リクエストを作成しているポッドまたはサービス、およびそのリクエストを受信するサーバー。
  • 最も多くのリクエストを作成または最高レートでリクエストを作成しているエンドポイント。
  • DNS サーバーによるリクエストへの応答時間が徐々にまたは急に増加した場合。
  • 高いエラー率の DNS サーバーと、送信されるエラーのタイプ。
  • どのドメインが解決されているか。

セットアップ

DNS モニタリングの使用を開始する前に、ネットワークパフォーマンスモニタリングのセットアップを行ってください。また、最新バージョンの Agent、少なくとも Linux OS では Agent v7.23+、Windows Server では v7.28+ を使用していることを確認してください。インストールすると、ネットワークパフォーマンスモニタリング製品に DNS タブが表示されます。

ネットワークデバイスモニタリングをご希望の場合は、NDM セットアップ手順をご覧ください。

クエリ

ページ上部の検索バーを使用して、(DNS リクエストを作成する) クライアント、および DNS リクエストに応答する DNS サーバーの間の依存関係をクエリします。宛先ポートは自動的に DNS ポート 53 に限定され、依存関係の検索結果がすべてこの形式 (クライアント → DNS サーバー) に一致するようになります。

検索を特定のクライアントに絞るには、検索バーでクライアントタグを使用して DNS トラフィックにフィルターをかけ集計します。デフォルトのビューでは、クライアントは自動的に最も一般的なタグでグループ化されます。したがって、表の各行は DNS サーバーへ DNS リクエストを作成しているサービスを表しています。

検索バーに client_service:ad-server、View clients as に pod_name、View servers as に network.dns_query を入力した DNS モニタリングページ

検索を特定の DNS サーバーに絞るには、検索バーでサーバータグを使用します。Group by のドロップダウンメニューで以下のオプションの 1 つを使ってサーバーの表示を構成します。

  • dns_server: DNS リクエストを受信するサーバー。このタグには、pod_name または task_name と同じ値が与えられています。上記タブが使用できない場合は、host_name を使用します。
  • host: DNS サーバーのホスト名。
  • service: DNS サーバーで実行中のサービス。
  • IP: DNS サーバーの IP。
  • dns_query: (Agent バージョン 7.33 以降が必要) クエリされたドメイン。

この例は、本番環境のアベイラビリティーゾーンのポッドから、DNS リクエストを受信するホストへのすべてのフローを示しています。

Search for フィールドに client_availability_zone:us-central1-b と client_env: prod を入力し、View clients as ドロップダウンで pod_name を選択し、View servers as ドロップダウンで host を選択したクエリ

推奨クエリ

クエリの説明を表示する DNS モニタリングページの推奨クエリ

DNS ページの上部には、Network Analytics ページに似た 3 つの推奨クエリがあります。これらは、DNS の健全性を調査し、概要 DNS メトリクスを表示するために一般的に使用される静的クエリです。推奨されるクエリを出発点として使用して、DNS 構成をさらに詳しく把握し、DNS の問題をトラブルシューティングしてください。

推奨クエリにカーソルを合わせると、そのクエリの結果が意味する簡単な説明が表示されます。クエリを実行するにはクエリをクリックし、クエリを削除するには Clear query をクリックします。それぞれの推奨クエリには、推奨グラフのセットもあります。推奨クエリをクリアすると、グラフがデフォルト設定にリセットされます。

メトリクス

DNS メトリクスはグラフと関連する表を用いて表示されます。

: データは 30 秒ごとに収集され、5 分ごとに集計され、14 日間保持されます。

次の DNS メトリクスを使用できます。

メトリクス説明
DNS requestsクライアントで作成された DNS リクエストの数。
DNS requests / secondクライアントにより作成された DNS リクエストの速度。
DNS response timeクライアントからのリクエストへの DNS サーバーによる平均応答時間。
Timeoutsクライアントからのタイムアウトした DNS リクエストの数 (全 DNS レスポンスに対する割合で表示されます)。

: これらのタイムアウトは NPM が内部的に計算したメトリクスであり、NPM の外部から報告された DNS タイムアウトとは一致しない場合があります。DNS クライアントやサーバーが報告する DNS タイムアウトとは異なります。
ErrorsDNS エラーコードを生成した、クライアントからのリクエスト数(DNS の全応答に対するパーセンテージとして表示)。
SERVFAILSERVFAIL コード(DNS サーバーの応答失敗)を生成した、クライアントからのリクエスト数(DNS の全応答に対するパーセンテージとして表示)。
NXDOMAINNXDOMAIN コード(ドメイン名の存在なし)を生成した、クライアントからのリクエスト数(DNS の全応答に対するパーセンテージとして表示)。
OTHERNXDOMAIN または SERVFAILDNS 以外のエラーコードを生成した、クライアントからのリクエスト数(DNS の全応答に対するパーセンテージとして表示)。
Failuresクライアントからの DNS リクエストにおけるすべてのタイムアウトとエラーの総数(DNS の全応答に対するパーセンテージとして表示)。

ネットワークテーブルには、クエリで定義された各_クライアント_と_サーバー_の依存関係別に、上記メトリクスの詳細が表示されます。

表の右上にある Customize ボタンを使い、表中の列を構成します。

Filter Traffic オプションで、ビュー内のトラフィックの詳細を表示できます。

サイドパネル

サイドパネルでは、DNS サーバーの依存関係のデバッグに役立つコンテキストテレメトリを確認できます。Flows、Logs、Traces、Processes タブを使用して、DNS サーバーの受信リクエストや応答時間、失敗率の数値が高い原因が次であるかどうかを判別します。

  • 基底のインフラストラクチャーのリソースを消費している重い処理
  • クライアント側のコードでのアプリケーションエラー
  • 特定のポートまたは IP から発生している大量のリクエスト
DNS モニタリングのサイドパネル

その他の参考資料