MÉTRICAS
Coletas customizadas

Coletor de Flows do Cilium

5min

Este documento fornece detalhes sobre o Deployment do coletor que traz os dados de flows gerados pelo Cilium através do Hubble Relay para o Simon.

Pré requisitos

Certifique-se de que o Cilium já esteja habilitado em seu ambiente Kubernetes.

Uma vez que o Cilium esteja em funcionamento, siga os passos abaixo para habilitar o Deployment responsável pela coleta do tráfego de rede detectado pelo Hubble Relay.

Especificações do Deployment

O deployment usa a especificação YAML do Kubernetes para configurar e implantar o coletor de flows no namespace kube-system.

YAML para Deployment

YAML


Os campos presentes em env são variáveis de ambiente que podem ser ajustadas para atender às necessidades específicas do seu ambiente:

  • COLLECT_FREQUENCY
    • Descrição: Define a frequência com que os dados de flow são coletados.
    • Valor Padrão: 5m (5 minutos)
    • Formato: O valor deve ser especificado em uma combinação de unidades de tempo, como segundos (s), minutos (m), ou horas (h).
      • Exemplos: 10s (10 segundos), 5m (5 minutos), 1h (1 hora).
  • HUBBLE_RELAY_ADDRESS
    • Descrição: Endereço do Hubble Relay usado para coletar os dados de flows.
    • Valor Padrão: hubble-relay.kube-system.svc.cluster.local:80
  • RECEIVER_ADDRESS
    • Descrição: Endereço da instância que receberá as métricas, onde os dados coletados serão armazenados. Esse campo pode se preenchido de duas formas:
      • IP e Porta do InfluxDB localizado na instância DB Worker de seu ambiente Simon (Exemplo: 127.0.0.1:8086).
      • URL contendo o caminho da API de coleta do Simon (/api/sync/collector).
        • Caso o domínio responda pela porta 80 ou 443, adicionar o prefixo (/sphere-sync) (Exemplo: https://seu-dominio-simon.com/sphere-sync/api/sync/collector)
        • Caso opte pelo envio diretamente pelo IP, utilizar a porta 18001 (Exemplo: http://127.0.0.1:18001/api/sync/collector)
        • * Essa opção requer o preenchimento da variável de ambiente RECEIVER_API_KEY.
  • RECEIVER_API_KEY
    • Descrição: Esse campo deve ser preenchido apenas caso opte por seguir com o envio através da API de coleta do Simon (/api/sync/collector).
    • A chave de acesso pode ser criada na interface de Chaves de Acesso do Simon.
  • ACCUMULATOR_MEMORY_SIZE
    • Descrição: Define o tamanho da memória do acumulador de dados usado pelo coletor de flows para a realização do envio em batch.
    • Valor Padrão: 100M
    • Formato: O valor deve ser especificado em uma combinação de unidades de memória, como megabytes (M), mebibytes (Mi), gigabytes (G), gibibytes (Gi), etc.
      • Exemplos: 100M (100 megabytes), 100Mi (100 mebibytes), 1G (1 gigabyte), 1Gi (1 gibibyte).
    • Exemplo de Alteração:
      • Em um ambiente com mais recursos de memória, o valor pode ser aumentado.
      • Em um ambiente com restrições de memória, pode ser necessário reduzir o valor.
  • LOG_LEVEL
    • Descrição: Define o nível de log desejado.
    • Valor Padrão: INFO
    • Valores aceitos:
      • INFO: Apenas logs informativos
      • WARNING: Logs informativos e aviso
      • ERROR: Logs informativos, aviso e erro

Instruções de Implantação

Salvar o arquivo YAML: Copie o conteúdo YAML acima e salve em um arquivo chamado cilium-flow-collector-deployment.yaml.

Aplicar o deployment: Use o comando kubectl para aplicar o deployment no seu cluster Kubernetes.

kubectl apply -f cilium-flow-collector-deployment.yaml

Verificar o status: Verifique o status do deployment para garantir que o coletor de flows foi implantado corretamente.

kubectl get deployments -n kube-system kubectl get pods -n kube-system -l app=cilium-flow-collector

Valide as métricas: Após checar a saúde do pod, você pode acompanhar a chegada das métricas através do Grafana do Simon, utilizando a seguinte Query:

Shell


* O primeiro envio das métricas para o Simon pode levar o tempo especificado pelas variáveis COLLECT_FREQUENCY, pois as mesmas são responsáveis por acumular os dados e envia-las em batch periodicamente.