Azure での Service Map ソリューションの使用

Service Map は自動的に Windows および Linux のシステム上のアプリケーション コンポーネントを検出し、サービス間の通信をマップします。 Service Map を使用すると、サーバーを重要なサービスを提供する相互接続されたシステムとして表示することができます。 Service Map では、サーバー間の接続、プロセス、インバウンド接続とアウトバウンド接続の待ち時間、TCP 接続アーキテクチャ全体のポートを確認することができます。 エージェントのインストール以外に構成は必要ありません。

重要

Service Map は 2025 年 9 月 30 日に廃止されます。 サーバー間の接続、プロセス、受信および送信接続の待機時間、TCP 接続アーキテクチャ全体のポートを監視する場合、この日付より前に必ず Azure Monitor VM insights に移行してください。

この記事では、Service Map をデプロイして使用する方法について説明します。 ソリューションの前提条件は次のとおりです。

Note

Service Map を既にデプロイ済みの場合は、VM insights でマップを表示することもできます。これには、VM の正常性とパフォーマンスを監視する追加機能が含まれます。 詳細については、VM insights の概要に関するページをご覧ください。 Service Map ソリューションと VM insights のマップ機能の違いについては、この FAQ をご覧ください。

Azure へのサインイン

Azure portal にサインインします。

Service Map を有効にする

  1. Azure Marketplace から Service Map ソリューションを有効にします。 または、Solutions Gallery からの監視ソリューションの追加に関するページで説明されている手順を使用します。

  2. データを取得する各コンピューターの Windows に Dependency Agent をインストールするかLinux に Dependency Agent をインストールします。 Dependency Agent は近隣のコンピューターへの接続を監視することができるため、すべてのコンピューターにエージェントが必要とは限りません。

  3. Log Analytics ワークスペースから Azure portal の Service Map にアクセスします。 左側のウィンドウで、[Legacy solutions] (レガシ ソリューション) オプションを選択します。

    ワークスペースの [ソリューション] オプションの選択を示すスクリーンショット

  4. ソリューションの一覧から、ServiceMap(workspaceName) を選択します。 Service Map ソリューションの [概要] ページで、[Service Map] 概要タイルを選択します。

    [Service Map] 概要タイルを示すスクリーンショット

使用例:IT プロセスの依存関係を明確にする

探索

サービス マップは、サーバー、プロセス、およびサード パーティのサービス間での依存関係について、共通の参照マップを自動的に作成します。 すべての TCP 依存関係を検出してマップします。 予想外の接続、依存しているリモートのサードパーティ システム、Active Directory などの従来型のネットワークの暗領域の依存関係を特定します。 Service Map では、管理システムのネットワーク接続試行の失敗を検出します。 この情報は、サーバーの構成ミス、サービス停止、ネットワークの問題の可能性を特定するのに役立ちます。

インシデント管理

Service Map では、システムがどのように接続され互いに影響しているかを示すので、当て推量で問題を特定することが少なくなります。 失敗した接続を特定するとともに、ロード バランサー構成の問題、重要なサービスへの予想外または過剰な負荷、許可されていないクライアント (実稼働システムと通信する開発者マシンなど) を特定するのに役立ちます。 また、Change Tracking と統合されたワークフローを使用すれば、バックエンド マシンの変更イベントとサービスのどちらがインシデントの根本原因であるのかがわかります。

確実な移行

Service Map を使用すると、Azure の移行を効果的に計画、迅速化、検証することができるため、必要な作業を網羅して予想外の障害が起きないようにすることができます。 次のようにすることができます。

  • 一緒に移行する必要がある、互いに依存するすべてのシステムを検出します。
  • システム構成と容量を評価します。
  • 実行中のシステムがまだユーザーにサービスを提供しているか、または移行ではなく使用停止の対象であるかを特定します。

移行完了後は、クライアントの負荷と ID をチェックして、テスト システムと顧客が接続していることを確認できます。 サブネットの計画とファイアウォールの定義に問題がある場合は、Service Map のマップにある失敗した接続を見れば、接続が必要なシステムがわかります。

ビジネス継続性

Azure Site Recovery を使用していて、お使いのアプリケーション環境における復元シーケンスの定義が必要な場合、Service Map では、どのようにシステムが相互依存しているかを自動的に表示できます。 この情報は、復旧計画の信頼性を確認するのに役立ちます。

重要なサーバーまたはグループを選択してそのクライアントを表示することで、そのサーバーが復元され使用可能になった後に復旧するフロントエンド システムを特定できます。 逆に、重要なサーバーのバックエンドの依存関係を調べることで、焦点となるシステムが復元される前に復旧するシステムを特定できます。

更新プログラムの管理

Service Map では、他のどのチームとサーバーがサービスに依存しているかを示し、システム更新評価の使用を強化します。 このように、更新プログラム適用のためにシステムを停止する前に事前通知することができます。 また、Service Map は、更新プログラムを適用して再起動した後にそのサービスが使用可能で正常に接続されているかを示すことにより、更新プログラム管理を強化します。

マッピングの概要

Service Map エージェントは、それらがインストールされているサーバー上のすべての TCP 接続プロセスに関する情報を収集します。 また、各プロセスの受信接続と送信接続に関する詳細も収集します。

