Use registros de fluxo para salvar metadados de tráfego de rede, incluindo 5-tuplas, no Google Distributed Cloud (GDC) com isolamento físico na pilha de observabilidade na forma de registros consultáveis. Use esses registros para:
- Entender os fluxos de tráfego para um determinado serviço em uma organização.
- Entender e identificar problemas com a integridade da rede de uma carga de trabalho do Kubernetes.
- Verificar as políticas de rede do Kubernetes.
O registro de fluxo é um recurso do GDC baseado no projeto de código aberto
Hubble: https://github.com/cilium/hubble. Configure os registros de fluxo usando
o recurso FlowLog
da
API Networking.
Antes de começar
É preciso receber autorização para gerenciar ou visualizar registros de fluxo no console do GDC. Para gerenciar registros de fluxo, peça ao administrador do IAM da organização para conceder a você o papel de administrador de registros de fluxo (
flowlog-admin). Para visualizar apenas os registros de fluxo, peça ao admin. da organização do IAM para conceder a você o papel de Visualizador de registros de fluxo (flowlog-viewer).Para informações sobre como definir vinculações de papéis no console do GDC, consulte Conceder acesso a recursos.
Antes de consultar e visualizar os registros de fluxo nos painéis, você precisa ter acesso à instância de monitoramento. Para mais informações, consulte Consultar e visualizar métricas.
Criar um registro de fluxo
Crie um registro de fluxo para salvar metadados de tráfego de rede filtrados por um determinado conjunto de especificações.
Criar registro de fluxo com filtros de protocolo e endpoint
Crie um arquivo chamado
example-flowlog.yamlcom o conteúdo a seguir.apiVersion: networking.gdc.goog/v1 kind: FlowLog metadata: name: "FLOW_LOG_NAME" namespace: "platform" spec: filters: - l4Protocols: - udp endpoint: ports: - 53 lifetime: duration: "12h"Substitua
FLOW_LOG_NAMEpelo nome escolhido para o registro de fluxo.Neste exemplo, o registro de fluxo captura todo o tráfego UDP na porta 53 (como o tráfego DNS). Ele para de registrar os registros 12 horas após a criação do objeto.
Crie o objeto de registro de fluxo:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yamlSubstitua
MANAGEMENT_API_SERVERpelo caminho do kubeconfig do servidor de API Management zonal.Verifique se o valor
FLOW_LOG_NAMEfoi reconciliado corretamente e se o processo de geração de registros foi iniciado examinando o campoStatus:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAMEExemplo de status:
Status: Clusters: Cluster: org-1-infra-cluster Conditions: Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Name: cilium-flowlog-config Namespace: kube-system Node: org-1-infra Cluster: user-vm-1-cluster Conditions: Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Name: cilium-flowlog-config Namespace: kube-system Node: user-vm-1 Cluster: user-vm-2-cluster Conditions: Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Name: cilium-flowlog-config Namespace: kube-system Node: user-vm-2 Conditions: Last Transition Time: 2024-01-18T19:17:53Z Message: Observed Generation: 1 Reason: Active Status: True Type: Logging Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Last Transition Time: 2024-01-18T19:17:53Z Message: Observed Generation: 1 Reason: Succeeded Status: True Type: Reconciled Start Time: 2024-01-18T19:17:53Z End Time: 2024-01-18T20:17:53ZEste exemplo de saída contém as seguintes condições:
Propagated: a configuração do registro de fluxo foi enviada aos clustersuser-vm-1,user-vm-2eorg-1-infra.Reconciled: o registro de fluxo foi programado com sucesso nos clustersuser-vm-1,user-vm-2eorg-1-infra.Logging: o registro de fluxo não expirou nem foi desativado, não encontrou erros e pode produzir registros se os filtros corresponderem aos fluxos.Start TimeeEnd Timeindicam que o job foi iniciado em19:17:53e expira em20:17:53.
Para que esse registro de fluxo possa produzir entradas de registro, todas as condições
Propagated,ReconciledeLoggingprecisam ser verdadeiras.
Modificar registro de fluxo
Para modificar um registro de fluxo, mude a definição do objeto de registro de fluxo criado no
arquivo example-flowlog.yaml e aplique-o novamente:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
Ver registros de fluxo no painel de monitoramento
Abra o painel de registros operacionais. Para mais informações, consulte Consultar registros operacionais.
Defina o valor do menu suspenso identificador como
network-flow-logs, clique em adicionar analisador JSON e forneça o seguinte valor para a consulta:{identifier="network-flow-logs"} | json:
Clique em Executar consulta. Isso mostra as entradas de registro de fluxo salvas:

Use os filtros para refinar ainda mais os resultados. Por exemplo, forneça ao menu suspenso cluster um valor de
user-vm-1para analisar apenas os fluxos coletados do clusteruser-vm-1:
Navegue pelas entradas de registro de fluxo, expanda a entrada para ver os detalhes e adicione mais filtros de rótulo conforme necessário usando o ícone de atalho. Neste exemplo, queremos filtrar ainda mais os fluxos pelo endereço IP de origem:

Clique no ícone de atalho
+para filtrar os fluxos por um campo de metadados específico.
Ver resultados por nome do registro de fluxo
Quando vários registros de fluxo são criados, é possível criar um filtro de rótulo adicional para visualizar os resultados de um ou mais registros de fluxo.
Para ver resultados limitados aos registros produzidos por FLOW_LOG_NAME, crie um filtro de rótulo com os seguintes valores:
Labeldefinido comoOn. Esse campo diferencia maiúsculas de minúsculas.Operatordefinido como~=. Isso usa uma correspondência de expressão regular.Valuedefinido como/FLOW_LOG_NAME/. O valorFLOW_LOG_NAMEprecisa estar entre/.
Filtre os resultados para ver apenas os registros produzidos por flowlog1:

Referências
- Documentação sobre o exportador dinâmico do Hubble: https://docs.cilium.io/en/latest/observability/hubble-exporter/#dynamic-exporter-configuration