---
title: Coletor de Flows do Cilium
slug: aiops/coletor-de-flows-do-cilium
docTags: 
createdAt: 2024-09-03T17:11:01.541Z
---

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 AIOPS.

## Pré requisitos

Certifique-se de que o [Cilium](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/#cilium-quick-installation) já esteja habilitado em seu ambiente Kubernetes.&#x20;

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](https://docs.cilium.io/en/stable/internals/hubble/#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
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cilium-flow-collector
  namespace: kube-system
  labels:
    app: cilium-flow-collector
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cilium-flow-collector
  template:
    metadata:
      labels:
        app: cilium-flow-collector
    spec:
      containers:
        - name: cilium-flow-collector
          image: aiops/cilium-flow-collector:latest
          resources:
            limits:
              memory: "200M"
          imagePullPolicy: IfNotPresent
          env:
            - name: COLLECT_FREQUENCY
              value: "5m"
            - name: HUBBLE_RELAY_ADDRESS
              value: "hubble-relay.kube-system.svc.cluster.local:80"
            - name: RECEIVER_ADDRESS
              value: "https://<SEU_DOMINIO_AIOPS>/sphere-sync/api/sync/collector"
            - name: RECEIVER_API_KEY
              value: <GENERATED_API_KEY>
            - name: ACCUMULATOR_MEMORY_SIZE
              value: "100M"

```

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&#x20;**(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:&#x20;**&#x68;ubble-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 AIOPS (Exemplo: **127.0.0.1:8086**).
    - URL contendo o caminho da API de coleta do AIOPS **(/api/sync/collector).&#x20;**
      - Caso o domínio responda pela porta 80 ou 443, adicionar o prefixo **(/sphere-sync)&#x20;**(Exemplo: **https\://seu-dominio-aiops.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**)
      - **\*&#x20;**&#x45;ssa opção **requer** o preenchimento da variável de ambient&#x65;**&#x20;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 AIOPS **(/api/sync/collector)**.&#x20;
  - A chave de acesso pode ser criada na interface de [Chaves de Acesso](https://docs.citsmart.com/aiops/chaves-de-acesso) do AIOPS.
- **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:&#x20;**&#x31;00M
  - **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:&#x20;**&#x49;NFO
  - **Valores aceitos**:
    - **INFO**: Apenas logs informativos
    - **WARNING:&#x20;**&#x4C;ogs informativos e aviso
    - **ERROR:&#x20;**&#x4C;ogs 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.

:::BlockQuote
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.

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

**Valide as métricas:&#x20;**&#x41;pós checar a saúde do pod, você pode acompanhar a chegada das métricas através do [Grafana](https://docs.citsmart.com/aiops/validando-coletas-customizadas) do AIOPS, utilizando a seguinte Query:

```shell
cilium_flows{}[5m]
```

\* O primeiro envio das métricas para o AIOPS 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.
