Netzwerkabhängigkeiten analysieren

Auf dieser Seite wird beschrieben, wie Sie den Bericht zu Netzwerkabhängigkeiten im Migration Center generieren und analysieren.

Überblick

Der Bericht zu Netzwerkabhängigkeiten liefert täglich aggregierte Daten zu den Verbindungen mit Ihren Servern und Datenbanken. Im Bericht zu Netzwerkabhängigkeiten sehen Sie alle Verbindungen zu den Assets in Ihrer Infrastruktur sowie die Anzahl der Verbindungen pro Tag.

Lassen Sie den Discovery-Client mehrere Tage lang laufen und aktivieren Sie die Synchronisierung der Daten mit dem Migration Center, um die Daten zu Netzwerkabhängigkeiten zu erfassen. Der Discovery-Client identifiziert dann alle Netzwerkverbindungen der gescannten Assets. Die Ziel-Assets in der Verbindung können ein beliebiges Asset in Ihrem Migration Center-Inventar sein, das Sie mit dem Discovery-Client ermittelt haben oder das Sie manuell importiert haben, oder auch ein unbekanntes Asset.

Der Bericht zu Netzwerkabhängigkeiten ist in folgenden Szenarien nützlich:

  • Das Erfassen von Daten über Verbindungen zu Servern und Datenbanken, um Assets zu identifizieren, die zur selben Anwendung gehören
  • Relevante Netzwerkverbindungen innerhalb einer Gruppe von Assets identifizieren, z. B. alle Server, die den MySQL-Standardport verwenden
  • Fehlende Assets im Inventar identifizieren

Sie können den Bericht zu Netzwerkabhängigkeiten als CSV-Datei im Migration Center herunterladen. Anschließend können Sie Ihre Analyse mit BigQuery und den vom Migration Center bereitgestellten Beispielabfragen oder einem beliebigen Drittanbietertool ausführen.

Beschränkungen

  • Verwenden Sie den Discovery-Client, um Verbindungsdaten in Ihrer Infrastruktur zu erfassen.
  • Netzwerkverbindungsdaten werden nur mit der Scanmethode des Betriebssystems erfasst. Die Erfassung von Netzwerkdaten wird vom vSphere-Scan nicht unterstützt.

Hinweise

  • Bevor Sie einen Bericht zu Netzwerkabhängigkeiten erstellen, muss die Leistungserfassung mit dem Discovery-Client funktionieren.

  • Führen Sie die folgenden Schritte aus, bevor Sie den Bericht zu Netzwerkabhängigkeiten mit BigQuery analysieren:

Bericht zu Netzwerkabhängigkeiten generieren

So erstellen Sie einen Bericht zu Netzwerkabhängigkeiten:

  1. Rufen Sie die Seite Berichtskatalog auf.

    Zum Berichtskatalog

  2. Klicken Sie auf Bericht zu Netzwerkabhängigkeiten.

  3. Wählen Sie in der Gruppenliste die Gruppen aus, für die Sie den Bericht erstellen möchten, und klicken Sie dann auf Exportieren.

  4. Wählen Sie im angezeigten Dialogfeld die Anzahl der Tage aus, für die Sie die Daten exportieren möchten (zwischen 10 und 90). Klicken Sie dann auf Exportieren.

  5. Nachdem die Datei generiert wurde, klicken Sie auf Herunterladen.

Bericht zu Netzwerkabhängigkeiten in BigQuery analysieren

In den folgenden Abschnitten finden Sie einige Beispielabfragen, mit denen Sie häufige Szenarien in BigQuery analysieren können. Bevor Sie eine Abfrage ausführen können, müssen Sie Ihre CSV-Datei in BigQuery hochladen.

Die Nutzung von BigQuery erfolgt gemäß den BigQuery-Preisen.

Assets mit den meisten Verbindungen ermitteln

Die folgende Abfrage ist nützlich, um die Assets mit der größten Anzahl von Verbindungen in der Gruppe zu ermitteln.

SELECT
 LocalVMName, SUM(ConnectionCount) as TotalCount
FROM
 PROJECT.DATASET.TABLE
GROUP BY ALL
ORDER BY TotalCount DESC

Ersetzen Sie Folgendes:

  • PROJECT: Das Google Cloud-Projekt, in das Sie die CSV-Datei hochgeladen haben.
  • DATASET: Das BigQuery-Dataset.
  • TABLE: Die BigQuery-Tabelle.

Das folgende Beispiel zeigt die Ausgabe dieser Abfrage:

LocalVMName TotalCount
VM-x5ua3o2w 9970
VM-glg5np3w 9763
VM-q3z4zfp8 9557
VM-2nnsrt37 9372
VM-1oah56hn 9350

Verbindungen nach Diagrammtiefe identifizieren

Die folgende Abfrage ist nützlich, um alle Assets zu ermitteln, die eine Verbindung zu einem bestimmten mit einer bestimmten Anzahl von Zwischenverbindungen herstellen. Beispiel:

  • Wenn die Grafiktiefe gleich 1 ist, sehen Sie alle Assets, die direkt mit dem Haupt-Asset verbunden sind.
  • Bei einer Grafiktiefe von 2 werden alle Assets angezeigt, die direkt mit anderen Assets verbunden sind, die wiederum direkt mit dem Haupt-Asset verbunden sind.
DECLARE
 local_vm_name STRING DEFAULT MAIN_ASSET;
DECLARE
 depth INT64 DEFAULT DEPTH;
