Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configure um sensor de telemetria proxy NETCONF em Junos

Usando o streaming de telemetria Junos, você pode transformar qualquer informação de estado disponível em um sensor de telemetria por meio da funcionalidade Proxy XML. O protocolo de gerenciamento NETCONF XML e a API Junos XML documentam totalmente todas as opções para cada solicitação operacional do Junos OS suportada. Depois de configurar sensores proxy XML, você pode acessar dados por meio de chamadas de procedimento remoto (RPCs) da NETCONF.

Esta tarefa mostra como transmitir a saída de um comando de modo operacional Junos OS.

Melhores práticas:

Recomendamos não usar arquivos YANG que mapeiem um comando operacional Junos OS com saída extensa ou verbosa ou que seja lenta na produção de saída. Comandos com um atraso perceptível devem ser evitados em arquivos YANG. A inclusão desses comandos pode afetar outros sensores xmlproxyd, bem como o desempenho do xmlproxyd.

A saída de alguns comandos de modo operacional é dinâmica e o nível de sua verbosidade depende de fatores como a configuração e o hardware. Exemplos desses comandos incluem qualquer variação deshow interfaces, show route, show arp, , show bfde show ddos-protectionshow bgp.

Para verificar o nível de verbosidade de um comando, emita o command-name| display xml | count comando. Se a contagem de linha exceder um valor de 4000 linhas, o comando não será recomendado para streaming proxy XML. Esse valor é mais uma aproximação baseada em base interna. Pode ser menos dependente de vários fatores, como tipo de dispositivo, poder de processamento do dispositivo e a carga de CPU existente. Consequentemente, esse recurso precisa ser usado com base no desempenho do dispositivo.

Você pode emitir o comando command-name| display xml antes de usar um arquivo YANG que mapeia um comando de modo operacional Junos OS ou Junos OS Evolved para verificar se o comando produz saída XML válida e não contém tags, dados ou formatação inválidos.

Usar um arquivo YANG que mapeia para um comando verboso resulta em um ou mais dos seguintes:

  • A utilização da CPU do processo xmlproxyd permanece alta. Se o xmlproxyd tiver o rastreamento habilitado, a utilização da CPU será ainda maior.

  • Um aumento na utilização da memória do processo xmlproxyd.

  • O estado do processo xmlproxyd pode mostrar sbwait, indicando que a saída de comando é verbosa e que o xmlproxyd está gastando um tempo significativo lendo a saída de chamadas de procedimento remoto (RPC) do comando.

  • Os dados do sensor xmlproxyd não completam o envoltório.

  • O xmlproxyd transmite dados parciais ou não para os sensores.

  • O xmlproxyd perde ciclos de intervalo de relatórios. Os intervalos começam a se sobrepor por causa da saída verbosa de um comando, resultando em dados de streaming de sensores do xmlproxyd que são lentos ou atrasados.

  • O processo ou aplicativo que atende ao RPC do comando verbose pode mostrar altos números de CPU ou atrasos na execução das tarefas principais. Esse comportamento é causado quando o processo ou aplicativo está ocupado atendendo ao RPC que tem saída verbosa.

Essa tarefa requer o seguinte:

  • Uma Série MX, Série vMX ou roteador da Série PTX operando o Junos OS Release 17.3R2 ou posterior.

  • Instalação do pacote de agente de rede necessário (agente de rede-x86-32-17.4R1.16-C1.tgz ou posterior).

  • Um receptor de dados de telemetria, como o OpenNTI, para verificar a operação adequada do seu sensor de telemetria.

Nesta tarefa, você transmitirá o conteúdo do comando show system usersJunos OS.

mostrar usuários do sistema (Série vMX)

Além da lista esperada de usuários conectados atualmente, a show system users saída também oferece a carga média do sistema como 1, 5 e 15 minutos. Você pode encontrar as médias de carga usando o show system users | display xml comando para visualizar a marcação XML para os campos de saída. Veja <load-average-1>, <load-average-5>e <load-average-15> na saída de taging XML abaixo.

Ponta:

A uptime-information tag mostrada na saída anterior é um contêiner que contém folhas, como date-time, up-timee active-user-count. load-average-1 Abaixo está um arquivo YANG de amostra para este contêiner:

Ponta:

A uptime-information tag também tem outro contêiner com o nome user-table que contém uma lista de entradas de usuários.

Abaixo está um arquivo YANG de amostra para este contêiner:

Crie um arquivo YANG definido pelo usuário

O arquivo YANG define o comando Junos CLI a ser executado, o caminho de recursos em que os sensores são colocados e os pares de valor chave retirados das tags XML correspondentes.

