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:
- Saiba como importar dados locais para o BigQuery.
- Saiba como executar consultas.
Gere o relatório de dependências da rede
Para gerar um relatório de dependências de rede, siga estes passos:
Na Google Cloud consola, aceda à página Criar relatórios.
Clique em Exportações de dependências de rede.
Na lista de grupos, selecione os grupos para os quais quer gerar o relatório e, de seguida, clique em Exportar.
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.
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"
.