Auf dieser Seite wird beschrieben, wie Sie den Bericht zu Netzwerkabhängigkeiten im Migration Center generieren und analysieren.
Übersicht
Der Bericht zu Netzwerkabhängigkeiten liefert täglich aggregierte Daten über die Verbindungen zu Ihren Servern und Datenbanken. Im Bericht zu Netzwerkabhängigkeiten sehen Sie alle Verbindungen zu den Assets in Ihrer Infrastruktur und die Anzahl der Verbindungen pro Tag.
Um die Daten zu Netzwerkabhängigkeiten zu erfassen, lassen Sie den Discovery-Client mehrere Tage lang laufen und aktivieren Sie die Synchronisierung der Daten mit dem Migrationscenter. Der Discovery-Client identifiziert dann alle Netzwerkverbindungen der gescannten Assets. Die Ziel-Assets in der Verbindung können ein beliebiges Asset sein im Migration Center-Inventar, das Sie mithilfe der Discovery-Client oder manuell importiert haben, oder sogar unbekanntes Asset.
Der Bericht zu Netzwerkabhängigkeiten ist in den folgenden Szenarien nützlich:
- Daten über Verbindungen zu Servern und Datenbanken erfassen um Assets zu identifizieren, die zur selben App
- Relevante Netzwerkverbindungen innerhalb einer Asset-Gruppe identifizieren, z. B. allen Servern, die den MySQL-Standardport verwenden
- Fehlende Assets im Inventar identifizieren
Sie können den Bericht zu Netzwerkabhängigkeiten als CSV-Datei aus dem Migration Center herunterladen. Anschließend können Sie Ihre Analyse mit BigQuery und die von Migration Center bereitgestellten Beispielabfragen, oder ein anderes Drittanbietertool verwenden.
Beschränkungen
- Verwenden Sie den Discovery-Client, um Verbindungsdaten in Ihrer Infrastruktur zu erfassen.
- Daten zu Netzwerkverbindungen werden nur mit der Betriebssystem-Scanmethode erfasst. Die Erfassung von Netzwerkdaten wird vom vSphere-Scan nicht unterstützt.
Hinweis
Bevor Sie einen Bericht zu Netzwerkabhängigkeiten erstellen, müssen Sie eine gute Leistung erzielen der mit dem Discovery-Client zusammenarbeitet.
Bevor Sie den Bericht zu Netzwerkabhängigkeiten mit BigQuery analysieren, gehen Sie so vor:
- Informationen zum Importieren lokaler Daten in BigQuery
- Hier erfahren Sie, wie Sie Abfragen ausführen
Bericht zu Netzwerkabhängigkeiten erstellen
So erstellen Sie einen Bericht zu Netzwerkabhängigkeiten:
Rufen Sie die Seite Berichtskatalog auf.
Klicken Sie auf Bericht zu Netzwerkabhängigkeiten.
Wählen Sie in der Liste der Gruppen die Gruppen aus, für die Sie den Bericht generieren möchten, und klicken Sie dann auf Exportieren.
Wählen Sie im angezeigten Dialogfeld die gewünschte Anzahl von Tagen aus. um die Daten zwischen 10 und 90 zu exportieren, klicken Sie dann auf Exportieren.
Klicken Sie nach der Generierung der Datei auf Herunterladen.
Bericht zu Netzwerkabhängigkeiten in BigQuery analysieren
In den folgenden Abschnitten finden Sie einige Beispielabfragen, mit denen Sie gängige Szenarien in BigQuery analysieren können. Bevor Sie eine Abfrage ausführen können, muss Ihre CSV-Datei in BigQuery hochladen.
Die Abrechnung für BigQuery erfolgt nach der BigQuery-Preise.
Assets mit den meisten Verbindungen ermitteln
Mit der folgenden Abfrage können Sie die Assets mit der größten Anzahl von Verbindungen in der Gruppe 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.
Hier eine Beispielausgabe dieser Abfrage:
LocalVMName | TotalCount |
---|---|
VM-x5ua3o2w | 9970 |
VM-glg5np3w | 9763 |
VM-q3z4zfp8 | 9557 |
VM-2nnsrt37 | 9372 |
VM-1oah56hn | 9350 |
Verbindungen nach Diagrammtiefe identifizieren
Mit der folgenden Abfrage können Sie alle Assets ermitteln, die über eine bestimmte Anzahl von Zwischenverbindungen mit einem bestimmten Asset verbunden sind. Beispiel:
- Bei einer Grafiktiefe von 1 werden alle Assets angezeigt, zum Haupt-Asset hinzufügen.
- Bei einer Diagrammtiefe von 2 sehen Sie alle Assets, 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.
Hier eine Beispielausgabe 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 verwenden die in den von Ihnen definierten Bereichen liegen.
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
: der erste Port des Portbereichs. Beispiel:0
.PORT_END
: der letzte Port des Portbereichs. Beispiel:1024
.IP_START
: Die Anfangs-IP-Adresse des Bereichs, z. B."10.26.0.0"
.IP_END
: Die endgültige IP-Adresse des Bereichs. Beispiel:"10.26.255.255"
.
Hier eine Beispielausgabe 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 keinem Asset in Ihrem Migration Center-Inventar zugeordnet ist. So können Sie potenziell fehlende Assets identifizieren, für Ihre Bewertung scannen.
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. Beispiel:"10.26.0.0"
.IP_END
: Die letzte IP-Adresse des Bereichs, z. B."10.26.255.255"
.