Gerar e analisar o relatório de dependências de rede

Nesta página, descrevemos como gerar e analisar o relatório de dependências de rede na Central de migração. 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 do Migration Center que você descobriu com o discovery client, recursos importados manualmente ou até mesmo recursos desconhecidos que estão fora do 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 ter a coleta de desempenho funcionando com o cliente de descoberta.

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

Gerar um relatório de dependências de rede

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

  1. No console do 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 Baixar.

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

As seções a seguir fornecem 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 os recursos com mais conexões

A consulta a seguir é útil para identificar os recursos que têm 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 a profundidade do gráfico 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".