Configurar o monitoramento de dados de fluxo de rede
Você pode usar nosso processo de instalação guiada para instalar o agente de monitoramento de fluxo de rede ou instalar o agente manualmente. Este documento aborda os pré-requisitos para iniciar o processo de instalação e um passo a passo das opções de instalação.
Capacidade de lançar novos contêineres via linha de comando
Se estiver usando Linux para instalar o agente como um serviço, você precisará de:
Acesso SSH ao host
Acesso para instalar/remover aplicativos e serviços
Um destes sistemas operacionais suportados:
CentOS 8
Debian 12 (leitor ávido)
Debian 11 (alvo)
Debian 10 (Buster)
RedHat Enterprise Linux 9
Ubuntu 20.04 (FocalLTS)
Ubuntu 22.04 (Jammy LTS)
Ubuntu 23.04 (Lunar)
Você deve configurar os dispositivos de origem para enviar dados de fluxo ao host que executa o agente Monitoramento de rede. Veja como configurar a exportação de fluxo de rede em alguns dispositivos (esta não é uma lista completa):
O monitoramento de fluxo de rede oferece suporte aos quatro principais tipos de dados de fluxo de rede e seus derivados. Ao executar o agente, você pode especificar qual tipo principal deseja monitor usando a opção -nf.source.
Dica
A coleção de modelos NetFlow v5, NetFlow v9, sFlow e IPFIX pode ser tratada usando -nf.source.=auto em um único agente. Isso é ativado como configuração padrão ao usar o argumento nr1.flow em tempo de execução.
Tipo de fluxo de rede
Ativado com auto?
-nf.source valor
AppFlow
✓
auto | netflow5
Argus
✓
auto | netflow5
Cisco ASA
asa
Cisco NBAR
nbar
cflowd
✓
auto | netflow5
IPFIX
✓
auto | ipfix
Fluxo J
✓
auto | netflow5
NetFlow v5
✓
auto | netflow5
NetFlow v9
✓
auto | netflow9
NetStream
✓
auto | netflow5
Palo Alto Networks
pan
Fluxo RF
✓
auto | netflow5
sFlow
✓
auto | sflow
Quando você deve dimensionar a coleta de fluxo de rede?
Ao planear a sua estratégia para recolher fluxos de rede em escala, os seguintes itens devem ser considerados:
O agente ktranslate só pode executar uma tarefa por vez. Um agente que executa a coleta SNMP também não pode escutar fluxos de rede.
O agente ktranslate só pode escutar fluxos de rede de entrada em uma única porta de escuta por vez (padrão: 9995). Se você precisar que várias portas estejam abertas, cada uma exigirá um agente dedicado, usando a opção de configuração -nf.port no tempo de execução para alterar a porta.
A configuração padrão -nf.source=auto permite que o contêiner detecte vários tipos de fluxo padrão. Se você precisar analisar outros tipos de dados de fluxo, como modelos Cisco ASA, Cisco NBAR ou Palo Alto Networks, cada um exigirá seu próprio agente.
A New Relic recomenda 1 CPU por 2.000 fluxos por segundo (120.000 fluxos por minuto). Decidir se escalar horizontalmente vários agentes para distribuir a carga ou escalar verticalmente alguns agentes maiores para consolidar o gerenciamento é uma questão de preferência pessoal.
Configurar o monitoramento de dados de fluxo de rede
Para a maioria dos casos de uso, recomendamos nossa instalação guiada para configurar o monitoramento de dados de fluxo de rede. Se sua configuração for mais avançada com configurações personalizadas, recomendamos a instalação manual.
Copie o arquivo snmp-base.yaml para o diretório local $HOME do seu usuário Docker e descarte o contêiner executando:
bash
$
cd ~
$
id=$(docker create kentik/ktranslate:v2)
$
dockercp$id:/etc/ktranslate/snmp-base.yaml .
$
dockerrm-v$id
Edite o arquivo snmp-base.yaml e adicione seus dispositivos de fluxo de rede dentro da chave de dicionário devices com a seguinte estrutura:
devices:
# This key and the corresponding 'device_name'
# need to be unique for each device
flow_device1:
device_name: flow_device1
device_ip: x.x.x.x/yy
flow_only:true
# Optional user tags
user_tags:
owning_team: net_eng
environment: production
Importante
Se você já está monitorando dispositivos de dados SNMP que também enviarão fluxos de rede, você vai querer garantir que o valor de device_name seja idêntico para ambos os arquivos de configuração para garantir que o fluxo de telemetria seja atribuído à entidade certa no New Relic interface.
Execute ktranslate para escutar fluxos de rede com o comando:
bash
$
docker run -d--name ktranslate-$CONTAINER_SERVICE--restart unless-stopped --pull=always --net=host \
>
-v`pwd`/snmp-base.yaml:/snmp-base.yaml \
>
-eNEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY\
>
kentik/ktranslate:v2 \
>
-snmp /snmp-base.yaml \
>
-nr_account_id=$YOUR_NR_ACCOUNT_ID\
>
-metrics=jchf \
>
-tee_logs=true \
>
# Use this field to create a unique value for `tags.container_service` inside of New Relic
>
-service_name=$CONTAINER_SERVICE\
>
-flow_only=true \
>
nr1.flow
Investigue os dados de fluxo da sua rede na interface New Relic .
Em um host com o Podman instalado, faça download da imagem ktranslate executando o seguinte comando:
Copie o arquivo snmp-base.yaml para o diretório local $HOME do seu usuário Podman e descarte o contêiner executando:
bash
$
cd ~
$
id=$(podman create kentik/ktranslate:v2)
$
podmancp$id:/etc/ktranslate/snmp-base.yaml .
$
podmanrm-v$id
Edite o arquivo snmp-base.yaml e adicione seus dispositivos de fluxo de rede dentro da chave de dicionário devices com a seguinte estrutura:
devices:
# This key and the corresponding 'device_name'
# need to be unique for each device
flow_device1:
device_name: flow_device1
device_ip: x.x.x.x/yy
flow_only:true
# Optional user tags
user_tags:
owning_team: net_eng
environment: production
Importante
Se você já está monitorando dispositivos de dados SNMP que também enviarão fluxos de rede, você vai querer garantir que o valor de device_name seja idêntico para ambos os arquivos de configuração para garantir que o fluxo de telemetria seja atribuído à entidade certa no New Relic interface.
Execute ktranslate para escutar fluxos de rede com o comando:
bash
$
podman run -d--name ktranslate-$CONTAINER_SERVICE--userns=keep-id --restart unless-stopped --pull=always --net=host \
>
-v`pwd`/snmp-base.yaml:/snmp-base.yaml \
>
-eNEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY\
>
kentik/ktranslate:v2 \
>
-snmp /snmp-base.yaml \
>
-nr_account_id=$YOUR_NR_ACCOUNT_ID\
>
-metrics=jchf \
>
-tee_logs=true \
>
# Use this field to create a unique value for `tags.container_service` inside of New Relic
>
-service_name=$CONTAINER_SERVICE\
>
-flow_only=true \
>
nr1.flow
Dica
O contêiner Rootless Podman não consegue se vincular a portas abaixo de 1024. Se os fluxos de rede forem enviados em uma porta abaixo de 1024 em vez do padrão (9995), você precisará criar uma regra iptables para lidar com o redirecionamento de pacotes com o comando:
Se você não tiver um arquivo de configuração snmp-base.yaml , crie um com:
bash
$
cd ~
$
touch snmp-base.yaml
Edite o arquivo snmp-base.yaml e adicione seus dispositivos de fluxo de rede dentro da chave de dicionário devices com a seguinte estrutura:
devices:
# This key and the corresponding 'device_name'
# need to be unique for each device
flow_device1:
device_name: flow_device1
device_ip: x.x.x.x/yy
flow_only:true
# Optional user tags
user_tags:
owning_team: net_eng
environment: production
Reinicie o serviço ktranslate para aplicar as alterações ao arquivo snmp-base.yaml :
bash
$
sudo systemctl restart ktranslate
Investigue os dados de fluxo da sua rede na interface New Relic .
Encontre e use sua métrica
Todo log de fluxo de rede exportado do ktranslate contêiner utiliza o KFlow namespace, por meio da New Relic de eventos API. Atualmente, estes são os campos padrão preenchidos nesta integração:
Atributo
Tipo
Descrição
application
Corda
A classe do programa que gera o tráfego neste registro de fluxo. Isso é derivado do valor numérico mais baixo de l4_dst_port e l4_src_port. Exemplos comuns incluem http, ssh e ftp.
device_name
Corda
O nome de exibição do dispositivo de amostragem para esse registro de fluxo.
dst_addr
Corda
O endereço IP de destino para este registro de fluxo.
A tupla IP:Port de destino para este registro de fluxo. Esta é uma combinação de dst_addr e l4_dst_port.
dst_geo
Corda
O país de destino deste registo de fluxo, se conhecido.
in_bytes
Numérico
O número de bytes transferidos para registros de fluxo de entrada.
in_pkts
Numérico
O número de pacotes transferidos para registros de fluxo de entrada.
input_port
Numérico
If_Index valor para a interface na origem deste registro de fluxo.
l4_dst_port
Numérico
A porta de destino para este registro de fluxo.
l4_src_port
Numérico
A porta de origem deste registro de fluxo.
output_port
Numérico
If_Index valor para a interface no destino deste registro de fluxo.
protocol
Corda
O nome de exibição do protocolo usado neste registro de fluxo, derivado do [número numérico do protocolo IANA](https://www.iana.org/assignments/ protocol-numbers/protocol-numbers.xhtml).
provider
Corda
Este atributo é usado para identificar exclusivamente diversas fontes de dados de ktranslate. O log de fluxo de rede sempre terá o valor kentik-flow-device.
sample_rate
Numérico
Taxa de amostragem aplicada pela configuração do dispositivo de amostragem ou pelo argumento sample_rate em ktranslate.