左側のウィンドウの一覧から、Service Map エージェントがインストールされているマシンまたはグループを選択し、指定の時間範囲でその依存関係を視覚化できます。 マシンの依存関係マップは、特定のコンピューターに焦点を当てます。 そのマシンの直接 TCP クライアントまたはサーバーであるすべてのマシンを表示します。 マシン グループのマップでは、一連のサーバーとその依存関係が示されます。

Service Map の概要を示すスクリーンショット。

マシンはマップ上で展開表示することができ、選択した時間の範囲内にアクティブなネットワーク接続で実行しているプロセス グループとプロセスを表示することができます。 Service Map エージェントがインストールされているリモート マシンを展開してプロセスの詳細を表示すると、対象のマシンと通信するプロセスのみが表示されます。

対象のマシンに接続するエージェントなしのフロントエンド マシンの数が、その接続先となるプロセスの左側に示されます。 対象のマシンがエージェントのないバックエンド マシンに接続している場合、そのバックエンド サーバーは、サーバー ポート グループに含められます。 このグループには、同じポート番号への他の接続も含まれます。

既定で、Service Map のマップは、直近 30 分間の依存関係情報を表示します。 左上の時間コントロールを使用して、最大 1 時間の過去の時間の範囲のマップを照会して、過去の依存関係を確認できます。 たとえば、インシデント中や変更が発生する前の状態を確認できます。 Service Map のデータは、有料のワークスペースで 30 日間、無料のワークスペースでは 7 日間のあいだ保存されます。

状態バッジと枠線の色分け

マップ内の各サーバーの下部には、サーバーの状態情報を示す状態バッジの一覧が表示される場合があります。 このバッジは、ソリューション統合のいずれかに、サーバー関連情報があることを示します。

バッジを選択すると、状態に関する詳細情報が右側のウィンドウに直接表示されます。 現在使用できる状態バッジには、アラートサービス デスク変更セキュリティ更新があります。

状態バッジの重大度に応じて、マシン ノードの枠線を赤 (重大)、黄 (警告)、青 (情報) に色分けすることができます。 この色は、状態バッジの中で最も重大な状態を表します。 灰色の枠線は、ノードに状態インジケーターがないことを示します。

状態バッジを示すスクリーンショット。

プロセス グループ

プロセス グループを使用すると、共通の製品またはサービスに関連付けられているプロセスをプロセス グループに結合できます。 マシン ノードを展開すると、プロセス グループと共にスタンドアロン プロセスが表示されます。 プロセス グループ内のプロセスへの受信または送信接続が失敗した場合、その接続はプロセス グループ全体に対して失敗として表示されます。

マシン グループ

マシン グループを使用すると、1 つだけでなく、一連のサーバーを中心としたマップを表示できます。 このように、多層アプリケーションまたはサーバー クラスターのすべてのメンバーを 1 つのマップで確認できます。

ユーザーは、同じグループに属するサーバーを選択し、そのグループに名前を付けます。 その後、すべてのプロセスと接続を含むグループを表示することを選択できます。 また、そのグループの他のメンバーに直接関連するプロセスと接続のみを表示することもできます。

マシン グループを示すスクリーンショット。

マシン グループの作成

グループを作成するには:

  1. グループを作成するには、[マシン] の一覧で 1 つまたは複数のマシンを選択し、[グループに追加] を選択します。

    グループの作成を示すスクリーンショット。

  2. [新規作成] を選択して、グループに名前を付けます。

    グループの名前付けを示すスクリーンショット。

Note

マシン グループは、10 台のサーバーに制限されます。

グループを表示する

いくつかのグループを作成したら、それらを表示できます。

  1. [グループ] タブを選択します。

    [グループ] タブを示すスクリーンショット。

  2. グループ名を選択して、そのマシン グループのマップを表示します。

    マシン グループのマップを示すスクリーンショット。

    グループに属するマシンは、マップ内で白い枠線に囲まれています。

  3. グループを展開して、そのマシン グループを構成するマシンを一覧表示します。

    マシン グループのマシンを示すスクリーンショット。

プロセスによるフィルター

マップ ビューは、グループ内のプロセスと接続をすべて表示するか、マシン グループに直接関連するプロセスと接続のみを表示するかを切り替えることができます。 既定のビューでは、すべてのプロセスが表示されます。

  1. マップの上にあるフィルター アイコンを選択して、ビューを変更します。

    グループのフィルタリングが示されたスクリーンショット。

  2. [すべてのプロセス] を選択して、グループ内の各マシンのプロセスと接続をすべてマップに表示します。

    マシン グループの [すべてのプロセス] オプションを示すスクリーンショット。

  3. 簡略化されたビューを作成するには、グループに接続されたプロセスのみを表示するようにビューを変更します。 その後、グループ内の他のマシンに直接接続されているプロセスと接続のみが表示されるように、マップが絞り込まれます。

    マシン グループのフィルターのプロセスを示すスクリーンショット。

グループにマシンを追加する

既存のグループにマシンを追加するには、追加したいマシンの横にあるチェックボックスをオンにし、[グループに追加] を選択します。 次に、マシンの追加先となるグループを選択します。

