Azure での Service Map ソリューションの使用
Service Map は自動的に Windows および Linux のシステム上のアプリケーション コンポーネントを検出し、サービス間の通信をマップします。 Service Map を使用すると、サーバーを重要なサービスを提供する相互接続されたシステムとして表示することができます。 Service Map では、サーバー間の接続、プロセス、インバウンド接続とアウトバウンド接続の待ち時間、TCP 接続アーキテクチャ全体のポートを確認することができます。 エージェントのインストール以外に構成は必要ありません。
重要
Service Map は 2025 年 9 月 30 日に廃止されます。 サーバー間の接続、プロセス、受信および送信接続の待機時間、TCP 接続アーキテクチャ全体のポートを監視する場合、この日付より前に必ず Azure Monitor VM insights に移行してください。
この記事では、Service Map をデプロイして使用する方法について説明します。 ソリューションの前提条件は次のとおりです。
- サポートされているリージョン内の Log Analytics ワークスペース。
- ソリューションを有効にした同じワークスペースに接続された Windows コンピューターまたは Linux サーバーにインストールされている Log Analytics エージェント。
- Windows コンピューターまたは Linux サーバーにインストールされている Dependency Agent。
Note
Service Map を既にデプロイ済みの場合は、VM insights でマップを表示することもできます。これには、VM の正常性とパフォーマンスを監視する追加機能が含まれます。 詳細については、VM insights の概要に関するページをご覧ください。 Service Map ソリューションと VM insights のマップ機能の違いについては、この FAQ をご覧ください。
Azure へのサインイン
Azure portal にサインインします。
Service Map を有効にする
Azure Marketplace から Service Map ソリューションを有効にします。 または、Solutions Gallery からの監視ソリューションの追加に関するページで説明されている手順を使用します。
データを取得する各コンピューターの Windows に Dependency Agent をインストールするか、Linux に Dependency Agent をインストールします。 Dependency Agent は近隣のコンピューターへの接続を監視することができるため、すべてのコンピューターにエージェントが必要とは限りません。
Log Analytics ワークスペースから Azure portal の Service Map にアクセスします。 左側のウィンドウで、[Legacy solutions] (レガシ ソリューション) オプションを選択します。
。
ソリューションの一覧から、ServiceMap(workspaceName) を選択します。 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 のマップは、直近 30 分間の依存関係情報を表示します。 左上の時間コントロールを使用して、最大 1 時間の過去の時間の範囲のマップを照会して、過去の依存関係を確認できます。 たとえば、インシデント中や変更が発生する前の状態を確認できます。 Service Map のデータは、有料のワークスペースで 30 日間、無料のワークスペースでは 7 日間のあいだ保存されます。
状態バッジと枠線の色分け
マップ内の各サーバーの下部には、サーバーの状態情報を示す状態バッジの一覧が表示される場合があります。 このバッジは、ソリューション統合のいずれかに、サーバー関連情報があることを示します。
バッジを選択すると、状態に関する詳細情報が右側のウィンドウに直接表示されます。 現在使用できる状態バッジには、アラート、サービス デスク、変更、セキュリティ、更新があります。
状態バッジの重大度に応じて、マシン ノードの枠線を赤 (重大)、黄 (警告)、青 (情報) に色分けすることができます。 この色は、状態バッジの中で最も重大な状態を表します。 灰色の枠線は、ノードに状態インジケーターがないことを示します。
プロセス グループ
プロセス グループを使用すると、共通の製品またはサービスに関連付けられているプロセスをプロセス グループに結合できます。 マシン ノードを展開すると、プロセス グループと共にスタンドアロン プロセスが表示されます。 プロセス グループ内のプロセスへの受信または送信接続が失敗した場合、その接続はプロセス グループ全体に対して失敗として表示されます。
マシン グループ
マシン グループを使用すると、1 つだけでなく、一連のサーバーを中心としたマップを表示できます。 このように、多層アプリケーションまたはサーバー クラスターのすべてのメンバーを 1 つのマップで確認できます。
ユーザーは、同じグループに属するサーバーを選択し、そのグループに名前を付けます。 その後、すべてのプロセスと接続を含むグループを表示することを選択できます。 また、そのグループの他のメンバーに直接関連するプロセスと接続のみを表示することもできます。
マシン グループの作成
グループを作成するには:
グループを作成するには、[マシン] の一覧で 1 つまたは複数のマシンを選択し、[グループに追加] を選択します。
[新規作成] を選択して、グループに名前を付けます。
Note
マシン グループは、10 台のサーバーに制限されます。
グループを表示する
いくつかのグループを作成したら、それらを表示できます。
[グループ] タブを選択します。
グループ名を選択して、そのマシン グループのマップを表示します。
グループに属するマシンは、マップ内で白い枠線に囲まれています。
グループを展開して、そのマシン グループを構成するマシンを一覧表示します。
プロセスによるフィルター
マップ ビューは、グループ内のプロセスと接続をすべて表示するか、マシン グループに直接関連するプロセスと接続のみを表示するかを切り替えることができます。 既定のビューでは、すべてのプロセスが表示されます。
マップの上にあるフィルター アイコンを選択して、ビューを変更します。
[すべてのプロセス] を選択して、グループ内の各マシンのプロセスと接続をすべてマップに表示します。
簡略化されたビューを作成するには、グループに接続されたプロセスのみを表示するようにビューを変更します。 その後、グループ内の他のマシンに直接接続されているプロセスと接続のみが表示されるように、マップが絞り込まれます。
グループにマシンを追加する
既存のグループにマシンを追加するには、追加したいマシンの横にあるチェックボックスをオンにし、[グループに追加] を選択します。 次に、マシンの追加先となるグループを選択します。
グループからマシンを削除する
[グループ] の一覧でグループ名を展開し、マシン グループ内のマシンを一覧表示します。 削除したいマシンの横にある省略記号メニューを選択し、[削除] を選択します。
グループを削除または名前変更する
グループの一覧にあるグループ名の横にある省略記号メニューを選択します。
ロール アイコン
特定のプロセスは、マシンで特定のロール (Web サーバー、アプリケーション サーバー、データベースなど) を担います。 サービス マップでは、プロセスとマシン ボックスにロール アイコンで注釈を付け、プロセスまたはサーバーが担っているロールがひとめでわかるようにします。
ロール アイコン | 説明 |
---|---|
Web サーバー | |
アプリケーション サーバー | |
データベース サーバー | |
LDAP サーバー | |
SMB サーバー |
失敗した接続
Service Map では、失敗した接続がプロセスとコンピューターのマップに表示されます。 赤色の破線は、クライアント システムがプロセスまたはポートに到達できないことを示しています。
サービス マップ エージェントがデプロイされているシステムで、接続を試みたが失敗した場合、失敗した接続はそのシステムから報告されます。 Service Map は、接続の確立に失敗した TCP ソケットを監視することで、このプロセスを測定します。 この失敗の原因としては、ファイアウォール、クライアントまたはサーバーの構成の問題、またはリモート サービスが利用できない状態であることが考えられます。
失敗した接続を把握すると、トラブルシューティング、移行の検証、セキュリティ分析、および全体的なアーキテクチャの理解に役立ちます。 失敗した接続は無害の場合もありますが、直接問題につながることも少なくありません。 フェールオーバー環境が突然到達不能になったり、クラウド移行後に 2 つのアプリケーション層が通信できなくなる可能性があります。
クライアント グループ
クライアント グループは、Dependency Agent がないクライアント マシンを表す、マップ上のボックスです。 1 つのクライアント グループは、個々のプロセスまたはマシンのクライアントを表します。
クライアント グループ内のサーバーの IP アドレスを表示するには、グループを選択します。 グループの内容が、 [Client Group Properties](クライアント グループのプロパティ) ウィンドウに一覧表示されます。
サーバー ポート グループ
サーバー ポート グループは、Dependency Agent がないサーバー上のサーバー ポートを表すボックスです。 このボックスには、サーバー ポートと、そのポートに接続しているサーバーの数が表示されます。 ボックスを展開すると、個々 のサーバーと接続が表示されます。 ボックス内にサーバーが 1 つしかない場合は、名前または IP アドレスが表示されます。
コンテキスト メニュー
サーバーの右上にある省略記号 (...) を選択すると、そのサーバーのコンテキスト メニューが表示されます。
サーバー マップを読み込む
[サーバー マップを読み込む] を選択して、選択したサーバーが新しい対象コンピューターとする新しいマップに移動します。
自己リンクを表示する
[自己リンクを表示する] を選択すると、自己リンクを含むサーバー ノードが再描画されます。これは、サーバー内のプロセスを開始および終了する 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 イベントの詳細なビューです。
パフォーマンスの統合
[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.
に設定されます。これは、ポートが報告マシンのあらゆるインターフェイスで公開されていることを示します。 - 特定のインターフェイスにのみバインドされているポートでは、
IsWildcardBind
はFalse
に設定されます。
命名と分類
便宜上、接続のリモート側の IP アドレスは RemoteIp
プロパティに加えられています。 受信接続の場合、RemoteIp
は SourceIp
と同じですが、送信接続の場合は DestinationIp
と同じです。
RemoteDnsCanonicalNames
プロパティは、RemoteIp
向けにマシンにより報告される DNS 正規名を表します。
RemoteDnsQuestions
と RemoteClassification
プロパティは、将来使用するために予約されています。
地理的位置情報
VMConnection では、レコードの次のプロパティに、各接続レコードのリモート エンドの地理的位置情報も加えられています。
プロパティ | 説明 |
---|---|
RemoteCountry |
RemoteIp をホストしている国や地域の名前。 たとえば、"米国" です。 |
RemoteLatitude |
地理的位置情報の緯度。 たとえば、47.68 のようになります。 |
RemoteLongitude |
地理的位置情報の経度。 たとえば、-122.12 のようになります。 |
悪意のある IP
VMConnection テーブル内のすべての RemoteIp
プロパティは、一連の IP に対して、知られている悪意のあるアクティビティがチェックされます。
RemoteIp
が悪意のあると識別される場合、レコードの以下のプロパティに設定されます (IP が悪意のあるとみなされない場合、これらは空です)。
プロパティ | 説明 |
---|---|
MaliciousIp |
RemoteIp アドレスです。 |
IndicatorThreadType |
検出される脅威のインジケーターは、Botnet、C2、CryptoMining、Darknet、DDos、MaliciousUrl、Malware、Phishing、Proxy、PUA、Watchlist のいずれかの値です。 |
Description |
観察対象の脅威の説明。 |
TLPLevel |
Traffic Light Protocol (TLP) レベルは、定義済みの値、White、Green、Amber、Red のいずれかです。 |
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 |
hyperv、vmware など |
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
で、arch は x86
または 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 ページでは、機能を提案したり、既存の提案に投票することができます。