コンテンツに移動
ネットワーキング

Cloud DNS 一般公開ゾーンのクエリの視覚化のための、ログベースの指標と Cloud Monitoring の使用

2023年11月1日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 10 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。

ロギングが有効になっているときは、Cloud DNS によって、外部ソースから一般公開ゾーンに対するすべての DNS クエリのログが記録されます。ログにはクエリ名、クエリの形式、レスポンス コード、送信元 IP アドレスなどの役立つ情報が含まれています。ユーザーは Cloud Logging のデータをクエリして、特定の情報を検索したり、発生している問題を解決したりすることができます。しかしながら、Cloud DNS は一般公開ゾーンの指標を公開していないため、ログデータのすべてを直接視覚化する方法はありません。

このブログ投稿では、Cloud DNS の一般公開ゾーンのログデータを使用して、ログベースの指標を作成する方法を説明します。次に、Cloud Monitoring を使用して、データを表示するカスタム ダッシュボード作成する方法も説明します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/01v.max-2000x2000.jpg

事前構成済みのダッシュボードには、次の情報が表示されます。

すべての一般公開ゾーンに対するクエリ数: 指定された期間内にすべての一般公開ゾーンが受信した DNS クエリの合計数。

https://storage.googleapis.com/gweb-cloudblog-publish/images/02_8YIrrO0.max-1200x1200.png

ターゲット名ごとのクエリ数: 指定された期間内に各一般公開ゾーンが受信した DNS クエリの数。

https://storage.googleapis.com/gweb-cloudblog-publish/images/03_SFnpyjm.max-1200x1200.png

レスポンス コード: 指定された期間内にすべての一般公開ゾーンで返された、各レスポンス コードの発生数。

https://storage.googleapis.com/gweb-cloudblog-publish/images/04_iqThogx.max-1200x1200.png

ターゲット名ごとのレスポンス コード: 特定のレスポンス コードが返された回数を、一般公開ゾーンごとにグループ化したもの。

https://storage.googleapis.com/gweb-cloudblog-publish/images/05_xVrIe7X.max-1200x1200.png

エラー: 指定された期間内にすべての一般公開ゾーンで返された NoError 以外のレスポンス コードの合計数。

https://storage.googleapis.com/gweb-cloudblog-publish/images/06_ZrAI6Sz.max-1200x1200.png

ターゲット名ごとのエラー数: NoError 以外のレスポンス コードの合計数を、一般公開ゾーンごとにグループ化したもの。

https://storage.googleapis.com/gweb-cloudblog-publish/images/07_TW9mEDa.max-1200x1200.png

サーバーのレイテンシ: この分布指標は、個々の値ではなく、リクエストのレイテンシについての統計データをレポートします。ヒートマップ グラフは、サーバー レイテンシの 50 パーセンタイル、95 パーセンタイル、99 パーセンタイルを示します。50 パーセンタイルは、レイテンシの中央値です。95 パーセンタイルはリクエストの 95% が超過したレイテンシを、99 パーセンタイルはリクエストの 99% が超過したレイテンシを示す値です。ヒートマップ グラフを解釈する方法の詳細については、公式ドキュメントをご覧ください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/08_pzLitl0.max-1600x1600.png

Cloud DNS のカスタム ダッシュボードを作成する手順

次の手順に沿って行います。

  1. 一般公開ゾーンでロギングを有効にする
  2. 一般公開ゾーンのログエントリを理解する
  3. ログベースの指標を作成する
  4. カスタム ダッシュボードを作成する

1. 一般公開ゾーンでロギングを有効にする

限定公開ゾーンでのロギングはクライアント ネットワークの DNS サーバー ポリシーによって有効または無効に設定されますが、それとは異なり、一般公開ゾーンのロギングはゾーンレベルでロギングを有効または無効に設定できます。既存の一般公開ゾーンのロギングを有効にするには、次のコマンドを使用します。

コマンド

読み込んでいます...

: Cloud DNS はネームサーバーに到達したクエリのみを記録します。キャッシュから応答されたクエリはログに記録されません。

2. 一般公開ゾーンのログエントリを理解する