グループからマシンを削除する

[グループ] の一覧でグループ名を展開し、マシン グループ内のマシンを一覧表示します。 削除したいマシンの横にある省略記号メニューを選択し、[削除] を選択します。

グループからのマシンの削除を示すスクリーンショット。

グループを削除または名前変更する

グループの一覧にあるグループ名の横にある省略記号メニューを選択します。

マシン グループのメニューを示すスクリーンショット。

ロール アイコン

特定のプロセスは、マシンで特定のロール (Web サーバー、アプリケーション サーバー、データベースなど) を担います。 サービス マップでは、プロセスとマシン ボックスにロール アイコンで注釈を付け、プロセスまたはサーバーが担っているロールがひとめでわかるようにします。

ロール アイコン 説明
Web サーバー Web サーバー
アプリ サーバー アプリケーション サーバー
データベース サーバー データベース サーバー
LDAP サーバー LDAP サーバー
SMB サーバー SMB サーバー

ロール アイコンを示すスクリーンショット。

失敗した接続

Service Map では、失敗した接続がプロセスとコンピューターのマップに表示されます。 赤色の破線は、クライアント システムがプロセスまたはポートに到達できないことを示しています。

サービス マップ エージェントがデプロイされているシステムで、接続を試みたが失敗した場合、失敗した接続はそのシステムから報告されます。 Service Map は、接続の確立に失敗した TCP ソケットを監視することで、このプロセスを測定します。 この失敗の原因としては、ファイアウォール、クライアントまたはサーバーの構成の問題、またはリモート サービスが利用できない状態であることが考えられます。

backup.pl プロセスとポート 4475 の間の接続に失敗したことを示す赤い破線が強調表示されている Service Map の一部を示すスクリーンショット。

失敗した接続を把握すると、トラブルシューティング、移行の検証、セキュリティ分析、および全体的なアーキテクチャの理解に役立ちます。 失敗した接続は無害の場合もありますが、直接問題につながることも少なくありません。 フェールオーバー環境が突然到達不能になったり、クラウド移行後に 2 つのアプリケーション層が通信できなくなる可能性があります。

クライアント グループ

クライアント グループは、Dependency Agent がないクライアント マシンを表す、マップ上のボックスです。 1 つのクライアント グループは、個々のプロセスまたはマシンのクライアントを表します。

クライアント グループを示すスクリーンショット。

クライアント グループ内のサーバーの IP アドレスを表示するには、グループを選択します。 グループの内容が、 [Client Group Properties](クライアント グループのプロパティ) ウィンドウに一覧表示されます。

クライアント グループのプロパティを示すスクリーンショット。

サーバー ポート グループ

サーバー ポート グループは、Dependency Agent がないサーバー上のサーバー ポートを表すボックスです。 このボックスには、サーバー ポートと、そのポートに接続しているサーバーの数が表示されます。 ボックスを展開すると、個々 のサーバーと接続が表示されます。 ボックス内にサーバーが 1 つしかない場合は、名前または IP アドレスが表示されます。

サーバー ポート グループを示すスクリーンショット。

コンテキスト メニュー

サーバーの右上にある省略記号 (...) を選択すると、そのサーバーのコンテキスト メニューが表示されます。

Service Map のサーバーの [サーバー マップを読み込む] オプションと [自己リンクを表示する] オプションを示すスクリーンショット。

サーバー マップを読み込む

[サーバー マップを読み込む] を選択して、選択したサーバーが新しい対象コンピューターとする新しいマップに移動します。

[自己リンクを表示する] を選択すると、自己リンクを含むサーバー ノードが再描画されます。これは、サーバー内のプロセスを開始および終了する TCP 接続です。 自己リンクが表示されると、このメニュー コマンドは [自己リンクを非表示にする] に変わります。これを使用して表示をオフにできます。

コンピューターの概要

[Machine Summary](マシンの概要) ウィンドウには、サーバーのオペレーティング システム、依存関係の数、その他のソリューションから取得したデータの概要が表示されます。 このようなデータには、パフォーマンス メトリック、サービス デスク チケット、変更の追跡、セキュリティ、更新プログラムがあります。

[マシンの概要] ウィンドウを示すスクリーンショット。

コンピューターとプロセスのプロパティ

Service Map のマップを見ている間、マシンとプロセスを選択して、それらのプロパティに関する追加情報を取得できます。 コンピューターは、DNS 名、IPv4 アドレス、CPU とメモリ容量、VM の種類、オペレーティング システムとバージョン、最後の再起動時刻、OMS と Service Map エージェントの ID に関する情報を提供します。

[マシンのプロパティ] ウィンドウを示すスクリーンショット。

実行中のプロセスに関するオペレーティング システム メタデータからプロセスの詳細を収集できます。 詳細には、プロセス名、プロセスの説明、ユーザー名とドメイン (Windows 上)、会社名、製品名、製品バージョン、作業ディレクトリ、コマンドライン、およびプロセス開始時刻が含まれます。

[プロセスのプロパティ] ウィンドウを示すスクリーンショット。

[プロセスの概要] ウィンドウでは、バインドされているポート、受信と送信の接続、失敗した接続を含む、そのプロセスの接続に関する追加情報が示されます。

