Analise as dependências de rede

Esta página descreve como gerar e analisar o relatório de dependências de rede no Migration Center.

Vista geral

O relatório de dependências de rede fornece dados agregados mensais sobre as ligações aos seus servidores e bases de dados. O relatório de dependências da rede permite-lhe ver todas as ligações aos recursos na sua infraestrutura e o número de vezes que a ligação é observada pelo Migration Center, agregadas mensalmente.

Para recolher dados de dependências de rede, deixe o cliente de descoberta ser executado durante um período e ative a sincronização dos dados com o Migration Center. Quanto mais tempo executar a recolha, mais dados o Migration Center tem para analisar as estatísticas sobre as dependências da sua rede. O Migration Center identifica todas as ligações de rede dos recursos analisados. Os recursos de destino numa associação podem ser recursos no seu inventário do Migration Center que descobriu com o cliente de deteção, recursos que importou manualmente ou até recursos desconhecidos que são externos ao seu ambiente.

O relatório de dependências de rede é útil nos seguintes cenários:

  • Recolher dados sobre ligações a servidores e bases de dados, para identificar recursos que pertencem à mesma aplicação
  • Identificar ligações de rede de interesse num grupo de recursos, como todos os servidores que usam a porta padrão do MySQL
  • Identifique recursos em falta no seu inventário

Pode transferir o relatório de dependências de rede como um ficheiro CSV a partir do Migration Center. Em seguida, pode realizar a análise com o BigQuery e as consultas de exemplo fornecidas pelo Migration Center, ou usar qualquer outra ferramenta de terceiros.

Limitações

  • Para recolher dados de ligação na sua infraestrutura, tem de usar o cliente de deteção.
  • Os dados de ligações de rede são recolhidos apenas com o método de análise do SO. A análise do vSphere não suporta a recolha de dados de rede.

Antes de começar

  • Antes de criar um relatório de dependências de rede, tem de ter a recolha de desempenho a funcionar com o cliente de deteção.

  • Antes de analisar o relatório de dependências de rede com o BigQuery, faça o seguinte:

Gere o relatório de dependências da rede

Para gerar um relatório de dependências de rede, siga estes passos:

  1. Na Google Cloud consola, aceda à página Criar relatórios.

    Aceda a Criar relatórios

  2. Clique em Exportações de dependências de rede.

  3. Na lista de grupos, selecione os grupos para os quais quer gerar o relatório e, de seguida, clique em Exportar.

  4. Na caixa de diálogo apresentada, clique em Exportar.

    A geração do relatório exportado pode demorar até uma hora. Após a geração do relatório, é aberta a página Dependências da rede.

  5. Para transferir um relatório específico, clique em Transferir.

Analise o relatório de dependências de rede no BigQuery

As secções seguintes fornecem alguns exemplos de consultas para analisar cenários comuns no BigQuery. Antes de poder executar uma consulta, tem de carregar o ficheiro CSV para o BigQuery.

Para usar o BigQuery, a faturação é feita de acordo com os preços do BigQuery.

Identifique os recursos com mais associações

A seguinte consulta é útil para identificar os recursos que têm o maior número de associações no grupo.

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

Substitua o seguinte:

  • PROJECT: o Google Cloud projeto onde carregou o ficheiro CSV.
  • DATASET: o conjunto de dados do BigQuery.
  • TABLE: a tabela do BigQuery.

Segue-se um exemplo de resultado desta consulta:

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

Identifique ligações pela profundidade do gráfico

A seguinte consulta é útil para identificar todos os recursos que se ligam a um recurso específico com um número específico de associações intermédias. Por exemplo:

  • Com uma profundidade do gráfico igual a 1, encontra todos os recursos diretamente ligados ao recurso principal.
  • Com uma profundidade do gráfico igual a 2, encontra todos os recursos diretamente ligados a outros recursos, que, por sua vez, estão diretamente ligados ao recurso 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

Substitua o seguinte:

  • MAIN_ASSET: o nome do recurso para o qual quer identificar as associações.
  • DEPTH: a profundidade do gráfico.

Segue-se um exemplo de resultado desta consulta:

LocalVMName Ligações
VM-lv8s148f VM-2z8wp3ey,
VM-66rq2x2y,
VM-94uwyy8h,
VM-ccgmqqmb,
VM-ctqddf0u,
VM-og4n77lb,
...

Filtre associações por intervalos de IP e portas

A seguinte consulta permite-lhe identificar recursos que usam endereços IP e portas em intervalos que define.

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))

Substitua o seguinte:

  • PORT_START: a porta inicial do intervalo de portas, por exemplo, 0.
  • PORT_END: a porta final do intervalo de portas, por exemplo, 1024.
  • IP_START: O endereço IP inicial do intervalo, por exemplo, "10.26.0.0".
  • IP_END: O endereço IP final do intervalo, por exemplo, "10.26.255.255".

Segue-se um exemplo de resultado desta consulta:

SampleRange LocalVMName LocalAssetID LocalGroups LocalIP LocalPort Protocolo 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 Grupo 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 Grupo 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 Grupo 1 10.58.166.132 21 tcp bash VM-2gq0fl37 projects/982941055174/locations/us-central1/assets/2gq0fl37 147.19.84.135 21 514

Identifique recursos não analisados na rede

A seguinte consulta permite-lhe identificar qualquer recurso não analisado na sua rede. Um recurso não analisado é uma ligação a um endereço IP remoto que não está associado a nenhum recurso no seu inventário do Migration Center. Isto permite-lhe identificar recursos potencialmente em falta que tem de procurar para a sua avaliação.

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

Substitua o seguinte:

  • IP_START: O endereço IP inicial do intervalo, por exemplo, "10.26.0.0".
  • IP_END: O endereço IP final do intervalo, por exemplo, "10.26.255.255".