ネットワークパフォーマンスモニタリングで Windows ホストを監視する | Datadog

ネットワークパフォーマンスモニタリングで Windows ホストを監視する

Author Yael Goldstein
Author Paul Gottschling

Last updated: March 31, 2021

ハイブリッドまたはクラウド環境で Windows と Linux ベースのホストをどちらも実行している場合は、ネットワークの監視が特に重要な意味を持ちます。しかも、この場合の監視はそう簡単にはいきません。ネットワーク接続がますます分散化し、ダイナミックになりつつある今、リージョンやサービス、OS をまたいだ接続の問題をすばやく特定するための対策が必要です。

Datadog のネットワークパフォーマンスモニタリング (NPM) は、これらの動的な環境を包括的に可視化してくれる便利なツールです。現在は Windows ホストもサポートできるようになりました。NPM で Windows がサポートされたことで、ネットワークのエンドポイントをまたぐトラフィックのフローを可視化し、 マルチ OS 環境でアプリケーションとインフラストラクチャーに関する問題をコンテキスト化することができます。

ネットワークパフォーマンスモニタリングのネットワーク概要ページ。現在は Windows にも対応。

OS の種類に関わらずネットワークを可視化

インフラストラクチャーでマイクロサービス、マルチクラウドデプロイ、カナリア構成、その他の複雑なネットワークアーキテクチャを運用している場合、ネットワーク トポロジーを概念化および監視する最も効果的な方法は「ネットワークをライブで可視化すること」です。ネットワークパフォーマンスモニタリングなら、Windows と Linux ホストの両方でお使いのネットワークアーキテクチャを可視化することができます。さらに深い構造を知りたい場合は、メトリクスとタグベースのフィルターを使用してデータを掘り下げ、ネットワークの遅延や接続問題が頻繁に発生する依存関係をすばやく特定することができます。

ネットワークマップを使用して、ネットワーク トポロジーのインサイトをすばやく取得

Datadog のネットワークパフォーマンスモニタリングは Windows サーバーのインスタンス、IIS ロードバランサー、SQL Server のレプリカ、およびインフラストラクチャー内にあるすべてのホスト間のネットワークトラフィックをマッピングします。

ネットワークマップはネットワーク内における問題の所在を特定するのに役立ちます。以下の例では、ネットワークマップを使用してアプリケーション内のインシデントを調査しています。マップにはサービス間で送信されたバイトの量が表示されます。

Windows 対応の NPM を使用して、ネットワークマップでサービス間のトラフィックを表示します。
Windows 対応の NPM を使用して、ネットワークマップでサービス間のトラフィックを表示します。

ネットワークマップには各サービスに関連するアラート設定のステータスが表示されるため、健全なサービスの中でアラート状態のものがあった場合にすばやく調査を開始することができます。

ネットワークマップでネットワークの流れを可視化することで、知らなかったサービスがまだ稼働しているなど、ネットワークの非効率性をすばやく把握することができます。この情報をもとに最適化できそうな箇所を特定し、新しいアベイラビリティゾーンでのブルーグリーン・デプロイメントやロールアウトといった運用を監視します。

アラート設定されたノードがあった場合は、そのノードをクリックし、コンテキストメニューで「Inspect」をクリックして、そのノードのアップストリームまたはダウンストリームの依存関係で同じくアラートが発生していないかをすばやく確認することができます。

ネットワーク概要で詳細を掘り下げ

ネットワーク概要とは、お使いの Windows および Linux 環境におけるネットワークの依存関係と、それらの依存関係の健全性を表示するカスタマイズ可能なビューのことです。

タグを使用してグループ化およびフィルタリングを行うことで、IP 同士の接続データを仮想プライベートクラウド、アベイラビリティゾーン、サービス、その他インフラストラクチャーで重要な部分をまたぐトラフィックフローとして可視化することができます。また、ファセットパネルを使用してビューの表示を特定のアプリケーションポート (例: Kafka や Redis 向けなど) のスコープに絞り込み、(たとえば) インフラストラクチャーの依存関係が VPC 間のネットワーク遅延を増加させているかどうかといった問題を特定することができます。

Windows 対応の NPM では、ネットワーク概要サイドバーにログ、トレース、プロセスメトリクスに関わる接続データが表示されます。
Windows 対応の NPM では、ネットワーク概要サイドバーにログ、トレース、プロセスメトリクスに関わる接続データが表示されます。

あるネットワークの依存関係でデータ量が突然変化した場合は、関連するプロセスログトレースを検査することでその原因や影響をすばやく特定できます。

  • トラフィックが急増すると、CPU の使用率や宛先エンドポイントで実行されているプロセスの RSS メモリが増加します
  • ネットワークのトラフィック量が減少すると、データベース接続が落ちた旨のエラーログが増加します
  • Web サーバーの需要が上がると、リクエストのレイテンシーも増加する傾向にあります

Windows 対応の NPM でネットワークのトラブルシューティングを効率化

ログ、インフラストラクチャーのメトリクス、アプリケーショントレースを利用してネットワークフローのデータを可視化することで、コンテキストを切り替えることなく、Windows またはマルチ OS ネットワークにおける問題の根本原因をすばやく突き止めることができます。この仕組みを以下の例でご説明しましょう。