[プロセスの概要] ウィンドウを示すスクリーンショット。

アラートの統合

Service Map は Azure アラートと統合されて、選択された時間範囲中に、選択されたサーバーで発生したアラートを表示します。 進行中のアラートがある場合はサーバーにアイコンが表示され、 [Machine Alerts](マシンのアラート) ウィンドウにアラートが一覧表示されます。

[マシンのアラート] ウィンドウを示すスクリーンショット。

Service Map で関連するアラートを表示できるようにするには、特定のコンピューターに対して動作するアラート ルールを作成します。 適切なアラートを作成するには:

  • コンピューター別にグループ化する句を含めます。 たとえば、by Computer interval 1 minute です。
  • メトリックの測定に基づいてアラートを生成することを選択します。

ログ イベントの統合

サービス マップは、ログ検索と統合して、選択したサーバーで選択した時間の範囲中に発生したすべてのログ イベントの数を表示します。 イベント数の一覧の任意の行を選択してログ検索に移動し、個別のログ イベントを表示することができます。

[マシンのログ イベント] ウィンドウを示すスクリーンショット。

サービス デスクとの統合

Service Map と IT Service Management Connector との統合は、両方のソリューションが有効であり、Log Analytics ワークスペースに構成されているときは自動的に行われます。 Service Map での統合には、"サービス デスク" というラベルが付いています。詳細については、「IT Service Management Connector を使用した ITSM 作業項目の一元管理」を参照してください。

[Machine Service Desk](マシン サービス デスク) ウィンドウでは、選択した時間範囲内で選択したサーバーの IT Service Management イベントすべてが一覧表示されます。 進行中の項目がある場合はサーバーにアイコンが表示され、[Machine Service Desk](マシン サービス デスク) ウィンドウにはそれらの項目が一覧表示されます。

[マシン サービス デスク] ウィンドウを示すスクリーンショット。

接続されている ITSM ソリューション内の項目を開くには、[作業項目の表示] を選択します。

ログ検索で項目の詳細を表示するには、[ログ検索で表示] を選択します。 接続メトリックは、Log Analytics 内の 2 つの新しいテーブルに書き込まれます。

Change Tracking との統合

Service Map と Change Tracking との統合は、両方のソリューションが有効であり、Log Analytics ワークスペースに構成されているときは自動的に行われます。

[マシン変更の追跡] ウィンドウには、すべての変更が新しい順に一覧表示されており、ログ検索へのリンクで追加の詳細情報を探すことができます。

[マシン変更の追跡] ウィンドウを示すスクリーンショット。

次の図は、[Log Analytics で表示] を選択すると表示される ConfigurationChange イベントの詳細なビューです。

ConfigurationChange イベントを示すスクリーンショット。

パフォーマンスの統合

[Machine Performance](マシンのパフォーマンス) ウィンドウには、選択したサーバーの標準的なパフォーマンス メトリックが表示されます。 このメトリックには、CPU 使用率、メモリ使用率、送受信したネットワークのバイト数、ネットワークで送受信されたバイト数による上位プロセスの一覧が含まれます。

[マシンのパフォーマンス] ウィンドウを示すスクリーンショット。

パフォーマンス データを表示するには、適切な Log Analytics パフォーマンス カウンターを有効にする必要がある場合があります。 有効にするカウンターは次のとおりです。

Windows:

  • Processor(*)\% Processor Time
  • Memory\% Committed Bytes In Use
  • Network Adapter(*)\Bytes Sent/sec
  • Network Adapter(*)\Bytes Received/sec

Linux:

  • Processor(*)\% Processor Time
  • Memory(*)\% Used Memory
  • Network Adapter(*)\Bytes Sent/sec
  • Network Adapter(*)\Bytes Received/sec

セキュリティの統合

Service Map と Security and Audit との統合は、両方のソリューションが有効であり、Log Analytics ワークスペースに構成されているときは自動的に行われます。

[Machine Security](マシンのセキュリティ) ウィンドウには、選択したサーバーの Security and Audit ソリューションからのデータが表示されます。 このウィンドウには、選択した時間範囲における、サーバーの未解決のセキュリティ問題の概要が一覧表示されます。 いずれかのセキュリティ問題を選択すると、それらの詳細がログ検索でドリルダウンされます。

[マシンのセキュリティ] ウィンドウを示すスクリーンショット。

更新の統合

Service Map と Update Management との統合は、両方のソリューションが有効であり、Log Analytics ワークスペースに構成されているときは自動的に行われます。

[Machine Updates](マシンの更新) ウィンドウには、選択したサーバーの Update Management ソリューションからのデータが表示されます。 このウィンドウには、選択した時間範囲における、サーバーに不足している更新プログラムの概要が一覧表示されます。

[マシンの更新] ウィンドウを示すスクリーンショット。

Log Analytics のレコード

Service Map のコンピューターとプロセスのインベントリ データは、Log Analytics で検索できます。 このデータは、移行計画、容量の分析、探索、必要に応じたパフォーマンスのトラブルシューティングといったシナリオに適用できます。