すべてのフィールドの表を Cloud DNS のロギングとモニタリングに関するドキュメントで確認できます。このセクションでは、後でログベースの指標の作成に使用するフィールドについて説明します。

ログベースの指標の作成に使用するフィールドは、次のとおりです。

queryName: DNS クエリ名(例: www.example.com)。

queryType: DNS クエリの形式(例: A、AAAA、SOA、NS)。以下で紹介するログエントリのサンプルは、A レコードのクエリです。

sourceIP: Cloud DNS が受信したクエリの送信元である DNS リゾルバの IP アドレス。

responseCode: DNS レスポンス コード(例: NOERROR、NXDOMAIN、SERVFAIL、REFUSED)。

project_id: 一般公開ゾーンを所有しているプロジェクトの Google Cloud プロジェクト ID。

target_type: DNS クエリを解決するターゲットの種類(public-zone、private-zone、forwarding-zone、forwarding-policy、peering-zone、internal、external)。

target_name: ターゲット名(例: ゾーン名、ポリシー名、内部ゾーン名、外部ドメイン名)。

3. ログベースの指標を作成する

カウンタ指標と分布指標の 2 つのログベースの指標を作成する必要があります。

  • カウンタ指標は、特定の DNS クエリ名、クエリの形式、またはレスポンス コードを持つログエントリの数を数えるために使用します。
  • 分布指標は、サーバー レイテンシの分布を抽出するために使用します。

ログベースの指標を作成するには、gcloud logging metrics create コマンドを使用します。ロギング指標の構成は、.yaml ファイルを使用して、gcloud に渡すことができます。

注: すべてのユーザー定義のログベースの指標は Cloud Monitoring カスタム指標のクラスであり、課金対象です。料金については、Cloud Logging の料金: ログベースの指標をご覧ください。ログベースの指標の保持期間は、6 週間です。詳しくは、データの保持に関するドキュメントをご覧ください。

カウンタ指標を作成する

  1. GitHub から config.yaml をダウンロードします。
読み込んでいます...

2. カウンタ指標を作成するには、gcloud logging metrics create コマンドを使用します。

コマンド

読み込んでいます...

分布指標を作成する

  1. GitHub から latency-config.yaml をダウンロードします。
読み込んでいます...

2. カウンタ指標を作成するには、gcloud logging metrics create コマンドを使用します。

コマンド

読み込んでいます...

4. ダッシュボードを作成する

  1. GitHub から dashboard.json をダウンロードします。このファイルを使用して、事前構成済みのダッシュボードをインポートします。
読み込んでいます...

2. gcloud monitoring dashboards create コマンドを使用してダッシュボードを作成します。このコマンドを実行すると、gcloud-custom-dashboard という名前のカスタム ダッシュボードが作成されます。

コマンド

読み込んでいます...

ダッシュボードにアクセスする

  1. Google Cloud コンソールで、[モニタリング]、[ダッシュボード] の順にクリックします。
https://storage.googleapis.com/gweb-cloudblog-publish/images/09_J9LATGw.max-1800x1800.png

2. gcloud-custom-dashboard という名前のカスタム ダッシュボードをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/10_KyXvb5h.max-1900x1900.png

3. ダッシュボードはグループ条件、フィルタ機能を使用して表示を細かく調整できます。たとえば、以下のスクリーンショットでは、クエリの種類が「A」のレコードのみが表示されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/11_Dna3vbT.max-2200x2200.png

考慮事項

  1. ログベースの指標は、その他の指標よりも取り込みの遅延が大きくなります。そのため、リアルタイム モニタリングや、機密性の高いアラートには不向きです。
  2. 指標のカウントは遅れる可能性があります。ログベースの指標は、ログの取り込みで 10 分の遅延が生じる可能性があるため、正確なログ数が遅れて表示されることもあります。
  3. ログベースの指標のアラートを構成するときは、アライメント期間を最低でも 5 分間に設定する必要があります。それにより、わずかな変動により、アラートがトリガーされるのを防ぎます。

詳細

DNS の機能とカスタマイズ オプションについて詳しくは、以下をご覧ください。

ー ネットワーク スペシャリスト Paarth Mahajan

ー テクニカル ソリューション エンジニア Maddy Soleimanian

投稿先