このシナリオでは、Datadog のアラートがお客様のチームに「パブリッククラウド内で実行されているアプリケーションで、リクエストの処理に通常よりもかなり時間がかかっている」ことを通知します。availability_zone タグで multi-alert が設定されているため、レイテンシーが上がっても影響を受けるのは単一のアベイラビリティゾーン (AZ) 内でアプリケーションを実行しているホストのみだということが分かります。アラートの通知には、ネットワーク概要のビューを開くリンク(タグ変数を使用)が含まれます。 このリンクはアプリケーションが宛先となるネットワークフローのみを表示するよう事前にフィルタリングされています。残りのテレメトリーデータに NPM データを関連付けて、次のように問題の潜在的な原因を調査することができます。

  • 影響を受けるアベイラビリティゾーンで実行されるアプリケーションの[需要が極めて高い](#関連する AZ のアプリケーションインスタンスが、ネットワークトラフィックで過負荷状態である)
  • アプリケーションホスト内で実行されるプロセスが[通常より多くの CPU を消費している](#アプリケーションサーバーが通常より多くの CPU を消費している)
  • 直近のリリースで、アプリケーションにエラーを起こしやすいコードパスが実装された
  • インフラストラクチャーの依存関係が不健全
Windows 対応の NPM でネットワークのトラブルシューティングを効率化。

関連する AZ のアプリケーションインスタンスが、ネットワークトラフィックで過負荷状態である

アラート通知からネットワーク概要を開いて、影響を受ける AZ のアプリケーションホストが通常より多いネットワークトラフィックを処理していないかを確認します。「Volume Sent」グラフでサービスへのトラフィックが異常に増加している場合は、アプリケーションコードやアプリケーションホストの条件以外の要素 (アップストリームのプロキシでの構成ミスや別の AZ で可用性が失われたなど) によってアプリケーションのレイテンシーが急上昇したことを示します。

Windows 対応の NPM でネットワークのトラブルシューティングを効率化。

アプリケーションサーバーが通常より多くの CPU を消費している

ネットワーク概要で、お使いのアプリケーションが宛先となるフローのいずれかをクリックします。すると、そのフローに関する詳細を含むサイドバーが開きます。ここから「Processes」タブを開き、フローに関連するすべてのプロセスについてのデータを閲覧します。CPU 使用率でプロセスを並べ替えることで、(ローカルの DNS リゾルバーなど) 予期しないプロセスがアプリケーションに割り当てられたコンピューティングリソースを消費していないかどうかを確認できます。

Windows 対応の NPM でネットワークのトラブルシューティングを効率化。

アプリケーションコードにエラーが含まれている

アプリケーションを含むフローをクリックするとネットワーク概要のサイドバーが開くので、そこで「Traces」タブをクリックします。アプリケーションへのリクエストに対する応答コードが 503 (サービス利用不可) であった場合、これらのリクエストはタイムアウト状態になっています。エラーを含むフレームグラフを確認すると、影響を受けるアベイラビリティゾーンでチームがカナリアデプロイを行ったリリースに、「テーブル全体をスキャンする」SQL Server のクエリが含まれていたことで、リクエストの時間がタイムアウト間隔を超過してしまっていたことが分かります。

インフラストラクチャーの依存関係でエラー率が上昇している

アプリケーション用に作成したカスタムダッシュボードを開いて、NPM データ、およびインフラストラクチャーとアプリケーションから取得したその他のデータを確認します。その後、availability_zone テンプレート変数を、アプリケーションリクエストのレイテンシーが高い旨のアラートをトリガーしたものへと調整します。Datadog は AzureAWSGCP、およびその他のサービスと統合が可能であるため、リクエストのレイテンシーメトリクスが Amazon S3 (aws.s3.4xx_errors) の NoSuchKeyInvalidObjectState エラーなど、クラウドベースの依存関係に起因するエラーと関連しているかどうかを確認することができます。

Windows 対応の NPM でネットワークのトラブルシューティングを効率化。

これらのシナリオのいずれかで単一 AZ でのレイテンシー増加が解決しない場合は、お使いのクラウドプロバイダーのネットワークが停止している可能性があります。サポートチームにお問い合わせください。

わずか数分でネットワークレベルの可視性を実現

Windows ホスト向けのネットワークパフォーマンスモニタリングを使用すれば、マルチクラウドおよびマルチ OS 環境を総合的に可視化することができます。Datadog のカスタム Windows ドライバーは、ローカルネットワークインターフェースとレポートデータを介して Datadog Agent へと到達するすべてのトラフィックをサンプリングなしで検査します。NPM の Linux 向け eBPF 搭載システムプローブと同様、Windows ドライバーも最小限のオーバーヘッドで実行することができます。

Windows 版のネットワークパフォーマンスモニタリングを有効化するには、ドキュメントに記載のステップに従ってください。

すべてのエンドポイントをくまなく監視

Windows 対応の NPM でネットワーク トポロジーの変化を可視化することで、レイテンシーや接続関連の問題のトラブルシューティングを効率化し、ネットワークアーキテクチャ内の非効率を突き止めることができます。Datadog アカウントをお持ちでない場合は、にご登録いただくことですべてのインフラストラクチャーをまたぐネットワークフローの監視をすぐに開始できます。