プロセスまたはコンピューターが起動されたとき、あるいは Service Map にオンボードされたときに生成されるレコードに加え、一意のコンピューターとプロセスごとに 1 時間あたり 1 つのレコードが生成されます。 これらのレコードは、次の表に示したプロパティを持ちます。

ServiceMapComputer_CL イベントのフィールドと値は、ServiceMap Azure Resource Manager API のマシン リソースのフィールドにマップされます。 ServiceMapProcess_CL イベントのフィールドと値は、ServiceMap Azure Resource Manager API のプロセス リソースのフィールドにマップされます。 ResourceName_s フィールドは、対応する Resource Manager リソースの名前フィールドと一致します。

Note

Service Map 機能の拡張に伴い、これらのフィールドは変更される可能性があります。

次の内部生成されたプロパティを使って個々のプロセスとコンピューターを識別できます。

  • コンピューター: ResourceId または ResourceName_s を使用して、Log Analytics ワークスペース内のコンピューターを一意に識別します。
  • プロセス: ResourceId を使用して、Log Analytics ワークスペース内のプロセスを一意に識別します。 ResourceName_s は、プロセスで MachineResourceName_s を実行中のマシンのコンテキスト内で一意です。

指定の時間範囲にある指定のプロセスとコンピューターについては、複数のレコードが存在できるため、クエリは、同じコンピューターまたはプロセスに対して複数のレコードを返すことがあります。 最新のレコードのみが返されるようにするには、"| dedup ResourceId" をクエリに追加します。

接続

接続メトリックは、VMConnection という名前の Log Analytics 内の新しいテーブルに書き込まれます。 このテーブルは、マシンの受信および送信接続に関する情報を提供します。 接続メトリックは、時間枠の間に特定のメトリックを取得する手段を提供する API と共に公開されています。

リッスンしているソケットでの受け入れによって生じる TCP 接続は受信です。 所与の IP とポートに接続することで作成される接続は、送信です。 接続の方向は Direction プロパティで表され、inbound または outbound のいずれかに設定できます。

これらのテーブル内のレコードは、Dependency エージェントによって報告されるデータから生成されます。 いずれの記録も、1 分の時間間隔での観測を表します。 TimeGenerated プロパティは、時間間隔の開始を示します。 各レコードには、エンティティに関連付けられたメトリックに加えて、接続またはポートなど、それぞれのエンティティを識別する情報が含まれています。 現在のところ、TCP over IPv4 を使用することで発生するネットワーク アクティビティのみが報告されます。

コストと複雑さを管理するため、接続レコードは個々の物理ネットワーク接続を表すものではありません。 複数の物理ネットワーク接続は、論理接続にグループ化され、その後それぞれのテーブルに反映されます。 つまり、VMConnection テーブル内のレコードは、論理グルーピングを表しており、観察されている個々の物理接続を表していません。

所定の 1 分間隔で次の属性に同じ値を共有する物理ネットワーク接続は、VMConnection 内で 1 つの論理レコードに集約されます。

プロパティ 説明
Direction 接続の方向。 値は inbound または outbound です。
Machine コンピューターの FQDN。
Process 接続の開始または受諾するプロセスまたはプロセスのグループの ID です。
SourceIp 送信元の IP アドレス。
DestinationIp 送信先の IP アドレス。
DestinationPort 送信先のポート番号。
Protocol 接続に使用されるプロトコル。 値は tcp です。

グループ化の影響を考慮するため、グループ化された物理接続の数に関する情報は、レコードの次のプロパティに提示されます。

プロパティ 説明
LinksEstablished 報告時間枠の間に確立された物理ネットワーク接続の数。
LinksTerminated 報告時間枠の間に切断された物理ネットワーク接続の数。
LinksFailed 報告時間枠の間に失敗した物理ネットワーク接続の数。 現在のところ、この情報は送信接続に対してのみ使用できます。
LinksLive 報告時間枠の終了時点で開いていた物理ネットワーク接続の数。

メトリック

接続数メトリックに加えて、特定の論理接続またはネット ワークポートで送受信されるデータ量に関する情報も、レコードの次のプロパティに加えられています。

プロパティ 説明
BytesSent 報告時間枠の間に送信された合計バイト数。
BytesReceived 報告時間枠の間に受信された合計バイト数。
Responses 報告時間枠の間に観測された応答の数。
ResponseTimeMax 報告時間枠の間に観測されたミリ秒単位の最長応答時間。 値がない場合、プロパティは空欄です。
ResponseTimeMin 報告時間枠の間に観測されたミリ秒単位の最小応答時間。 値がない場合、プロパティは空欄です。
ResponseTimeSum 報告時間枠の間に観測されたミリ秒単位の全応答時間の合計。 値がない場合、プロパティは空欄です

報告される第 3 のタイプのデータは応答時間です。 これは、発信者が接続を介して送信した要求が処理されて、リモート エンドポイントによって応答されるのを待機する時間です。

報告される応答時間は、内在するアプリケーション プロトコルの実際の応答時間の推定値です。 これは、物理ネットワーク接続の送信元と送信先の間のデータ フローの観察に基づき、経験則を使用して計算されます。

