Se você quiser explorar todas as opções que pode usar ao configurar o monitoramento da sua rede, consulte as seções a seguir.
snmp-base.yaml
Aqui está um exemplo das diversas opções de configuração disponíveis no arquivo snmp-base.yaml usado pela imagem Docker ktranslate para pesquisar dispositivos SNMP e de dados de fluxo. Você também pode ver um exemplo muito comentado no repositório KTranslate no GitHub.
# Configuration of every device monitored by this container
Indica se o log de nível de depuração deve ser ativado durante a sondagem SNMP. Por padrão, está definido como false.
port
Porta para onde enviar consulta SNMP. Por padrão, está definido como porta 161.
oid
✓ (Obrigatório para pesquisa SNMP)
O systemObjectID | sysObjectID | sysOID descoberto para o dispositivo. Isso é usado para combinar o dispositivo com um perfil SNMP conhecido e definir o atributo provider . Se nenhuma correspondência for encontrada, isso define o provider como um dispositivo padrão do Kentik .
descrição
O sysDescr descoberto do dispositivo. Este campo é informativo.
last_checked
Timestamp em que este dispositivo foi descoberto pela última vez pela imagem do Docker ktranslate. Este campo é informativo.
mib_profile
✓ (Obrigatório para pesquisa SNMP)
Arquivo de perfil SNMP que foi associado a este dispositivo durante a execução da descoberta com base em seu sysOID. If this starts with a bang (!) token, it will override the automatic matching from the sysOID and use a manual override. Ex: "!cisco-asa.yml" (aspas são obrigatórias).
provider
✓ (Obrigatório para New Relic)
Valor usado durante a síntese da entidade para New Relic. Isso é criado automaticamente com base no mib_profile correspondente e deve corresponder a uma das regras no repositório de definições de entidade para que uma entidade seja criada. Se estiver adicionando dispositivos manualmente, você precisará tomar cuidado para garantir que esse valor seja válido.
poll_time_sec
Indica a frequência de pesquisa SNMP em segundos. Esta configuração é usada para substituir o atributo global.poll_time_sec .
novas tentativas
Indica o número de tentativas de tentar novamente a pesquisa de OIDs SNMP. Esta configuração é usada para substituir o atributo global.retries .
timeout_ms
Indica o tempo limite de sondagem SNMP em milissegundos. Esta configuração é usada para substituir o atributo global.timeout_ms .
user_tags
key:value pair atributo para dar mais contexto ao dispositivo. tag neste nível será anexada a qualquer tag aplicada no atributo global.user_tags .
discovered_mibs
Lista de MIBs extraídos de mib_profile correspondentes aos quais este dispositivo pode responder. Este campo é informativo.
engine_id
O ID exclusivo do mecanismo descoberto para o agente SNMP deste dispositivo. Geralmente encontrado durante a descoberta do SNMP v3. Este campo é informativo.
match_attributes
attribute:regex pares para adicionar métricas à lista de permissões. Os pares neste nível serão anexados a quaisquer pares aplicados no atributo global.match_attributes . Usa a sintaxe RE2 e possui um operador OR padrão. Chave de prefixo com ! para forçar os operadores AND .
monitor_admin_shut
Indica se as interfaces devem monitor no status Administratively Shutdown. Por padrão, está definido como false.
no_use_bulkwalkall
Desativa a ação de solicitação SNMP GETBULK quando true. Por padrão, está definido como false.
response_time
Indica se a sondagem do tempo de resposta está habilitada para este dispositivo. Por padrão, está definido como false.
ping_only
Desativa todas as pesquisas SNMP e ativa a pesquisa de tempo de resposta para este dispositivo quando true. Esta configuração substituirá o atributo global.response_time . Por padrão, está definido como false. Você vai querer ter certeza de ter incluído a linha provider: kentik_ping para cada dispositivo ping_only.
ping_interval_sec
Essa configuração é usada para substituir a taxa padrão de 1 pacote/s usada durante ping_only | response_time votação.
flow_only
Desativa todas as pesquisas SNMP quando true. Por padrão, está definido como false.
purge_after_num
Remove o dispositivo do arquivo de configuração após a falha dos trabalhos de descoberta agendados do X. This setting overrides the global purge_devices_after_num setting. Defina como -1 para manter o dispositivo para sempre ou qualquer número inteiro >= 1 para configurar um limite de eliminação. (Padrão: 0)
Desativa todas as pesquisas SNMP para esta configuração device_name . Padrão: false.
Nome da chave
Obrigatório
Descrição
ouvir
✓
Porta IP de escuta para receber traps SNMP. Por padrão, ele é definido como 0.0.0.0:1620 e usamos um redirecionamento no comando docker run ... para redirecionar o UDP 162 mais comum no host para o UDP 1620 no contêiner. O redirecionamento é feito com este sinalizador -p 162:1620/udp
comunidade
Cadeia de caracteres da comunidade SNMPv1/v2c para receber traps SNMP. Por padrão, ainda processamos traps recebidos mesmo que eles não correspondam a esta comunidade.
versão
Versão SNMP a ser usada. As opções são v1, v2c e v3. Por padrão, está definido como v2c.
transporte
Protocolo de transporte SNMP a ser usado. As opções são TCP e UDP. Por padrão, está definido como UDP
Definir isso como true impedirá que o contêiner tente qualquer pesquisa SNMP ou ICMP, usada nos casos em que você deseja um contêiner que escute apenas interceptações recebidas.
drop_undefined
Definir isso como true impedirá que o contêiner encaminhe quaisquer mensagens de interceptação SNMP que não estejam explicitamente definidas em um perfil SNMP existente. (Padrão: false)
Matriz de endereços IP que você deseja ignorar explicitamente durante todos os trabalhos de descoberta.
depurar
Indica se o log de nível de depuração deve ser habilitado durante a descoberta. Por padrão, está definido como false
ports
✓
Matriz de portas de destino a serem varridas durante a votação SNMP.
default_communities
✓ (Obrigatório para SNMPv1/2c)
Matriz de strings da comunidade SNMPv1/v2c para varredura durante a pesquisa SNMP. Essa matriz é avaliada em ordem e a descoberta aceita a primeira comunidade que passa.
use_snmp_v1
✓ (Obrigatório para SNMPv1)
Indica se o SNMPv1 deve ser usado durante a descoberta. Por padrão, está definido como false
Múltiplas configurações SNMPv3 para varredura durante a pesquisa SNMP. Use this option OR default_v3, not both
add_devices
✓
Indica se os dispositivos descobertos devem ser adicionados à seção devices do arquivo snmp-base.yaml . Por padrão, está definido como true.
add_mibs
✓
Indica se MIBs descobertos devem ser incluídos na seção global.mibs_enabled do arquivo snmp-base.yaml . Por padrão, está definido como true.
tópicos
✓
Limite inteiro de threads a serem usados durante a descoberta. Deve ser menor que o número de núcleos disponíveis para o contêiner. Por padrão, está definido como 4.
replace_devices
✓
Indica se os dispositivos descobertos devem ser substituídos se eles já existirem na seção devices do arquivo snmp-base.yaml . Por padrão, está definido como true.
no_dedup_engine_id
Quando definido como true, desativa a desduplicação de dispositivos descobertos se parecer que eles são o mesmo dispositivo, com base no ID do mecanismo SNMP relatado. Por padrão, está definido como false
check_all_ips
Quando definido como true, força o trabalho de descoberta a tentar a conectividade SNMP em todos os endereços IP de destino da matriz cidrs , sem verificar primeiro a atividade por meio da varredura de porta TCP. Essa configuração desacelerará os trabalhos de descoberta, mas pode ajudar a contornar problemas em que a descoberta falha em dispositivos que não estão listados na matriz cidrs com substituições /32 . Por padrão, está definido como false
Nome da chave
Obrigatório
Descrição
poll_time_sec
✓
Tempo em segundos para pesquisar dispositivos. Isso pode ser substituído por dispositivo usando o atributo devices.<deviceName>.poll_time_sec . Por padrão, está definido como 60.
drop_if_outside_poll
Indica se todos os valores deste ciclo serão eliminados se a sondagem demorar mais que o valor definido em poll_time_sec. Por padrão, está definido como false.
mib_profile_dir
Diretório para encontrar perfis MIB selecionados. Eles são extraídos automaticamente para a imagem ktranslate do repositório snmp-profiles do Kentik e podem ser substituídos no tempo de execução Docker criando uma montagem de volume de seu próprio diretório local de perfis.
mibs_db
mibs_enabled
✓
Matriz de todos os MIBs ativos a imagem Docker ktranslate pesquisará. Esta lista será gerada automaticamente durante a descoberta se o atributo discovery_add_mibs for true. Os MIBs não listados aqui não serão pesquisados em nenhum dispositivo no arquivo de configuração. Você pode especificar uma tabela SNMP diretamente em um arquivo MIB usando a sintaxe MIB-NAME.tableName . Exemplo: HOST-RESOURCES-MIB.hrProcessorTable.
timeout_ms
✓
Tempo em milissegundos Tempo limite da consulta SNMP. Isso pode ser substituído por dispositivo usando o atributo devices.<deviceName>.timeout_ms . Por padrão, está definido como 3000.
novas tentativas
✓
Número de tentativas de repetir pesquisas SNMP com falha. Isso pode ser substituído por dispositivo usando o atributo devices.<deviceName>.retries . Por padrão, está definido como 0.
user_tags
key:value pair atributo para dar mais contexto ao dispositivo. tag neste nível será aplicada a todos os dispositivos no arquivo de configuração.
match_attributes
attribute:regex pares para adicionar métricas à lista de permissões. Os pares neste nível serão comparados com todos os dispositivos no arquivo de configuração. Usa a sintaxe RE2 e possui um operador OR padrão. Chave de prefixo com ! para forçar os operadores AND .
response_time
Indica se a sondagem do tempo de resposta está habilitada para todos os dispositivos no arquivo de configuração. Por padrão, está definido como false.
purge_devices_after_num
Remove dispositivos do arquivo de configuração após a falha dos trabalhos de descoberta agendados do X. Defina como -1 para manter os dispositivos para sempre ou qualquer número inteiro >= 1 para configurar um limite de eliminação. Por padrão, está definido como 0.
SNMPv1 e SNMPv2c não suportam o uso de segredos de nuvem, pois os próprios protocolos enviam suas strings de comunidade por meio de texto simples por padrão. Se você estiver preocupado com a segurança da sua autenticação SNMP, atualize para usar o SNMPv3.
Para usar AWS Secrets Manager, você precisará definir as três variáveis ambientais a seguir e fornecê-las ao Docker em tempo de execução:
Nome
Descrição
AWS_ACCESS_KEY_ID
Especifica a chave de acesso da AWS usada como parte das credenciais para autenticar o usuário.
AWS_SECRET_ACCESS_KEY
Especifica a chave secreta da AWS usada como parte das credenciais para autenticar o usuário.
AWS_REGION
Especifica a região da AWS para a qual enviar solicitações.
Para usar o Azure Key Vault, você precisará definir as cinco variáveis ambientais a seguir e fornecê-las ao Docker em tempo de execução:
Dica
Você precisa definir KT_AZURE_KEY_VAULT_NAME ou KT_AZURE_KEY_VAULT_URL, não ambos. O padrão é usar KT_AZURE_KEY_VAULT_NAME e o agente usará um padrão de URL comum: https://$KT_AZURE_KEY_VAULT_NAME.vault.azure.net/
Nome
Descrição
KT_AZURE_KEY_VAULT_NAME
O nome do cofre onde o segredo está armazenado.
KT_AZURE_KEY_VAULT_URL
URL completo opcional para chamada de API para destino.
Este é o segredo do cliente (senha) usado para a entidade de serviço durante a autenticação. Observe que esse ID é para o segredo do cliente value e não para o ID do segredo em si.
Para usar o GCP Secret Manager, você precisará definir a seguinte montagem de volume para um arquivo JSON de credencial junto com duas variáveis ambientais e fornecê-las ao Docker em tempo de execução:
Especifica o caminho do arquivo local para a chave da conta de serviço usada para autenticar o usuário. Este arquivo é montado em volume no contêiner Docker e depois referenciado na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
Protocolo de autenticação SNMPv3. Os valores possíveis são NoAuth, MD5 ou SHA
authentication_passphrase
Senha de autenticação SNMPv3
privacy_protocol
✓
Protocolo de privacidade SNMPv3. Os valores possíveis são NoPriv, DES, AES, AES192, AES256, AES192C ou AES256C
privacy_passphrase
Senha de privacidade SNMPv3
context_engine_id
ID do mecanismo de contexto SNMPv3
context_name
Nome do contexto SNMPv3
Exemplos:
Dica
O uso de segredos da AWS, Azure, do GCP também exigirá que você forneça as variáveis de ambiente adequadas e quaisquer outras informações de autenticação necessárias para que o agente consulte a API de destino.
Para suportar a execução de tarefas de descoberta com vários perfis SNMP v3, você pode substituir a chave discovery.default_v3 pela chave discovery.other_v3s , que contém uma matriz de configuração SNMPv3.
Isso também pode funcionar usando um gerenciador de segredos do provedor de nuvem. Um exemplo para AWS:
discovery:
other_v3s:
- aws.sm.$YOUR_SECRET_NAME_1
- aws.sm.$YOUR_SECRET_NAME_2
Configuração de pesquisa API
Dica
Você também pode usar segredos do provedor de nuvem na configuração de autenticação da API.
A integração Arista eAPI coleta telemetria BGP e MLAG adicional que normalmente não está disponível por meio de pesquisa SNMP.
Os detalhes do BGP são coletados deste comando: show ip bgp summary vrf all
NRQL para encontrar telemetria BGP:
FROM Metric SELECT
max(kentik.eapi.bgp.InMsgQueue)AS'InQ',// Messages Queued from the Neighbor
max(kentik.eapi.bgp.MsgReceived)AS'MsgSent',// Messages Received from the Neighbor
max(kentik.eapi.bgp.MsgSent)AS'MsgRcvd',// Messages Sent to the Neighbor
latest(peer_state)AS'State',// State of the BGP session
latest(kentik.eapi.bgp.UpDownTime)AS'Up/Down',// Period the BGP session has been in current state
latest(kentik.eapi.bgp.Version)AS'V'// BGP version number
FACET
entity.name AS'Device',
router_id AS'Device IP',
peer AS'BGP Peer',
peer_asn AS'BGP Peer ASN',
vrf AS'VRF Name'
Os detalhes do MLAG são coletados deste comando: show mlag detail
NRQL para encontrar telemetria MLAG:
FROM Metric SELECT
latest(kentik.eapi.mlag.PortsConfigured)AS'Ports Configured',// Count of MLAG ports currently configured
latest(kentik.eapi.mlag.PortsDisabled)AS'Ports Disabled',// Count of MLAG ports in 'Disabled' state
latest(kentik.eapi.mlag.PortsActivePartial)AS'Ports Active-partial',// Count of MLAG ports in 'Active-partial' state
latest(kentik.eapi.mlag.PortsInactive)AS'Ports Inactive',// Count of MLAG ports in 'Inactive' state
latest(kentik.eapi.mlag.PortsActiveFull)AS'Ports Active-full',// Count of MLAG ports in 'Active-full' state
latest(kentik.eapi.mlag.PortsErrdisabled)AS'Ports Err-disabled',// Count of MLAG ports in 'Err-disabled' state
latest(config_sanity)AS'Config-Sanity',// Current result of 'config-sanity' check
latest(state)AS'State',// Current MLAG state
latest(neg_status)AS'Negotiation Status',// Current negotiation status between switches
latest(peer_address)AS'Peer Address',// Address of MLAG peer
latest(peer_link)AS'Peer Link',// Link name for MLAG peer
latest(peer_link_status)AS'Peer Link Status',// Status of MLAG peer
latest(local_interface)AS'Local Interface',// Local interface used for MLAG configuration
latest(local_intf_status)AS'Local Interface Status'// Status of local interface used for MLAG configuration
FACET
entity.name AS'Device',
domain_id AS'MLAG Domain ID'
Opções de configuração
Nome da chave
Obrigatório
Descrição
eapi_config.username
✓
O nome de usuário a ser transmitido ao dispositivo para autenticar a autenticação eAPI.
eapi_config.password
✓
A senha a ser transmitida ao dispositivo para autenticar a autenticação eAPI.
eapi_config.transport
Especifica o tipo de transporte de conexão a ser usado. Os valores possíveis são https e http. Padrão: https.
eapi_config.port
✓
A porta TCP do endpoint para a conexão eAPI.
A integração API do painel Meraki extrai várias métricas relacionadas à integridade do seu ambiente Meraki. A combinação de opções de configuração permite que você configure diferentes cenários de monitoramento para suas necessidades e crie uma entidade na sua conta New Relic .
Organização métrica são recolhidas por defeito na métrica kentik.meraki.organization.Count que é utilizada exclusivamente para gerar a Meraki Organization entidade. Isto serve principalmente para permitir a visualização da hierarquia Meraki para alinhar redes e dispositivos à sua organização pai.
NRQL para encontrar telemetria de alteração de configuração da organização:
FROM KExtEvent SELECT*
meraki_config.preferences.show_network_attr: true
As métricas da rede são coletadas sob a métrica kentik.meraki.network.Count que é usada exclusivamente para gerar a entidade Meraki Network . Isto serve principalmente para permitir a visualização da hierarquia Meraki e alinhar os dispositivos à rede da qual são membros.
meraki_config.monitor_devices: true && meraki_config.preferences.device_status_only: true: Usa o Obter endpoint status do dispositivo da organização para listar o status de cada dispositivo Meraki na organização.
NRQL para encontrar telemetria de status do dispositivo:
FROM Metric SELECT
latest(status)AS'Device Status'// Current status of this device
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
src_addr AS'Device Public IP',
mac AS'Device MAC',
model AS'Device Model',
serialAS'Device Serial',
address AS'Device Address',
lat AS'Device Latitude',
lng AS'Device Longitude',
notes AS'Device Notes'
WHERE instrumentation.name ='meraki.device_status'
meraki_config.monitor_uplinks: true && meraki_config.preferences.hide_uplink_usage: false: Usa tanto o ponto de extremidade Obter status de uplinks da organização quanto o Uso de uplinks do dispositivo pela rede para listar o status de uplink e o desempenho de cada dispositivo Meraki séries MX, MG e Z na organização.
NRQL para encontrar telemetria de uplink do dispositivo:
FROM Metric SELECT
max(kentik.meraki.uplinks.LatencyMS)AS'Uplink Latency',// Uplink measured latency in milliseconds
max(kentik.meraki.uplinks.LossPct)AS'Uplink Loss %',// Uplink measured loss percentage
max(kentik.meraki.uplinks.Recv)AS'Uplink Receive Bytes',// Uplink bytes received
max(kentik.meraki.uplinks.Sent)AS'Uplink Transmit Bytes',// Uplink bytes sent
latest(status)AS'Uplink Status'// Latest status of the uplink
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
interface AS'Device Uplink Interface',
model AS'Device Model',
serialAS'Device Serial'
WHERE org_id ISNOTNULL
meraki_config.monitor_uplinks: true && meraki_config.preferences.hide_uplink_usage: true: Usa o Obter status de uplinks endpoint da organização para listar apenas o status de uplink de cada dispositivo Meraki série MX, MG e Z na organização.
NRQL para encontrar telemetria de status de uplink do dispositivo:
FROM Metric SELECT
latest(status)AS'Uplink Status'// Latest status of the uplink
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
interface AS'Device Uplink Interface',
model AS'Device Model',
serialAS'Device Serial'
WHERE org_id ISNOTNULL
meraki_config.monitor_vpn_status: true && meraki_config.preferences.show_vpn_peers: false: Usa o Obter status de VPN do Appliance endpoint da organização para mostrar os status de VPN nas redes da organização.
NRQL para encontrar a telemetria de status da VPN:
FROM Metric SELECT
latest(status)AS'VPN Status'// Latest status of this VPN
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
serialAS'Device Serial',
vpn_mode AS'VPN Mode',
wan1 OR wan2 AS'WAN Interface IP'
WHERE instrumentation.name ='meraki.vpn_status'
AND org_id ISNOTNULL
meraki_config.monitor_vpn_status: true && meraki_config.preferences.show_vpn_peers: true: Usa o Obter status de VPN do Appliance endpoint da organização para adicionar informações sobre pares de VPN nas redes da organização.
NRQL para encontrar telemetria de pares VPN:
FROM Metric SELECT
latest(status)AS'Peer Status'// Current status of this VPN peer
FACET
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
serialAS'Device Serial',
vpn_mode AS'VPN Mode',
wan1 AS'WAN 1 IP',
wan2 AS'WAN 2 IP',
peer_name AS'Peer Name',// Name of this peer
peer_reachability AS'Peer Reachability',// Latest results of reachability test for this peer
peer_network_id AS'Peer Network ID',// Network ID for this peer
peer_type AS'Peer Type'// Type of Peer (Meraki vs Third-party)
WHERE metricName ='kentik.meraki.vpn_status.PeerStatus'
Dica
Você pode usar a variável de ambiente KENTIK_MERAKI_API_KEY para passar sua chave de API para a integração Meraki sem armazená-la em texto simples em seu arquivo de configuração.
Configuração opcional que controla a frequência com que uma nova tentativa é tentada em solicitações de API que retornam um erro HTTP 429 . O intervalo entre novas tentativas é de 5 segundos.
meraki_config.monitor_devices
verdade | falso (Padrão: falso)
Monitor o status de cada dispositivo Meraki na organização.
meraki_config.monitor_org_changes
verdade | falso (Padrão: falso)
Monitorar o log de alterações da organização.
meraki_config.monitor_uplinks
verdade | falso (Padrão: verdadeiro)
Monitore o status e o desempenho do uplink de todos os dispositivos das séries Meraki MX, MG e Z na organização.
meraki_config.monitor_vpn_status
verdade | falso (Padrão: falso)
Monitorar os status da VPN nas redes da organização.
Estas opções permitem restringir o monitoramento a objetos de destino específicos em seu ambiente Meraki.
Filtra todo o monitoramento para uma lista específica de redes.
meraki_config.product_types
Os tipos válidos são sem fio, dispositivo, switch, SystemsManager, câmera, CellularGateway, sensor e CloudGateway. (Padrão: nulo)
Adiciona parâmetro à solicitação do monitor API para filtrar tipos específicos de dispositivos.
Estas opções permitem definir melhor os dados coletados nas principais opções de configuração. Várias combinações são descritas na seção de exemplos acima.
Nome da chave
Obrigatório
Entrada
Descrição
meraki_config.preferences.device_status_only
verdade | falso (Padrão: falso)
Obrigatório ao usar monitor_devices: true para restringir a pesquisa apenas a informações de status. (This is used to prevent timeout issues.)
meraki_config.preferences.hide_uplink_usage
verdade | falso (Padrão: falso)
Usado em combinação com monitor_uplinks para remover métricas de desempenho e retornar apenas informações de status para uplinks.
meraki_config.preferences.show_vpn_peers
verdade | falso (Padrão: falso)
Usado em combinação com monitor_vpn_status para adicionar telemetria em pares VPN.
meraki_config.preferences.show_network_attr
verdade | falso (Padrão: falso)
Usado para adicionar telemetria em redes. Necessário para criar Meraki Network entidade.
Exemplo de configuração mínima
# This represents the minimal configuration required for a container that only performs Meraki API polling.
# By default we only monitor uplinks. All other items are optional.
---
devices:
meraki_cloud_controller:
device_name: meraki_cloud_controller
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY"
trap:{}
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
Exemplos completos de configuração [#meraki-full-config]
Todas as opções necessárias para criar a entidade Meraki Organization, Meraki Network e Meraki Device .
devices:
meraki_dashboard_api:
device_name: meraki_controller
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key: $YOUR_MERAKI_API_KEY
monitor_devices:true
monitor_org_changes:true
monitor_uplinks:true
monitor_vpn_status:true
preferences:
device_status_only:true
hide_uplink_usage:false
show_vpn_peers:true
show_network_attr:true
trap:{}
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
Direcionando a chave de API do dashboard Meraki para vários
devices:
# Entity 1 - monitor everything this API key has access to
meraki_all:
device_name: meraki_all
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY_1"
max_http_retry:8
monitor_devices:true
monitor_org_changes:true
monitor_uplinks:true
monitor_vpn_status:true
preferences:
device_status_only:true
show_vpn_peers:true
hide_uplink_usage:false
# Entity 2 - Monitor these specific organizations under this API key
meraki_single_org:
device_name: meraki_single_org
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY_2"
monitor_devices:true
monitor_org_changes:true
monitor_uplinks:true
monitor_vpn_status:true
preferences:
device_status_only:true
show_vpn_peers:true
hide_uplink_usage:false
organizations:
-"Org 1 - Prod.*"
-"Org 2 - Staging"
# Entity 3 - Monitor specific devices filtered by organization, network, and product types; using the same API key from Entity 2
meraki_filtered:
device_name: meraki_filtered
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY_2"
monitor_devices:true
monitor_uplinks:false
preferences:
device_status_only:true
organizations:
-"Org 3 - Remote Sites"
networks:
-"Corp.*99"
-"Retail.*"
product_types:
- wireless
- appliance
trap:{}
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
Arquivos de configuração externos
Para oferecer suporte a uma ampla variedade de necessidades de configuração e automação, você pode usar arquivos externos montados em volume em seu contêiner Docker para desacoplar determinados elementos do arquivo de configuração padrão. Você precisará incluir o argumento mount abaixo no comando docker run , com um argumento por arquivo de configuração externo.
-v `pwd`/fileName.yaml:/fileName.yaml \
A sintaxe desses arquivos é "@fileName.yaml", incluindo as aspas duplas.
Exemplo:
discovery:
cidrs:"@cidrs.yaml"
O arquivo CIDRs deve usar uma sintaxe de lista YAML como esta:
- 10.10.0.0/24
- 10.20.0.0/24
- 192.168.0.21/32
Exemplo:
devices:
"@neteng-devices.yaml"
Os arquivos do dispositivo devem usar a mesma sintaxe da seção devices padrão do arquivo de configuração principal, omitindo os campos opcionais gerados durante a descoberta:
devices:
# Sample of SNMP v2c device
ups_snmpv2c__10.10.0.201:
device_name: ups_snmpv2c
device_ip: 10.10.0.201
snmp_comm: $YOUR_COMMUNITY_STRING
oid: .1.3.6.1.4.1.318.1.3.27
mib_profile: apc_ups.yml
provider: kentik-ups
poll_time_sec:300
retries:1
timeout_ms:5000
user_tags:
owning_team: dc_ops
O match_attributes
Para oferecer suporte à filtragem de dados que não criam valor para suas necessidades de observabilidade, você pode definir o mapa de atributos global.match_attributes.{} e/ou devices.[].match_attributes.{} .
Isso fornecerá filtragem no nível ktranslate , antes de enviar dados para o New Relic, proporcionando controle granular sobre o monitoramento de itens como interfaces.
O comportamento padrão deste mapa é uma condição OR , mas você pode substituí-la e forçar um operador AND prefixando o nome da sua chave com !. Isso também é útil para retornar apenas itens correspondentes e omitir todos os resultados null e "" (vazios).
Combine quando if_Alias começar com UplinkOR quando if_interface_name começar com Gig, mantenha todos os valores de null e "" :
devices:
deviceName:
...
match_attributes:
if_Alias:"^Uplink.*"
if_interface_name:"^Gig.*"
Combine quando if_Alias começar com UplinkAND quando if_interface_name começar com Gig, elimine todos os valores null e "" :
devices:
deviceName:
...
match_attributes:
if_Alias:"^Uplink.*"
"!if_interface_name":"^Gig.*"
Combine quando if_Alias começar com Uplink, elimine todos os valores null e "" :
devices:
deviceName:
...
match_attributes:
"!if_Alias":"^Uplink.*"
O pacote regex de Golang não suporta padrões de lookahead negativos (q(?!u)) por padrão. Como solução alternativa, você pode adicionar o token DOES_NOT_MATCH ao seu mapa de atributo para fornecer efetivamente os resultados inversos do seu padrão de correspondência.
Por exemplo, para corresponder em todas as interfaces que não incluem a string Uplink; você pode usar uma configuração como esta:
devices:
deviceName:
...
match_attributes:
"!if_Alias":"^Uplink.*"
DOES_NOT_MATCH:true
O response_time e ping_only
Para suportar o monitoramento de dispositivos onde as estatísticas de desempenho não estão acessíveis ou disponíveis, ou em casos simples onde o monitoramento do tempo de ida e volta (RTT) básico é necessário, você pode definir o atributo global.response_time ou devices.[].ping_only como true.
Este recurso usa o pacote go-ping para enviar pacotes ICMP (padrão) ou UDP sem privilégios para dispositivos a fim de coletar o tempo de ida e volta (RTT) médio, mínimo, máximo e desvio padrão. Este pacote também mostra a porcentagem de perda de pacotes para o endpoint com base no envio de um pacote/seg de ktranslate para o endereço IP do dispositivo, que pode ser substituído definindo o atributo devices.[].ping_interval_sec. Você pode alternar do uso padrão de pacotes ICMP privilegiados para UDP definindo a variável de ambiente KENTIK_PING_PRIV=false durante o tempo de execução do docker.
Definir o atributo global.response_time como true adicionará o monitoramento RTT à pesquisa SNMP existente. Para monitor dispositivos apenas com pacotes UDP|ICMP para RTT e sem sondagem SNMP, use devices.[].ping_only: true.
No New Relic, você pode ver os resultados desta pesquisa investigando a seguinte métrica:
FROM Metric SELECT
average(kentik.ping.AvgRttMs)AS'Average',
max(kentik.ping.MaxRttMs)AS'Max',
min(kentik.ping.MinRttMs)AS'Min',
average(kentik.ping.StdDevRtt)AS'StdDev',
latest(kentik.ping.PacketLossPct)AS'Packet Loss %'
FACET device_name
Dica
Você pode usar o atributo ping_only em substituição ao atributo flow_only se desejar coletar a métrica RTT de um dispositivo de fluxo. Se ping_only e flow_only forem true, o dispositivo será tratado como um dispositivo flow_only .
O flow_only
Para oferecer suporte ao monitoramento de dispositivos onde você deseja coletar apenas dados de fluxo, você pode definir o atributo devices.<deviceName>.flow_only como true.
Isso gerará uma entidade Flow Device que terá telemetria apenas no namespace do evento KFlow . Como alternativa, a coleta de telemetria de fluxo de um dispositivo que está em seu arquivo de configuração como um dispositivo SNMP adicionará a decoração dos dados KFlow à entidade pré-existente, como Router ou Firewall.
No New Relic, você pode ver os resultados desta pesquisa investigando o seguinte evento:
FROM KFlow SELECT*
WHERE instrumentation.name ='netflow-events'
Aplicativo de mapeamento de dados de fluxo
Por padrão, a telemetria de fluxo é mapeada para um aplicativo conhecido com base na avaliação da porta da camada 4 em uso em uma conversa de fluxo específica. Se necessário, você pode substituir o mapeamento padrão fornecendo um arquivo YAML durante o tempo de execução Docker para a sinalização -application_map. Isso permitirá que você especifique nomes de aplicativos com base nas portas que você identificar.
Sintaxe de exemplo:
applications:
-ports:[9092,9093]
name: kafka
-ports:[80,8080]
name: http
-ports:[443,8443]
name: https
Filtragem de entrada de dados de fluxo
Por padrão, o contêiner de dados de fluxo coletará e processará cada pacote de fluxo recebido. Se necessário, você pode adicionar um filtro de inclusão à sinalização -nf.source que ignorará todo o tráfego que não corresponda ao filtro fornecido.
Sintaxe: --filters $TYPE,$FIELD,$FUNCTION,$MATCH
Nome do argumento
Obrigatório
Descrição
$TIPO
✓
O tipo de filtro a ser aplicado. Os valores possíveis são string, int e addr.
$ CAMPO
✓
O nome do campo para avaliar o padrão de correspondência.
$FUNÇÃO
✓
O tipo de função a ser usada durante a avaliação. Os valores possíveis são Equal: ==, NotEqual: !=, LessThan: <, GreaterThan: >, Contains: %
$MATCH
✓
O valor a ser usado como padrão de correspondência.
Colete dados de fluxo apenas de endereços de origem no intervalo CIDR 10.0.0.0/24
Colete apenas dados de fluxo de endereços de origem no intervalo CIDR 10.0.0.0/24 E onde a porta de destino não seja igual a 8531 (operador AND implícito)
Por padrão, o contêiner Docker ktranslate deve ser destruído e reconstruído manualmente para incorporar alterações nos perfis SNMP no caminho mib_profile_dir. Este é um comportamento normal na maioria das implantações, pois a imagem Docker extrai os perfis mais recentes disponíveis no repositório público de perfis snmp. Em situações em que você fornece perfis personalizados, você pode usar a configuração watch_profile_changes para permitir que o contêiner atualize automaticamente as configurações subjacentes e os perfis SNMP do contêiner.
Importante
Isso não é recursivo devido a uma limitação na biblioteca do observador. Portanto, se um perfil for alterado em um subdiretório, você também deverá editar um arquivo de nível superior para acionar a alteração.
Assumindo esta estrutura de diretórios:
.
└── /snmp-profiles/
└── profiles/
└── kentik-snmp/
├── 3com
├── _general
├── a10networks
└── ...
Você precisará colocar um novo arquivo na raiz do diretório e alterá-lo manualmente para acionar este ciclo de atualização. Uma maneira fácil de implementar isso é simplesmente gravar um timestamp em um arquivo como last_updated.txt quando sua alteração for enviada.