Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Decodtura de dados de interface de telemetria Junos com utilitários UNIX

Você pode usar serviços unix para decodificar dados da interface de telemetria Junos em um servidor, ou coletor, que é streaming de dados de um dispositivo Juniper Networks. O exemplo nesta seção mostra como decodificar um único pacote de dados transmitidos.

Preparando o coletor para decodificar dados

Este exemplo requer o seguinte:

  • OS UNIX com o utilitário Netcat (nc).

  • Compilador de buffers de protocolo.

  • Arquivos de buffer de protocolo de interface de telemetria Junos.

Esse procedimento mostra como preparar o coletor para decodificar dados usando o Ubuntu OS.

  1. Instale o utilitário Netcat.

  2. Instale o compilador de buffers de protocolo.

  3. Instale os buffers de protocolo na biblioteca do desenvolvedor.

  4. Verifique se os arquivos da biblioteca estão instalados.

  5. Baixe e instale a versão mais recente dos arquivos buffers de protocolo de interface de telemetria Junos.

    De um navegador web, navegue até o software All Junos Platforms baixe URL na página da Juniper Networks: https://www.juniper.net/support/downloads/. Depois de selecionar o nome da plataforma Junos OS e o número de lançamento, acesse a seção Ferramentas e baixe o pacote de Arquivos de modelo de dados da interface de telemetria Junos .

    Nota:

    Não se esqueça de observar a localização dos arquivos extraídos.

Decodagem de dados sobre o coletor

Este procedimento mostra como capturar dados, decodificar dados brutos e usar os arquivos buffers de protocolo para decodificar dados.

Para decodificar dados:

  1. Capture os dados.

    Execute netcat em um servidor de telemetria de streaming de destino, ou coletor, no modo de ouvidor UDP para armazenar todos os datagramas de entrada em um arquivo. Use o número da porta de destino configurado em perfil de servidor de streaming em seu dispositivo Juniper Networks.

    Nota:

    Este comando armazena datagramas em um arquivo chamado data.gpb. Execute este programa para capturar dados. Quando você quiser parar de receber dados, pare com o programa enviando o sinal de interrupção (Control + C)

  2. Decodificar dados brutos.

    Nota:

    Essa etapa é opcional. Não é necessário saber o tipo de mensagem codificada dos dados.

    Decodifica a mensagem do data.gpb arquivo.

    A próxima estrutura aninhada sob 2636 identifica o tipo de sensor. O valor 2636 numérico identifica a JuniperNetworksSensor mensagem, que é definida no telemetry_top.proto arquivo. Neste exemplo, o identificador 7 numérico corresponde à LogicalPort mensagem definida no logical_port.proto arquivo. Use essas informações na próxima etapa para gerar uma saída mais detalhada.

  3. Decodifica a mensagem para incluir nomes de campo.

    Execute o compilador de buffers de protocolo com a opção de decodificação. Além disso, especifique o tipo de mensagem de nível superior (TelemetryStream) e o arquivo com a definição da mensagem, logical_port.proto. Você também deve incluir a biblioteca de buffers de protocolo Goggle (gpb).

Decodizando dados UDP de interface de telemetria Junos no coletor

O coletor deve iniciar um ouvidor no endereço remoto ou na combinação de portas para ler os dados de entrada. Os dados de entrada podem ser decodificados usando o telemetry_top.proto e os arquivos proto do sensor.

Para simplificar o procedimento de decodificação, os coletores podem carregar todos os arquivos proto enviados como parte do pacote de software de telemetria para decodificar os dados de entrada.

Nota:
  1. Verifique os dados de streaming em interfaces de gerenciamento e WAN. Especifique o endereço apropriado no perfil do servidor de streaming.
  2. Enums e float são transmitidos como strings para streaming UDP. Os Enums serão retidos como strings, pois o gNMI usa o mesmo formato.
  3. O manuseio do tipo de dados flutuantes é escopo para uma versão futura.

Quando os dados de telemetria forem transmitidos por UDP, certifique-se de que os dados sejam decodificados corretamente e os campos desconhecidos não sejam decodificados no coletor.

Abaixo estão alguns problemas observados ao transmitir dados de telemetria por UDP:

  1. Decodagem incorreta: a decodagem incorreta implica que os dados de telemetria não são transmitidos corretamente por UDP. No exemplo a seguir, os dados destacados em negrito indicam que os dados não foram decodificados corretamente. Esse comportamento deve-se à codificação incorreta ou à embalagem errada de arquivos proto.

    Abaixo está o exemplo dos dados que estão sendo decodificados corretamente:

  2. Streaming de dados incompleto: o streaming de dados incompletos deve ser verificado por meio da validação de dados no arquivo de saída.