概念上、応答時間は要求の最後のバイトが送信者を離れる時間と、応答の最後のバイトが送信者に返される時間の差です。 これらの 2 つのタイムスタンプは、特定の物理接続で要求イベントと応答イベントを明確化するために使用されます。 これらの差は、1 つの要求の応答時間を表します。

この機能の最初のリリースでは、当社のアルゴリズムは推定であり、特定のネットワーク接続に使用される実際のアプリケーション プロトコルに応じて、さまざまな成功の度合いで動作する可能性があります。 たとえば、現在のアプローチは、HTTP/HTTPS などの要求応答ベースのプロトコルに適しています。 ただし、この方法は、一方向またはメッセージ キューベースのプロトコルでは機能しません。

考慮すべき重要な点は次のとおりです。

  • プロセスが同じ IP アドレスでも複数のネットワーク インターフェイスで接続を受け入れる場合、インターフェイスごとに別のレコードが報告されます。
  • ワイルドカード IP 付きレコードにはアクティビティはありません。 これらは、マシン上のポートが受信トラフィックにオープンであるという事実を表すために加えられています。
  • 冗長性とデータ量を減らすために、ワイルドカード IP 付きレコードは、特定の IP アドレスと一致するレコード (同じプロセス、ポート、プロトコル) がある場合は省略されます。 ワイルドカード IP レコードが省略される場合、特定の IP アドレス付き IsWildcardBind レコード プロパティは True. に設定されます。これは、ポートが報告マシンのあらゆるインターフェイスで公開されていることを示します。
  • 特定のインターフェイスにのみバインドされているポートでは、IsWildcardBindFalse に設定されます。

命名と分類

便宜上、接続のリモート側の IP アドレスは RemoteIp プロパティに加えられています。 受信接続の場合、RemoteIpSourceIp と同じですが、送信接続の場合は DestinationIp と同じです。 RemoteDnsCanonicalNames プロパティは、RemoteIp 向けにマシンにより報告される DNS 正規名を表します。 RemoteDnsQuestionsRemoteClassification プロパティは、将来使用するために予約されています。

地理的位置情報

VMConnection では、レコードの次のプロパティに、各接続レコードのリモート エンドの地理的位置情報も加えられています。

プロパティ 説明
RemoteCountry RemoteIp をホストしている国や地域の名前。 たとえば、"米国" です。
RemoteLatitude 地理的位置情報の緯度。 たとえば、47.68 のようになります。
RemoteLongitude 地理的位置情報の経度。 たとえば、-122.12 のようになります。

悪意のある IP

VMConnection テーブル内のすべての RemoteIp プロパティは、一連の IP に対して、知られている悪意のあるアクティビティがチェックされます。 RemoteIp が悪意のあると識別される場合、レコードの以下のプロパティに設定されます (IP が悪意のあるとみなされない場合、これらは空です)。

プロパティ 説明
MaliciousIp RemoteIp アドレスです。
IndicatorThreadType 検出される脅威のインジケーターは、BotnetC2CryptoMiningDarknetDDosMaliciousUrlMalwarePhishingProxyPUAWatchlist のいずれかの値です。
Description 観察対象の脅威の説明。
TLPLevel Traffic Light Protocol (TLP) レベルは、定義済みの値、WhiteGreenAmberRed のいずれかです。
Confidence 値は "0 から 100" です。
Severity 値は "0 から 5" です。ここで、5 は最も重大で、0 は重大ではありません。 既定値は 3 です。
FirstReportedDateTime プロバイダーが初めてインジケーターをレポートした時間。
LastReportedDateTime Interflow によってインジケーターが最後に表示された時間。
IsActive インジケーターが True または False の値で非アクティブ化されていることを示します。
ReportReferenceLink 特定の観測可能な脅威に関連するレポートにリンクします。
AdditionalInformation 該当する場合は、観察対象の脅威についての追加情報を提供します。

ServiceMapComputer_CL レコード

ServiceMapComputer_CL 型のレコードには、サービス マップ エージェントがインストールされているサーバーのインベントリ データが含まれます。 これらのレコードは、次の表に示したプロパティを持ちます。

プロパティ 説明
Type ServiceMapComputer_CL
SourceSystem OpsManager
ResourceId ワークスペース内のマシンに対する一意識別子
ResourceName_s ワークスペース内のマシンに対する一意識別子
ComputerName_s コンピューターの FQDN
Ipv4Addresses_s サーバーの IPv4 アドレスの一覧
Ipv6Addresses_s サーバーの IPv6 アドレスの一覧
DnsNames_s DNS 名の配列
OperatingSystemFamily_s Windows または Linux
OperatingSystemFullName_s オペレーティング システムのフル ネーム
Bitness_s マシンのビット数 (32 ビットまたは 64 ビット)
PhysicalMemory_d 物理メモリ (MB)
Cpus_d CPU の数
CpuSpeed_d CPU 速度 (MHz)
VirtualizationState_s "不明"、"物理"、"仮想"、"ハイパーバイザー"
VirtualMachineType_s hypervvmware など
VirtualMachineNativeMachineId_g ハイパーバイザーによって割り当てられた VM ID
VirtualMachineName_s VM の名前
BootTime_t ブート時間