CREATE TEMP FUNCTION
 recursiveConnections(localVmName STRING,
   connectionsArray ARRAY<STRING>,
   depth INT64)
 RETURNS STRING
 LANGUAGE js AS r"""
 const connections = connectionsArray.map(connection => connection.split('|||'))
   .filter(connectionTuple => connectionTuple[1] !== 'Unscanned Device');
 const connectedAssets = new Set([localVmName]);
 for (let i = 0; i < depth; i++) {
   const currentSet = new Set(connectedAssets);
   for (const connection of connections) {
     /* Look for connections where the asset is the local asset */
     if (currentSet.has(connection[0])) {
       connectedAssets.add(connection[1]);
     }
     /* Look for connections where the asset is the remote asset */
     if (currentSet.has(connection[1])) {
       connectedAssets.add(connection[0]);
     }
   }
 }
 connectedAssets.delete(localVmName);
 return Array.from(connectedAssets).sort().join(', ');
""";
SELECT
 local_vm_name AS LocalVMName,
 recursiveConnections(local_vm_name,
   ARRAY_AGG(CONCAT(LocalVMName, '|||', RemoteVMName)),
   depth) AS Connections
FROM
 PROJECT.DATASET.TABLE

Ersetzen Sie Folgendes:

  • MAIN_ASSET: Der Name des Assets, für das Sie die Verbindungen identifizieren möchten.
  • DEPTH: Die Tiefe des Diagramms.

Das folgende Beispiel zeigt die Ausgabe dieser Abfrage:

LocalVMName Verbindungen
VM-lv8s148f VM-2z8wp3ey,
VM-66rq2x2y,
VM-94uwyy8h,
VM-ccgmqqmb,
VM-ctqddf0u,
VM-og4n77lb,
...

Verbindungen nach IP- und Portbereichen filtern

Mit der folgenden Abfrage können Sie Assets identifizieren, die IP-Adressen und Ports in von Ihnen definierten Bereichen verwenden.

CREATE TEMP FUNCTION
 ipBetween(value STRING,
   low STRING,
   high STRING) AS ( NET.IPV4_TO_INT64(NET.IP_FROM_STRING(value)) BETWEEN NET.IPV4_TO_INT64(NET.IP_FROM_STRING(low))
   AND NET.IPV4_TO_INT64(NET.IP_FROM_STRING(high)) );
SELECT
 *
FROM
 PROJECT.DATASET.TABLE
WHERE
 ((LocalPort BETWEEN PORT_START
     AND PORT_END)
   OR (RemotePort BETWEEN PORT_START
     AND PORT_END))
 AND (ipBetween(LocalIP,
     IP_START,
     IP_END)
   OR ipBetween(RemoteIP,
     IP_START,
     IP_END))

Ersetzen Sie Folgendes:

  • PORT_START: Anfangsport des Portbereichs, z. B. 0.
  • PORT_END: Der letzte Port des Portbereichs, z. B. 1024.
  • IP_START: Die anfängliche IP-Adresse des Bereichs, z. B. "10.26.0.0".
  • IP_END: Die endgültige IP-Adresse des Bereichs, z. B. "10.26.255.255".

Das folgende Beispiel zeigt die Ausgabe dieser Abfrage:

Tag LocalVMName LocalAssetID LocalGroups LocalIP LocalPort Protokoll LocalProcessName RemoteVMName RemoteAssetID RemoteGroups RemoteIP RemotePort ConnectionCount
2024-04-18 VM-0lf60off projects/982941055174/locations/us-central1/assets/0lf60off Gruppe 1 10.0.45.138 272 tcp bash VM-0spdofr9 projects/982941055174/locations/us-central1/assets/0spdofr9 144.35.88.1 272 499
2024-04-18 VM-goa5uxhi projects/982941055174/locations/us-central1/assets/goa5uxhi Gruppe 3 +10.187.175.82 781 tcp bash VM-27i5d2uj projects/982941055174/locations/us-central1/assets/27i5d2uj 22.99.72.109 781 980
2024-04-19 VM-7vwy31hg projects/982941055174/locations/us-central1/assets/7vwy31hg Gruppe 1 10.58.166.132 21 tcp bash VM-2gq0fl37 projects/982941055174/locations/us-central1/assets/2gq0fl37 +147.19.84.135 21 514

Nicht gescannte Assets im Netzwerk identifizieren

Mit der folgenden Abfrage können Sie nicht gescannte Assets in Ihrem Netzwerk ermitteln. Ein nicht gescanntes Asset ist eine Verbindung zu einer Remote-IP-Adresse, die mit keinem Asset in Ihrem Migration Center-Inventar verknüpft ist. So können Sie potenziell fehlende Assets identifizieren, die Sie für die Bewertung scannen müssen.

CREATE TEMP FUNCTION
 ipBetween(value STRING,
   low STRING,
   high STRING) AS ( NET.IPV4_TO_INT64(NET.IP_FROM_STRING(value)) BETWEEN NET.IPV4_TO_INT64(NET.IP_FROM_STRING(low))
   AND NET.IPV4_TO_INT64(NET.IP_FROM_STRING(high)) );
SELECT
 STRING_AGG(LocalIP, ', ') AS LocalIPs,
 RemoteIP
FROM
 PROJECT.DATASET.TABLE
WHERE
 RemoteVMName = 'Unscanned Device'
 AND ipBetween(LocalIP,
   IP_START,
   IP_END)
 AND ipBetween(RemoteIP,
   IP_START,
   IP_END)
GROUP BY
 RemoteIP

Ersetzen Sie Folgendes:

  • IP_START: Die anfängliche IP-Adresse des Bereichs, z. B. "10.26.0.0".
  • IP_END: Die endgültige IP-Adresse des Bereichs, z. B. "10.26.255.255".