Cette page explique comment générer et analyser le rapport sur les dépendances réseau dans Migration Center.
Présentation
Le rapport sur les dépendances réseau fournit des données agrégées mensuelles sur les connexions à vos serveurs et bases de données. Le rapport sur les dépendances réseau vous permet de voir toutes les connexions aux composants de votre infrastructure, ainsi que le nombre de fois où la connexion est observée par Migration Center, agrégé mensuellement.
Pour collecter des données sur les dépendances réseau, laissez le client de découverte s'exécuter pendant un certain temps et activez la synchronisation des données avec Migration Center. Plus vous exécutez la collecte longtemps, plus Migration Center dispose de données pour analyser les insights sur les dépendances de votre réseau. Migration Center identifie ensuite toutes les connexions réseau à partir des ressources analysées. Les composants cibles d'une connexion peuvent être des composants de votre inventaire Migration Center que vous avez découverts avec le client de découverte, des composants que vous avez importés manuellement ou même des composants inconnus externes à votre environnement.
Le rapport sur les dépendances réseau est utile dans les scénarios suivants :
- Collecte de données sur les connexions aux serveurs et aux bases de données, pour identifier les composants appartenant à la même application
- Identifier les connexions réseau d'intérêt dans un groupe d'assets, comme tous les serveurs utilisant le port MySQL standard
- Identifier les composants manquants dans votre inventaire
Vous pouvez télécharger le rapport sur les dépendances réseau au format CSV depuis Migration Center. Vous pouvez ensuite effectuer votre analyse à l'aide de BigQuery et des exemples de requêtes fournis par Migration Center, ou utiliser tout autre outil tiers.
Limites
- Pour collecter des données de connexion dans votre infrastructure, vous devez utiliser le client Discovery.
- Les données de connexion réseau ne sont collectées qu'avec la méthode d'analyse de l'OS. L'analyse vSphere n'est pas compatible avec la collecte de données réseau.
Avant de commencer
Avant de créer un rapport sur les dépendances réseau, vous devez avoir configuré la collecte des performances avec le client Discovery.
Avant d'analyser le rapport sur les dépendances réseau avec BigQuery, procédez comme suit :
- Découvrez comment importer des données locales dans BigQuery.
- Découvrez comment exécuter des requêtes.
Générer le rapport sur les dépendances réseau
Pour générer un rapport sur les dépendances réseau, procédez comme suit :
Dans la console Google Cloud , accédez à la page Créer des rapports.
Cliquez sur Exportations des dépendances réseau.
Dans la liste des groupes, sélectionnez ceux pour lesquels vous souhaitez générer le rapport, puis cliquez sur Exporter.
Dans la boîte de dialogue qui s'affiche, cliquez sur Exporter.
La création du rapport exporté peut prendre jusqu'à une heure. Une fois votre rapport généré, la page Dépendances réseau s'ouvre.
Pour télécharger un rapport spécifique, cliquez sur
Télécharger.
Analyser le rapport sur les dépendances réseau dans BigQuery
Les sections suivantes vous fournissent des exemples de requêtes pour analyser des scénarios courants dans BigQuery. Avant de pouvoir exécuter une requête, vous devez importer votre fichier CSV dans BigQuery.
Pour utiliser BigQuery, vous êtes facturé selon les tarifs de BigQuery.
Identifier les composants avec le plus de connexions
La requête suivante est utile pour identifier les composants qui comportent le plus grand nombre de connexions dans le groupe.
SELECT
LocalVMName, SUM(ConnectionCount) as TotalCount
FROM
PROJECT.DATASET.TABLE
GROUP BY ALL
ORDER BY TotalCount DESC
Remplacez les éléments suivants :
PROJECT
: projet Google Cloud dans lequel vous avez importé le fichier CSV.DATASET
: ensemble de données BigQuery.TABLE
: table BigQuery.
Voici un exemple de résultat de cette requête :
LocalVMName | TotalCount |
---|---|
VM-x5ua3o2w | 9970 |
VM-glg5np3w | 9763 |
VM-q3z4zfp8 | 9557 |
VM-2nnsrt37 | 9372 |
VM-1oah56hn | 9350 |
Identifier les connexions par profondeur du graphique
La requête suivante est utile pour identifier tous les composants qui se connectent à un composant donné avec un nombre spécifique de connexions intermédiaires. Exemple :
- Avec une profondeur de graphique égale à 1, vous trouverez tous les composants directement associés au composant principal.
- Avec une profondeur de graphique égale à 2, vous trouverez tous les composants directement connectés à d'autres composants, qui sont eux-mêmes directement connectés au composant principal.
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
Remplacez les éléments suivants :
MAIN_ASSET
: nom du composant pour lequel vous souhaitez identifier les connexions.DEPTH
: profondeur du graphique.
Voici un exemple de résultat de cette requête :
LocalVMName | Connexions |
---|---|
VM-lv8s148f | VM-2z8wp3ey, VM-66rq2x2y, VM-94uwyy8h, VM-ccgmqqmb, VM-ctqddf0u, VM-og4n77lb, ... |
Filtrer les connexions par plages d'adresses IP et de ports
La requête suivante vous permet d'identifier les composants qui utilisent des adresses IP et des ports dans des plages que vous définissez.
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))
Remplacez les éléments suivants :
PORT_START
: port initial de la plage de ports, par exemple0
.PORT_END
: port final de la plage de ports, par exemple1024
.IP_START
: adresse IP initiale de la plage, par exemple"10.26.0.0"
.IP_END
: adresse IP finale de la plage, par exemple"10.26.255.255"
.
Voici un exemple de résultat de cette requête :
SampleRange | LocalVMName | LocalAssetID | LocalGroups | LocalIP | LocalPort | Protocole | 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 | Groupe 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 | Groupe 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 | Groupe 1 | 10.58.166.132 | 21 | tcp | bash | VM-2gq0fl37 | projects/982941055174/locations/us-central1/assets/2gq0fl37 | 147.19.84.135 | 21 | 514 |
Identifier les composants non analysés du réseau
La requête suivante vous permet d'identifier les composants non analysés de votre réseau. Un composant non analysé est une connexion à une adresse IP distante qui n'est associée à aucun composant de votre inventaire du centre de migration. Cela vous permet d'identifier les composants potentiellement manquants que vous devez analyser pour votre évaluation.
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
Remplacez les éléments suivants :
IP_START
: adresse IP initiale de la plage, par exemple"10.26.0.0"
.IP_END
: adresse IP finale de la plage, par exemple"10.26.255.255"
.