Você pode usar nosso processo de instalação guiada para instalar o agente de monitoramento SNMP 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.
Recomenda-se implantar o agente de monitoramento SNMP como um contêiner tanto para Docker quanto para Podman. Se precisar, você pode instalá-lo alternativamente como um serviço baremetal no Linux.
Recomendamos utilizar um contêiner Docker para implantar o agente de monitoramento SNMP. Para usá-lo, você precisa de:
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)
Importante
Para receber Traps SNMP, o agente deve vincular-se ao UDP 162. Em uma instalação baseada em host, o comando a seguir será incluído durante o processo de instalação. Quando executado, o KTranslate será executado com privilégios elevados.
Existem também pré-requisitos para o seu ambiente de rede e para os próprios dispositivos de rede.
Você deve configurar os dispositivos de destino para aceitarem a pesquisa SNMP do endereço IP do host do agente. Você pode encontrar alguns exemplos de configuração SNMP básica aqui (esta não é uma lista completa):
Nosso Monitoramento de rede contêiner suporta todas as versões principais do SNMP (v1, v2c e v3), incluindo Traps e Informs. Além disso, o SNMP v3 oferece suporte para as seguintes configurações de autenticação e privacidade:
Contexto
Protocolo
Autenticação
NoAuth
Autenticação
MD5
Autenticação
SHA
Autenticação
SHA224
Autenticação
SHA256
Autenticação
SHA384
Autenticação
SHA512
Privacidade
NoPriv
Privacidade
DES
Privacidade
AES
Privacidade
AES192
Privacidade
AES256
Privacidade
AES192C
Privacidade
AES256C
Dica
Recomendamos o uso de strings/autenticação de comunidade somente leitura com SNMP.
Configure o monitoramento de dados SNMP no New Relic
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 defina o atributo discovery.cidrs e discovery.default_communities para valores apropriados para sua rede.
Dica
Recomendamos configurar discovery.add_mibs: true para automatizar a adição de todos os MIBs descobertos no atributo global.mibs_enabled . Além disso, recomendamos configurar discovery.check_all_ips: true para evitar problemas de descoberta em dispositivos com posturas de segurança mais rígidas.
Inicie o agente Monitoramento de rede para sondar dispositivos de destino e escutar mensagens de interceptação SNMP recebidas. Substitua $CONTAINER_SERVICE por um nome exclusivo para o contêiner e substitua$YOUR_NR_LICENSE_KEY e $YOUR_NR_ACCOUNT_ID pelos seus valores:
bash
$
docker run -d--name ktranslate-$CONTAINER_SERVICE--restart unless-stopped --pull=always -p162:1620/udp \
>
-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 \
>
-service_name=$CONTAINER_SERVICE\
>
-snmp_discovery_on_start=true \
>
-snmp_discovery_min=180\
>
nr1.snmp
Dica
Não é necessário executar um agente dedicado para coleta de traps, pois todos os agentes de polling SNMP executarão um ouvinte passivo. Por padrão, o contêiner escutará na porta 162 (UDP) do host; mas você pode alterar o mapeamento de porta publicado no comando docker run - -p 162:1620/udp. Se quiser configurar um contêiner dedicado, você pode seguir as etapas desta seção.
Investigue os dados de desempenho 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 defina o atributo discovery.cidrs e discovery.default_communities para valores apropriados para sua rede.
Dica
Recomendamos configurar discovery.add_mibs: true para automatizar a adição de todos os MIBs descobertos no atributo global.mibs_enabled . Além disso, recomendamos configurar discovery.check_all_ips: true para evitar problemas de descoberta em dispositivos com posturas de segurança mais rígidas.
O contêiner Rootless Podman não consegue se vincular a portas abaixo de 1024. Para lidar com o redirecionamento de pacotes para mensagens trap, você precisará criar uma regra iptables para que os pacotes de destino cheguem na porta UDP 162:
Inicie o agente Monitoramento de rede para sondar dispositivos de destino e escutar mensagens de interceptação SNMP recebidas. Substitua $CONTAINER_SERVICE por um nome exclusivo para o contêiner e substitua$YOUR_NR_LICENSE_KEY e $YOUR_NR_ACCOUNT_ID pelos seus valores:
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 \
>
-service_name=$CONTAINER_SERVICE\
>
-snmp_discovery_on_start=true \
>
-snmp_discovery_min=180\
>
nr1.snmp
Dica
Não é necessário executar um agente dedicado para coleta de traps, pois todos os agentes de polling SNMP executarão um ouvinte passivo. Por padrão, o contêiner escutará na porta 162 (UDP) do host, mas você pode alterar o mapeamento da porta publicada no comando docker run - -p 162:1620/udp. Se quiser configurar um contêiner dedicado, você pode seguir as etapas desta seção.
Investigue os dados de desempenho da sua rede na interface New Relic .
Dependendo do seu gerenciador de pacote, use um dos comandos abaixo para instalar ktranslate
Edite o arquivo snmp-base.yaml e defina o atributo discovery.cidrs e discovery.default_communities para valores apropriados para sua rede.
Dica
Recomendamos definir discovery.add_mibs: true para automatizar a adição de todos os MIBs descobertos no atributo global.mibs_enabled . Além disso, é recomendável definir discovery.check_all_ips: true para evitar problemas de descoberta em dispositivos com posturas de segurança mais rígidas.
Reinicie o serviço ktranslate para aplicar as alterações ao arquivo snmp-base.yaml :
bash
$
sudo systemctl restart ktranslate
Investigue os dados de desempenho da sua rede na interface New Relic .
Instalação opcional para Traps SNMP
Em algumas circunstâncias, é benéfico isolar a coleção de mensagens trap SNMP em um contêiner dedicado. Isso é útil para controlar a escala em ambientes grandes, bem como para criar uma área de monitoramento distribuída com menor risco de interrupções completas se um contêiner falhar. Este processo não é suportado com a instalação do serviço Linux.
Observação: não é possível monitor traps v2c e v3 com o mesmo contêiner. Se quiser monitor ambas as versões de trap, você precisará lançar um contêiner secundário dedicado e configurar suas mensagens de trap para serem enviadas em uma porta não padrão. Por exemplo, se você tiver v2c traps já configurados na porta 162:
Configure suas armadilhas v3 para serem enviadas por outra porta, como 163.
Altere um pouco os argumentos do contêiner Docker, de -p 162:1620/udp para -p $src:1620/udp onde $src é a porta em que suas armadilhas v3 estão chegando.
Em um host Linux com Docker instalado, crie o arquivo de configuração que você usará para executar o contêiner:
bash
$
tee"./traps-base.yaml"> /dev/null <<'EOF'
$
devices: {}
$
trap:
$
listen: '0.0.0.0:1620'
$
discovery: {}
$
global:
$
poll_time_sec: 300
$
timeout_ms: 30000
$
EOF
Por padrão, o contêiner usará o endereço IP de origem como nomes de dispositivos no New Relic. Você pode controlar isso mapeando dispositivos manualmente em seu arquivo de configuração:
devices:
# This key and the corresponding 'device_name'
# need to be unique for each device
trap_device1:
device_name: trap_device1
device_ip: x.x.x.x/yy
provider: kentik-trap-device
trap:
listen:'0.0.0.0:1620'
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
Dica
Você também pode controlar nomes de dispositivos fornecendo um argumento de contêiner -dns em tempo de execução. Isso permitirá que o contêiner execute uma pesquisa no endereço IP de origem e tente a resolução de nomes.
Inicie o agente Monitoramento de rede para escutar mensagens de interceptação SNMP recebidas. Substitua $CONTAINER_SERVICE por um nome exclusivo para o contêiner e substitua$YOUR_NR_LICENSE_KEY e $YOUR_NR_ACCOUNT_ID pelos seus valores:
bash
$
docker run -d--name ktranslate-$CONTAINER_SERVICE--restart unless-stopped --pull=always -p162:1620/udp \
>
-v`pwd`/traps-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 \
>
-service_name=$CONTAINER_SERVICE\
>
nr1.snmp
Isso iniciará um contêiner que escutará mensagens de trap SNMP na porta 162/udp.
Investigue seus resultados no New Relic consultando o tipo de evento KSnmpTrap :
FROM KSnmpTrap SELECT*
Dica
É importante lembrar que as mensagens trap SNMP são geradas pelo dispositivo de origem. Se você não estiver vendo mensagens no New Relic, certifique-se de que seus dispositivos realmente criaram mensagens. A documentação do fornecedor sobre o envio de mensagens de amostra varia, mas você pode usar o snmptrap no seu host Docker para enviar uma mensagem de teste como esta:
bash
$
snmptrap -v 2c -c public localhost ''1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
Em um host Linux com Docker instalado, crie o arquivo de configuração que você usará para executar o contêiner:
bash
$
tee"./traps-base.yaml"> /dev/null <<'EOF'
$
devices: {}
$
trap:
$
listen: '0.0.0.0:1620'
$
discovery: {}
$
global:
$
poll_time_sec: 300
$
timeout_ms: 30000
$
EOF
Por padrão, o contêiner usará o endereço IP de origem como nomes de dispositivos no New Relic. Você pode controlar isso mapeando dispositivos manualmente em seu arquivo de configuração:
devices:
# This key and the corresponding 'device_name'
# need to be unique for each device
trap_device1:
device_name: trap_device1
device_ip: x.x.x.x/yy
provider: kentik-trap-device
trap:
listen:'0.0.0.0:1620'
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
Dica
Você também pode controlar nomes de dispositivos fornecendo um argumento de contêiner -dns em tempo de execução. Isso permitirá que o contêiner execute uma pesquisa no endereço IP de origem e tente a resolução de nomes.
O contêiner Rootless Podman não consegue se vincular a portas abaixo de 1024. Para lidar com o redirecionamento de pacotes para mensagens trap, você precisará criar uma regra iptables para que os pacotes de destino cheguem na porta UDP 162:
Inicie o agente Monitoramento de rede para escutar mensagens de interceptação SNMP recebidas. Substitua $CONTAINER_SERVICE por um nome exclusivo para o contêiner e substitua$YOUR_NR_LICENSE_KEY e $YOUR_NR_ACCOUNT_ID pelos seus valores:
bash
$
podman run -d--name ktranslate-$CONTAINER_SERVICE--userns=keep-id --restart unless-stopped --pull=always --net=host \
>
-v`pwd`/traps-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 \
>
-service_name=$CONTAINER_SERVICE\
>
nr1.snmp
Investigue seus resultados no New Relic consultando o tipo de evento KSnmpTrap :
FROM KSnmpTrap SELECT*
Dica
É importante lembrar que as mensagens trap SNMP são geradas pelo dispositivo de origem. Se você não estiver vendo mensagens no New Relic, certifique-se de que seus dispositivos realmente criaram mensagens. A documentação do fornecedor sobre o envio de mensagens de amostra varia, mas você pode usar o snmptrap no seu host Docker para enviar uma mensagem de teste como esta:
bash
$
snmptrap -v 2c -c public localhost ''1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
Qual é o próximo
Você pode configurar mais agentes para complementar seus dados SNMP: