Questa pagina descrive come generare e analizzare il report sulle dipendenze di rete in Migration Center.
Panoramica
Il report Dipendenze di rete fornisce dati aggregati mensili sulle connessioni ai tuoi server e database. Il report sulle dipendenze di rete consente di visualizzare tutte le connessioni agli asset della tua infrastruttura e il numero di volte in cui la connessione viene osservata da Migration Center, aggregato mensilmente.
Per raccogliere i dati sulle dipendenze di rete, lascia in esecuzione il client predittivo per un periodo di tempo e attiva la sincronizzazione dei dati con Migration Center. Più a lungo esegui la raccolta, più dati ha a disposizione Migration Center per analizzare gli approfondimenti sulle dipendenze di rete. Il Centro di migrazione identifica quindi tutte le connessioni di rete dalle risorse scansionate. Gli asset di destinazione in una connessione possono essere asset nel tuo inventario di Migration Center che hai scoperto con il client predittivo, asset che hai importato manualmente o anche asset sconosciuti esterni al tuo ambiente.
Il report sulle dipendenze di rete è utile nei seguenti scenari:
- Raccolta di dati sulle connessioni a server e database, per identificare gli asset che appartengono alla stessa applicazione
- Identificare le connessioni di rete di interesse all'interno di un gruppo di asset, ad esempio tutti i server che utilizzano la porta standard MySQL
- Identificare gli asset mancanti nell'inventario
Puoi scaricare il report sulle dipendenze di rete come file CSV da Migration Center. Puoi quindi eseguire l'analisi utilizzando BigQuery e le query di esempio fornite da Migration Center o utilizzare qualsiasi altro strumento di terze parti.
Limitazioni
- Per raccogliere i dati di connessione nella tua infrastruttura, devi utilizzare il client di rilevamento.
- I dati delle connessioni di rete vengono raccolti solo con il metodo di scansione del sistema operativo. La scansione vSphere non supporta la raccolta di dati di rete.
Prima di iniziare
Prima di creare un report sulle dipendenze di rete, devi aver attivato la raccolta dei dati sul rendimento con il client di rilevamento.
Prima di analizzare il report sulle dipendenze di rete con BigQuery, svolgi le seguenti operazioni:
- Scopri come importare dati locali in BigQuery.
- Scopri come eseguire query.
Generare il report sulle dipendenze di rete
Per generare un report sulle dipendenze di rete:
Nella console Google Cloud , vai alla pagina Crea report.
Fai clic su Esportazioni delle dipendenze di rete.
Dall'elenco dei gruppi, seleziona quelli per cui vuoi generare il report, poi fai clic su Esporta.
Nella finestra di dialogo visualizzata, fai clic su Esporta.
La generazione del report esportato potrebbe richiedere fino a un'ora. Dopo aver generato il report, si apre la pagina Dipendenze di rete.
Per scaricare un report specifico, fai clic su
Scarica.
Analizzare il report sulle dipendenze di rete in BigQuery
Le sezioni seguenti forniscono alcune query di esempio per analizzare scenari comuni in BigQuery. Prima di poter eseguire una query, devi caricare il file CSV in BigQuery.
Per utilizzare BigQuery, la fatturazione viene eseguita in base ai prezzi di BigQuery.
Identificare gli asset con il maggior numero di connessioni
La seguente query è utile per identificare gli asset con il maggior numero di connessioni nel gruppo.
SELECT
LocalVMName, SUM(ConnectionCount) as TotalCount
FROM
PROJECT.DATASET.TABLE
GROUP BY ALL
ORDER BY TotalCount DESC
Sostituisci quanto segue:
PROJECT
: il Google Cloud progetto in cui hai caricato il file CSV.DATASET
: il set di dati BigQuery.TABLE
: la tabella BigQuery.
Di seguito è riportato un output di esempio di questa query:
LocalVMName | TotalCount |
---|---|
VM-x5ua3o2w | 9970 |
VM-glg5np3w | 9763 |
VM-q3z4zfp8 | 9557 |
VM-2nnsrt37 | 9372 |
VM-1oah56hn | 9350 |
Identificare le connessioni in base alla profondità del grafico
La seguente query è utile per identificare tutti gli asset che si connettono a un determinato asset con un numero specifico di connessioni intermedie. Ad esempio:
- Con una profondità del grafico pari a 1, trovi tutti gli asset direttamente collegati all'asset principale.
- Con una profondità del grafico pari a 2, trovi tutte le risorse direttamente connesse ad altre risorse, che a loro volta sono direttamente connesse alla risorsa principale.
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
Sostituisci quanto segue:
MAIN_ASSET
: il nome dell'asset per cui vuoi identificare le connessioni.DEPTH
: la profondità del grafico.
Di seguito è riportato un output di esempio di questa query:
LocalVMName | Connessioni |
---|---|
VM-lv8s148f | VM-2z8wp3ey, VM-66rq2x2y, VM-94uwyy8h, VM-ccgmqqmb, VM-ctqddf0u, VM-og4n77lb, ... |
Filtra le connessioni per intervalli di IP e porte
La seguente query consente di identificare gli asset che utilizzano indirizzi IP e porte in intervalli definiti dall'utente.
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))
Sostituisci quanto segue:
PORT_START
: la porta iniziale dell'intervallo di porte, ad esempio0
.PORT_END
: la porta finale dell'intervallo di porte, ad esempio1024
.IP_START
: l'indirizzo IP iniziale dell'intervallo, ad esempio"10.26.0.0"
.IP_END
: l'indirizzo IP finale dell'intervallo, ad esempio"10.26.255.255"
.
Di seguito è riportato un output di esempio di questa query:
SampleRange | LocalVMName | LocalAssetID | LocalGroups | LocalIP | LocalPort | Protocollo | LocalProcessName | RemoteVMName | RemoteAssetID | RemoteGroups | RemoteIP | RemotePort | ConnectionCount |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025-06-02T05:59:53Z-2025-06-02T05:59:53Z | VM-0lf60off | projects/982941055174/locations/us-central1/assets/0lf60off | Gruppo 1 | 10.0.45.138 | 272 | tcp | bash | VM-0spdofr9 | projects/982941055174/locations/us-central1/assets/0spdofr9 | 144.35.88.1 | 272 | 499 | |
2025-07-02T05:59:53Z-2025-07-02T05:59:53Z | VM-goa5uxhi | projects/982941055174/locations/us-central1/assets/goa5uxhi | Gruppo 3 | 10.187.175.82 | 781 | tcp | bash | VM-27i5d2uj | projects/982941055174/locations/us-central1/assets/27i5d2uj | 22.99.72.109 | 781 | 980 | |
2025-08-02T05:59:53Z-2025-08-02T05:59:53Z | VM-7vwy31hg | projects/982941055174/locations/us-central1/assets/7vwy31hg | Gruppo 1 | 10.58.166.132 | 21 | tcp | bash | VM-2gq0fl37 | projects/982941055174/locations/us-central1/assets/2gq0fl37 | 147.19.84.135 | 21 | 514 |
Identificare gli asset non scansionati nella rete
La seguente query consente di identificare qualsiasi asset non scansionato nella tua rete. Un asset non scansionato è una connessione a un indirizzo IP remoto non associato ad alcun asset nell'inventario di Migration Center. In questo modo, puoi identificare gli asset potenzialmente mancanti che devi scansionare per il test.
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
Sostituisci quanto segue:
IP_START
: l'indirizzo IP iniziale dell'intervallo, ad esempio"10.26.0.0"
.IP_END
: l'indirizzo IP finale dell'intervallo, ad esempio"10.26.255.255"
.