Os arquivos YANG personalizados para o Junos OS estão em conformidade com a sintaxe de linguagem YANG definida no RFC 6020 YANG 1.0 YANG — Uma linguagem de modelagem de dados para o protocolo de configuração de rede (NETCONF) e RFC 7950 A linguagem de modelagem de dados YANG 1.1. Determinadas diretivas precisam estar presentes no arquivo que configuram o proxy XML.

Para usar o xmlproxyd processo (daemon) para traduzir dados de telemetria, crie um render.yang arquivo. Neste arquivo, a configuração dr:command-app é xmlproxyd.

O nome de arquivo e módulo XML proxy YANG deve começar com xmlproxyd_:

  • Para o nome de arquivo YANG de proxy XML, adicione a extensão .yang, por exemplo, xmlproxyd_sysusers.yang

  • Para o nome do módulo, use o nome do arquivo sem a extensão .yang, por exemplo, xmlproxyd_sysusers

Para simplificar a criação de um arquivo YANG, é mais fácil começar modificando um exemplo de trabalho.

  1. Forneça um nome para o módulo. O nome do módulo deve começar xmlproxyd_ e ser o mesmo nome do nome do arquivo YANG proxy XML.

    Por exemplo, para um arquivo YANG proxy XML chamado sysusers.yang, solte a .yang extensão e nomeie o módulo xmlproxyd_sysusers:

    module xmlproxyd_sysusers {

  2. Para a interface de telemetria Junos, inclua o nome xmlproxyddo processo (daemon):

    dr:command-app "xmlproxyd";

  3. Inclua o RPC a seguir para a solicitação do NETCONF:

    rpc juniper-netconf-get {

  4. Especifique a localização da saída do RPC, onde company-name está o nome que você dá ao local:

    dr:command-top-of-output "/company-name";

  5. Inclua o seguinte comando para executar o RPC:

    dr:command-full-name "drend juniper-netconf-get";

  6. Especifique o comando CLI do qual recuperar dados. O comando Junos OS CLI que é executado na frequência de amostra solicitada é definido dr:cli-command e executado pelo xmlproxyd daemon.

    Para recuperar a saída de comando para o comando show system usersJunos OS:

    dr:cli-command "show system users";

  7. Escalone privilégios, logotipo como "raiz", conecte-se ao soquete de gerenciamento interno via Telnet e especifique ajuda para um RPC:

    dr: command-help “default <get> rpc”;

    Quando isso é incluído no arquivo YANG, a saída que é útil para depuração é exibida na help drend saída no soquete de gerenciamento interno:

    200-juniper-netconf-get-0 system users <get> RPC

  8. Especifique a hierarquia e use o dr:source comando para mapear um contêiner, uma lista ou uma folha específica. O caminho absoluto sob o qual os sensores serão relatados é construído a partir do grupo junos de saída mais system-users-information, concatenado por /’. O caminho /junos/system-users-information/ é o caminho para consultar informações sobre este sensor personalizado.
    Aviso:

    Você não deve criar um modelo YANG personalizado que conflitua ou se sobrepõe a caminhos nativos predefinidos (caminhos definidos pela Juniper) e caminhos OpenConfig (recursos). Fazer isso pode resultar em um comportamento indefinido.

    Por exemplo, não crie um modelo que defina novos leafs em ou aumente nós para caminhos de recursos como /junos/system/linecard/firewallou /interfaces.

    Um mapeamento de um a um entre contêiner, leafs e a tag XML ou valor da saída de comando CLI é definido no agrupamento referenciado por uses dentro do contêiner de saída. Um agrupamento pode ser referido várias vezes em diferentes saídas de contêiner. O contêiner system-users-information abaixo usa as informações do sistema de agrupamento de usuários do sistema. No entanto, ele é definido sem o mapeamento um-a-um supracitado para cada contêiner, lista e leaf para uma tag XML de saída a partir da saída XML de comando CLI.

  9. O arquivo YANG a seguir mostra como incluir esses comandos para permitir que o xmlproxyd processo recuperar todo o estado operacional e mapeá-lo para as folhas no próprio modelo de dados da Juniper:

Carregue o arquivo Yang em Junos

Após a conclusão do arquivo YANG, faça o upload do arquivo YANG e verifique se o módulo foi criado.

  1. Envie o arquivo YANG para o roteador.
  2. Registre o arquivo YANG usando o request system yang add package comando.
    Nota:

    A partir do Junos OS Release 18.3R1, adicionar, excluir ou atualizar pacotes YANG no modo de configuração com o run comando não é suportado.

  3. Verifique se o módulo (sensor) está registrado usando o show system yang package sysusers comando, onde sysusers está o nome do pacote:
  4. Habilite o gRPC na configuração do Junos OS:

Coletar dados do sensor

Use seu coletor favorito para retirar os dados do sensor de telemetria recém-criado do dispositivo.

Considere as restrições de recursos antes de iniciar sensores:

  • Evite especificar o mesmo intervalo de relatórios para vários sensores proxy XML.
  • Para PTX10008 roteadores que operam o Junos OS Evolved, não conectem mais de 10 coletores por roteador para RPCs de telemetria.
  • Como o xmlproxyd realiza O XML e o processamento de texto, um dispositivo deve conter apenas sensores proxy XML que são executados dentro do intervalo de utilização da CPU.

As instruções a seguir usam o jtimon do coletor. Para obter informações sobre a configuração do jtimon, consulte o cliente da Interface de Telemetria Junos.

Nota:

Se uma assinatura já existir para um sensor e uma assinatura duplicada estiver configurada, a conexão entre o coletor e o dispositivo será fechada com a mensagem AlreadyExistsde erro.

  1. Crie um arquivo de configuração simples, aqui com o nome vmx1.json. Ajuste o endereço IP do host e a porta, conforme necessário. O caminho /junos/system-users-information está especificado. O freq campo é definido na MicroSoft, transmitindo um novo conjunto de pares de valor chave a cada 5 segundos. Opcionalmente, você pode adicionar vários caminhos.
  2. Inicie o coletor, usando seu próprio arquivo compilado ou uma imagem construída automaticamente do Docker Hub. A saída de consulta de amostra abaixo mostra o relatório do sensor por caminho. Cada chave é enviada em forma legível pelo ser humano como um caminho absoluto. No caso de listas, o caminho absoluto contém um índice na forma de XPATH que é ideal para valores de grupo a partir de um banco de dados (série tempo), como o InfluxDB. Por exemplo, a saída abaixo mostra o caminho /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/.

    Você pode encerrar o fluxo de dados dos sensores usando Ctrl-C.

    A consulta de amostra mostrada abaixo mostra dois relatórios de sensores por caminho, e então eu terminei com Ctrl-C. Cada chave é enviada em forma legível por humanos como um caminho absoluto e, no caso de listas, contém um índice na forma de XPATH, ideal para valores de grupo a partir de um banco de dados (série de tempo), como o InfluxDB, por ex., /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/

  3. Verifique se o módulo (sensor) está carregado usando o show system yang package sysusers comando, onde sysusers está o nome do pacote:
  4. Habilite o gRPC na configuração do Junos OS:

Instalação de um arquivo YANG definido pelo usuário

Para adicionar, validar, modificar ou excluir um arquivo YANG definido pelo usuário para proxy XML para a interface de telemetria Junos, use o request system yang conjunto de comandos do modo operacional:

  1. Especifique o nome do arquivo YANG proxy XML e o caminho de arquivo para instalá-lo. Esse comando cria um .json arquivo no /opt/lib/render diretório.
    Nota:

    Esse comando só pode ser executado no mecanismo de roteamento atual.

    Para adicionar vários módulos YANG com o request system yang add package package-name proxy-xml module comando, inclua os file-path-name parênteses: [ file-path-name 1 file-path-name 2 ]

  2. (Opcional) Valide um módulo antes de adicioná-lo ao roteador usando o request system yang validate proxy-xml module module-name comando. .

    A saída XML proxy YANG module validation for xmlproxyd_<module-name> : SUCCESS indica validação bem-sucedida do módulo.

    Às vezes, ocorrem erros de incompatibilidade. Se o comando retornar o erro abaixo, você pode eliminar o erro usando o Junos OS Release 17.3R2 ou posterior:

  3. (Opcional) Atualize um arquivo YANG proxy XML existente que foi adicionado anteriormente.
  4. Exclua um arquivo YANG proxy XML existente.
  5. Verifique se o arquivo YANG foi instalado entrando no show system yang package comando.

Solucionar problemas de sensores de telemetria

Problema

Descrição

Use os seguintes métodos para solucionar problemas de sensores de telemetria definidos pelo usuário:

  • Execute um tcpdump para a interface de que suas solicitações de gRPC vieram (para esta tarefa, a interface fxp0 foi usada).

  • Habilite traceoptions usando o set services analytics traceoptions flag xmlproxy comando. Verifique o xmlproxyd arquivo de log para obter a confirmação de se o RPC do comando CLI foi enviado e se uma resposta foi recebida:

  1. Emita o show log xmlproxyd comando para mostrar o log xmlproxyd. O valor para o campo xmlproxy_execute_cli_command: indica se o RPC foi enviado ou não. O valor para o campo xmlproxy_build_context indica o comando.