ServiceMapProcess_CL 型のレコード

ServiceMapProcess_CL 型のレコードには、サービス マップ エージェントがインストールされているサーバーの TCP 接続プロセスのインベントリ データが含まれています。 これらのレコードは、次の表に示したプロパティを持ちます。

プロパティ 説明
Type ServiceMapProcess_CL
SourceSystem OpsManager
ResourceId ワークスペース内のプロセスに対する一意識別子
ResourceName_s 実行中のマシン内のプロセスに対する一意識別子
MachineResourceName_s マシンのリソース名
ExecutableName_s プロセスの実行可能ファイルの名前
StartTime_t プロセス プールの開始時刻
FirstPid_d プロセス プール内の最初の PID
Description_s プロセスの説明
CompanyName_s 会社の名前
InternalName_s 内部名
ProductName_s 製品の名前
ProductVersion_s 製品バージョン
FileVersion_s ファイル バージョン
CommandLine_s コマンド ライン
ExecutablePath _s 実行可能ファイルのパス
WorkingDirectory_s 作業ディレクトリ
UserName プロセスが実行されているアカウント
UserDomain プロセスが実行されているドメイン

サンプル ログ検索

このセクションでは、ログ検索のサンプルを一覧表示します。

既知のコンピューターを一覧表示

ServiceMapComputer_CL | summarize arg_max(TimeGenerated, *) by ResourceId

すべてのマネージド コンピューターの物理メモリ容量を一覧表示

ServiceMapComputer_CL | summarize arg_max(TimeGenerated, *) by ResourceId | project PhysicalMemory_d, ComputerName_s

コンピューター名、DNS、IP、OS を一覧表示

ServiceMapComputer_CL | summarize arg_max(TimeGenerated, *) by ResourceId | project ComputerName_s, OperatingSystemFullName_s, DnsNames_s, Ipv4Addresses_s

"sql" でコマンドラインのすべてのプロセスを検索

ServiceMapProcess_CL | where CommandLine_s contains_cs "sql" | summarize arg_max(TimeGenerated, *) by ResourceId

リソース名でコンピューター (最新のレコード) を検索

search in (ServiceMapComputer_CL) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by ResourceId

IP アドレスでマシン (最新のレコード) を検索

search in (ServiceMapComputer_CL) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by ResourceId

指定のマシンにある既知のプロセスすべてを一覧表示

ServiceMapProcess_CL | where MachineResourceName_s == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by ResourceId

SQL を実行しているすべてのコンピューターを一覧表示

ServiceMapComputer_CL | where ResourceName_s in ((search in (ServiceMapProcess_CL) "\*sql\*" | distinct MachineResourceName_s)) | distinct ComputerName_s

データセンター内にあるすべての製品バージョンの curl を一覧表示

ServiceMapProcess_CL | where ExecutableName_s == "curl" | distinct ProductVersion_s

CentOS を実行しているすべてのコンピューターのコンピューター グループを作成

ServiceMapComputer_CL | where OperatingSystemFullName_s contains_cs "CentOS" | distinct ComputerName_s

マシンのグループからの送信接続を要約します

// the machines of interest
let machines = datatable(m: string) ["m-82412a7a-6a32-45a9-a8d6-538354224a25"];
// map of ip to monitored machine in the environment
let ips=materialize(ServiceMapComputer_CL
| summarize ips=makeset(todynamic(Ipv4Addresses_s)) by MonitoredMachine=ResourceName_s
| mvexpand ips to typeof(string));
// all connections to/from the machines of interest
let out=materialize(VMConnection
| where Machine in (machines)
| summarize arg_max(TimeGenerated, *) by ConnectionId);
// connections to localhost augmented with RemoteMachine
let local=out
| where RemoteIp startswith "127."
| project ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=Machine;
// connections not to localhost augmented with RemoteMachine
let remote=materialize(out
| where RemoteIp !startswith "127."
| join kind=leftouter (ips) on $left.RemoteIp == $right.ips
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=MonitoredMachine);
// the remote machines to/from which we have connections
let remoteMachines = remote | summarize by RemoteMachine;
// all augmented connections
(local)
| union (remote)
//Take all outbound records but only inbound records that come from either //unmonitored machines or monitored machines not in the set for which we are computing dependencies.
| where Direction == 'outbound' or (Direction == 'inbound' and RemoteMachine !in (machines))
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine
// identify the remote port
| extend RemotePort=iff(Direction == 'outbound', DestinationPort, 0)
// construct the join key we'll use to find a matching port
| extend JoinKey=strcat_delim(':', RemoteMachine, RemoteIp, RemotePort, Protocol)
// find a matching port
| join kind=leftouter (VMBoundPort 
| where Machine in (remoteMachines) 
| summarize arg_max(TimeGenerated, *) by PortId 
| extend JoinKey=strcat_delim(':', Machine, Ip, Port, Protocol)) on JoinKey
// aggregate the remote information
| summarize Remote=makeset(iff(isempty(RemoteMachine), todynamic('{}'), pack('Machine', RemoteMachine, 'Process', Process1, 'ProcessName', ProcessName1))) by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol

REST API

サービス マップのすべてのサーバー、プロセス、および依存関係データは、サービス マップ REST API を使用して取得できます。

