Analisar dependências de rede

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

Visão geral

O relatório de dependências de rede fornece dados agregados mensais sobre as conexões com seus servidores e bancos de dados. O relatório de dependências de rede mostra todas as conexões com os recursos na sua infraestrutura e o número de vezes que a conexão é observada pelo Migration Center, agregada mensalmente.

Para coletar dados de dependências de rede, deixe o discovery client em execução por um período e ative a sincronização dos dados com o Migration Center. Quanto mais tempo você executar a coleta, mais dados a Central de migração terá para analisar insights sobre as dependências da sua rede. O Migration Center identifica todas as conexões de rede dos recursos verificados. Os recursos de destino em uma conexão podem ser recursos no inventário da Central de migração que você descobriu com o discovery client, recursos importados manualmente ou até mesmo recursos desconhecidos externos ao seu ambiente.

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

  • Coletar dados sobre conexões com servidores e bancos de dados para identificar recursos que pertencem ao mesmo aplicativo
  • Identificar conexões de rede de interesse em um grupo de recursos, como todos os servidores que usam a porta padrão do MySQL
  • Identificar recursos ausentes no inventário

É possível fazer o download do relatório de dependências de rede como um arquivo CSV no Migration Center. Em seguida, faça a análise usando o BigQuery e as consultas de amostra fornecidas pelo Migration Center ou use qualquer outra ferramenta de terceiros.

Limitações

  • Para coletar dados de conexão na sua infraestrutura, use o cliente de descoberta.
  • Os dados de conexões de rede são coletados apenas com o método de verificação do SO. A verificação do vSphere não é compatível com a coleta de dados de rede.

Antes de começar

  • Antes de criar um relatório de dependências de rede, é necessário que a coleta de performance funcione com o cliente de descoberta.

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

Gerar o relatório de dependências de rede

Para gerar um relatório de dependências de rede, siga estas etapas:

  1. No console Google Cloud , acesse a página Criar relatórios.

    Acessar "Criar relatórios"

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

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

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

    A geração do relatório exportado pode levar até uma hora. Depois que o relatório for gerado, a página Dependências de rede será aberta.

  5. Para baixar um relatório específico, clique em Fazer o download.

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

As seções a seguir oferecem algumas consultas de exemplo para analisar cenários comuns no BigQuery. Antes de executar uma consulta, faça upload do arquivo CSV para o BigQuery.

Para usar o BigQuery, você recebe uma fatura de acordo com os preços do BigQuery.

Identificar recursos com mais conexões

A consulta a seguir é útil para identificar os recursos com o maior número de conexões no grupo.

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

Substitua:

  • PROJECT: o projeto Google Cloud em que você fez upload do arquivo CSV.
  • DATASET: o conjunto de dados do BigQuery.
  • TABLE: a tabela do BigQuery.

Confira a seguir um exemplo de saída dessa consulta:

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

Identificar conexões pela profundidade do gráfico

A consulta a seguir é útil para identificar todos os recursos que se conectam a um determinado recurso com um número específico de conexões intermediárias. Exemplo:

  • Com profundidade igual a 1, você encontra todos os recursos conectados diretamente ao recurso principal.
  • Com profundidade de grafo igual a 2, você encontra todos os recursos conectados diretamente a outros recursos, que, por sua vez, estão conectados diretamente 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:

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

Confira a seguir um exemplo de saída dessa consulta:

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

Filtrar conexões por intervalos de IP e porta

A consulta a seguir permite identificar recursos que usam endereços IP e portas em intervalos definidos por você.

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:

  • 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".

Confira a seguir um exemplo de saída dessa 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

Identificar recursos não verificados na rede

A consulta a seguir permite identificar qualquer recurso não verificado na sua rede. Um recurso não verificado é uma conexão com um endereço IP remoto que não está associado a nenhum recurso no inventário do Migration Center. Assim, você identifica recursos potencialmente ausentes que precisam ser verificados para 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:

  • 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".