診断と使用状況データ

Microsoft は、お客様による Service Map の使用を通して、使用状況とパフォーマンス データを自動的に収集します。 Microsoft はこのデータを使用して、Service Map の品質、セキュリティ、整合性の向上に努めています。

正確で効果的なトラブルシューティング機能を提供するために、データにはソフトウェアの構成に関する情報が含まれています。 オペレーティング システムとバージョン、IP アドレス、DNS 名、ワークステーション名などの情報である可能性があります。 名前や住所などの連絡先情報は収集されません。

データの収集と使用の詳細については、「Microsoft オンライン サービスのプライバシーに関する声明」を参照してください。

次のステップ

Log Analytics のログ検索の詳細を確認して、Service Map によって収集されたデータを取得します。

トラブルシューティング

Service Map のインストールまたは実行で問題が発生した場合は、こちらのセクションを参照してください。 それでも問題が解決しない場合は、Microsoft サポートにお問い合わせください。

Dependency Agent のインストールに関する問題

このセクションでは、Dependency Agent のインストールに関する問題について説明します。

インストーラーが再起動を要求する

通常、Dependency Agent のインストールまたは削除時に再起動が要求されることはありません。 まれに、インストールを続行するために Windows Server が再起動を要求することがあります。 この問題は、依存関係 (通常は Microsoft Visual C++ 再頒布可能ライブラリ) のあるファイルがロックされているため、再起動が要求される場合に生じます。

"Dependency Agent をインストールできません: Visual Studio ランタイム ライブラリが (code = [code_number]) をインストールできませんでした" というメッセージが表示される

Microsoft Dependency Agent は、Microsoft Visual Studio ランタイム ライブラリ上にビルドされます。 ライブラリのインストール中に問題が発生した場合は、メッセージが表示されます。

ランタイム ライブラリのインストーラーは、%LOCALAPPDATA%\temp フォルダー内にログを作成します。 このファイルは dd_vcredist_arch_yyyymmddhhmmss.log で、archx86 または amd64 に、yyyymmddhhmmss はログが作成された日時 (24 時間形式) になります。 このログでは、インストールをブロックしている問題の詳細が示されます。

最初に最新のランタイム ライブラリをインストールしておくことをお勧めします。

次の表に、コード番号と推奨される解決策を示します。

コード 説明 解像度
0x17 ライブラリのインストーラーは、まだインストールされていない Windows Update を要求しています。 最新のライブラリ インストーラー ログを確認してください。

Windows8.1-KB2999226-x64.msu への参照の後に Error 0x80240017: Failed to execute MSU package, という行が続いている場合、KB2999226 をインストールするための前提条件が揃っていません。 Windows での汎用の C ランタイムに関する記事の前提条件セクションに記載の手順に従ってください。 前提条件をインストールするには、Windows Update の実行と再起動が複数回必要になることがあります。

Microsoft Dependency Agent インストーラーをもう一度実行します。

インストール後の問題

このセクションでは、インストール後の問題について説明します。

サーバーが Service Map に表示されない

Dependency Agent のインストールに成功しても、Service Map ソリューションにはご利用のマシンが表示されません。

  • Dependency Agent は正しくインストールされているのでしょうか? サービスがインストールされているか、実行中かを確認します。

    • Windows:Microsoft Dependency Agent というサービスを探します。
    • Linux:microsoft-dependency-agent という実行中のプロセスを探します。
  • Log Analytics Free レベルですか? Free プランでは、一意の Service Map マシンを最大 5 台まで使用できます。 それ以降のマシンは、前の 5 台でデータを送信していない場合でも、サービス マップに表示されません。

  • ご利用のサーバーからログとパフォーマンス データが Azure Monitor ログに送信されていますか? Azure Monitor\Logs に移動し、お使いのコンピューターに対して次のクエリを実行します。

    Usage | where Computer == "admdemo-appsvr" | summarize sum(Quantity), any(QuantityUnit) by DataType
    

結果としてさまざまなイベントを取得しましたか? そのデータは最近のものですか? そうである場合は、Log Analytics エージェントは正しく動作しており、ワークスペースと通信しています。 そうでない場合は、ご利用のマシン上でエージェントを確認してください。 Windows 用 Log Analytics エージェントのトラブルシューティング または Linux 用 Log Analytics エージェントのトラブルシューティングに関するページを参照してください。

Service Map にサーバーは表示されるがプロセスが表示されない

Service Map にマシンが表示されますが、プロセスまたは接続データがありません。 この動作は、Dependency Agent がインストールされ、実行されているが、カーネル ドライバーが読み込まれていないことを示します。

C:\Program Files\Microsoft Dependency Agent\logs\wrapper.log file (Windows の場合) または /var/opt/microsoft/dependency-agent/log/service.log file (Linux の場合) を確認します。 ファイルの最後の行に、カーネルがロードされなかった原因が示されています。 たとえば、カーネルを更新した場合にそのカーネルが Linux でサポートされないことがあります。

検索候補

サービス マップやこのドキュメントについてフィードバックはありますか。 UserVoice ページでは、機能を提案したり、既存の提案に投票することができます。