| (3 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| Linha 19: | Linha 19: | ||
<br> | <br> | ||
'''''Telemetria''''' | |||
<br> | Com o aumento exponencial de componentes das rede de internet, foi necessário desenvolver um método que apresentasse um melhor desempenho para a análise do que é chamado de “saúde da rede” (ou network’s health). Os métodos tradicionais de gerenciamento de redes consiste da utilização de protocolos denominados pull model, como por exemplo SNMP, CLI e Syslog. | ||
Os modelos do tipo pull limitam em muito a escalabilidade, pois para obter as informações dos dispositivos que compõem a rede é necessário que seja feito o requerimento (request) dessas informações. Estes métodos não são escaláveis caso se queira, por exemplo, obter dados em tempo real (ou uma aplicação próxima ao tempo real), ou caso a rede possua uma quantidade muito grande de componentes. | |||
A telemetria ultrapassa esses limites baseando-se no push model que entregará dados de modo assíncrono, eliminando a necessidade do pulling. Neste caso, faz-se o request da informação apenas uma vez para o dispositivo da rede que realizará stream dos dados em um intervalo de tempo configurado, de modo a obter-se os dados praticamente em tempo real. | |||
'''''Junos Telemetry Interface (JTI)''''' | |||
Nos dispositivos da Juniper, é possível fazer a configuração de sensors (ou sensores) que coletam e exportam os dados de vários tipos de recursos pertencentes ao dispositivo de rede, como de interfaces físicas, utilização de memória, temperatura, etc. Dois modelos de dados são possíveis, sendo que cada um utiliza um diferente tipo de transporte. | |||
Utilizando o UDP, os natives sensors exportam dados próximos à fonte, como da unidade de processamento de rede (NPU). O modelo de dados é definido pela Juniper Networks, que é aberto e extensível. | |||
Por meio de chamadas de procedimento remoto gRPC (gRPC) que exportam dados por meio do mecanismo de roteamento. O modelo de dados é definido pelo OpenConfig, que suporta o uso de modelos de dados vendor-neutral para configurar e gerenciar a rede. O OpenConfig para o Junos OS suporta os modelos de dados YANG. Para plataformas que estão rodando uma versão do Junos OS baseada apenas em um kernel atualizado do FreeBSD, você deve instalar um pacote separado chamado Network Agent que funciona como um servidor gRPC e termina as interfaces RPC. Para todas as outras versões do Junos OS, a funcionalidade do Network Agent está incorporada no software. Você também deve instalar o módulo OpenConfig para o Junos OS e os modelos YANG. | |||
'''''Native Sensors''''' | |||
Os native sensors (ou sensores nativos) exportam dados utilizando o protocolo UDP. Os dados do sensor são estruturados em uma mensagem protobuf (um método criado para serialização de dados estruturados). Este método foi desenvolvido pelo Google e disponibiliza um gerador de códigos para várias linguagens sendo este de código aberto. O método serve como base para uma chamada de procedimento remoto (RPC - remote procedure call). Para realizar a decodificação dos arquivos gerados, é necessário baixar, no site da Juniper, arquivos .protos relacionados com a série e a versão do Junos OS do dispositivo no qual a telemetria será implementada. | |||
Para monitorar um recurso específico de um dispositivo, é necessário configurar um sensor. A configuração de cada sensor depende de três componentes principais: | |||
'''Sensor profile''' - habilita o monitoramento de um dado recurso do dispositivo e permite que seja setado determinados parâmetros como o servidor para o qual serão enviados os dados de telemetria; | |||
'''Export profile''' - especifica os atributos para o processo de exportação dos dados coletados, como o protocolo de transporte a ser usado (normalmente UDP) e o intervalo no qual os dados são coletados; | |||
'''Streaming server profile''' - especifica o servidor para coleta de dados e parâmetros relacionados, incluindo o endereço IP e o número da porta de destino. | |||
'''''Configurando um Export profile''''' | |||
Um export profile (ou perfil de exportação) define os parâmetros do processo de exportação de dados gerados através da Junos Telemetry Interface. Deve-se configurar pelo menos um perfil de exportação, mas é possível a configuração de vários perfis de exportação. Cada perfil de exportação pode ser associado a vários perfis de sensores. No entanto, é possível associar apenas um perfil de exportação a um perfil de sensor específico. | |||
1. Especificar um nome para o perfil de exportação | |||
[edit services analytics] | |||
user@host# set export-profile '''name''' | |||
2. Especificar o endereço de IP da fonte dos pacotes que serão exportados | |||
[edit services analytics export-profile name] | |||
user@host# set local-address '''ip-address''' | |||
3. Especificar o número da porta utilizado para os pacotes exportados | |||
[edit services analytics export-profile name] | |||
user@host# set local-port '''number''' | |||
4. Especificar o intervalo, em segundos, no qual o sensor gerará os dados de telemetria | |||
[edit services analytics export-profile name] | |||
user@host# set reporting-rate '''seconds''' | |||
5. Especificar o formato que definirá a estrutura dos dados exportados | |||
[edit services analytics export-profile name] | |||
user@host# set format '''gpb''' | |||
6. Especificar o protocolo de transporte que carregará os dados de telemetria no pacote IP | |||
[edit services analytics export-profile name] | |||
user@host# set transport '''protocol-name''' | |||
7. (Opcional) Especificar o valor do DiffServ code point (DSCP) atribuído aos pacotes exportados | |||
[edit services analytics export-profile name] | |||
user@host# set dscp '''value''' | |||
8. (Opcional) Especificar a forwarding class para atribuir aos pacotes exportados | |||
[edit services analytics export-profile name] | |||
user@host# set forwarding-class '''class-name''' | |||
9. (Opcional) (Apenas roteadores da série MX e Junos OS Release 17.3R1 ou mais recentes) Especificar uma prioridade de perda de pacotes para atribuir aos pacotes exportados | |||
[edit services analytics export-profile name] | |||
user@host# set loss-priority '''(low | high | medium-low | medium-high)''' | |||
'''''Configurando um Streaming Server Profile''''' | |||
Um streaming server profile (ou perfil de servidor) define os parâmetros do servidor que coleta dados de telemetria exportados. Pode-se definir mais de um perfil de servidor. Também é possível associar o mesmo perfil de servidor a mais de um perfil de sensor. A partir do Junos OS Release 15.1F6, é possível associar mais de um servidor a um sensor específico. | |||
1. Especificar o nome do servidor streaming | |||
[edit services analytics] | |||
user@host# set streaming-server '''server-name''' | |||
2. Especificar o endereço IP de destino para os pacotes exportados | |||
[edit services analytics streaming-server server-name] | |||
user@host# set remote-address '''ip-address''' | |||
3. Especificar uma porta de destino para os pacotes exportados | |||
[edit services analytics streaming-server server-name] | |||
user@host# set remote-port '''number''' | |||
'''''Configurando um Sensor Profile''''' | |||
Um sensor profile (ou perfil de sensor) define os parâmetros do recurso do sistema para monitorar e transmitir dados. Pode-se ativar apenas um recurso do sistema para monitorar cada perfil de sensor. Configure um perfil de sensor diferente para cada recurso do sistema que você deseja monitorar. É possível, no entanto, configurar mais de um sensor para monitorar o mesmo recurso do sistema. Por exemplo, pode-se querer configurar parâmetros diferentes para exportar dados para o mesmo recurso do sistema. | |||
1. Especificar o nome do sensor | |||
[edit services analytics] | |||
user@host# set sensor '''sensor-name''' | |||
2. Especificar o recurso do dispositivo que será monitorado | |||
[edit services analytics sensor sensor-name] | |||
user@host# set resource '''resource-string-identifier''' | |||
3. (Opcional) Especificar uma expressão regular para filtrar os dados do recurso do dispositivo que foi configurado no passo acima para ser monitorado | |||
[edit services analytics sensor sensor-name] | |||
user@host# set resource-filter '''regular-expression''' | |||
4. Especificar o nome de um perfil de exportação configurado no nível de hierarquia [edit export-profile profile-name] para associar ao perfil do sensor. Este perfil de exportação define os parâmetros para exportar dados de telemetria. | |||
[edit services analytics sensor sensor-name] | |||
user@host# set export-name '''export-profile-name''' | |||
5. Especificar o nome de um nome de servidor de streaming configurado no nível de hierarquia [edit services analytics streaming-server server-name] para coletar dados exportados. | |||
[edit services analytics sensor sensor-name] | |||
user@host# set streaming-server '''server-name''' | |||
'''''Verificar a configuração do Junos Telemetry Interface Sensor''''' | |||
No modo de configuração, confirme sua configuração, digitando o comando '''show services analytics'''. Se a sua saída não exibir a configuração pretendida, repita as instruções neste procedimento de configuração para corrigi-la. | |||
Depois de confirmar a configuração, verifique se o sensor está ativado emitindo o comando operacional '''show agent sensors'''. | |||
user@host> '''show agent sensors''' | |||
'''''Comandos básicos CLI (command line-interface)''''' | |||
A interface da linha de comandos (CLI) do sistema operacional Junos (Junos OS) é a interface do software que você usa para acessar um dispositivo executando o Junos OS, seja a partir do console ou através de uma conexão de rede. | |||
O CLI do Junos OS tem dois modos: | |||
'''Modo operacional''' - Este modo exibe o status atual do dispositivo. No modo operacional, você insere comandos para monitorar e solucionar problemas do Junos OS, dispositivos e conectividade de rede. | |||
'''user@host>''' o modo operacional pode ser identificado pelo caractere “'''>'''” após o host. | |||
'''Modo de configuração''' - este modo permite configurar o dispositivo. Nesse modo, você insere instruções para configurar todas as propriedades do dispositivo, incluindo interfaces, informações gerais de roteamento, protocolos de roteamento, acesso do usuário e várias propriedades de sistema e hardware. | |||
'''user@host#''' o modo de configuração pode ser identificado pelo caractere “'''#'''” após o host. | |||
Toda a configuração dos native sensors é feita através de comandos CLI. Abaixo serão colocados os comandos principais utilizados. | |||
Como mudar entre os modos de configuração e de operação: | |||
1. Assim que você entra no roteador e digita o comando '''cli''', você estará em modo de operação. | |||
2. Para entrar no modo de configuração, digite o comando configure ou o comando de '''edit''' no modo de operação da CLI. Por exemplo: | |||
user@host> '''configure''' | |||
Entering configuration mode | |||
[edit] | |||
user@host# | |||
3. É possível retornar ao modo operacional de uma das seguintes maneiras: | |||
3.1 commit the configuration and exit: | |||
[edit] | |||
user@host# '''commit and-quit''' | |||
commit complete | |||
Exiting configuration mode | |||
user@host> | |||
3.2 exit without committing: | |||
[edit] | |||
user@host# '''exit''' | |||
Exiting configuration mode | |||
user@host> | |||
Fonte: [https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-telemetry-interface-oveview.html] | |||
<br> | |||
== Características == | == Características == | ||
| Linha 196: | Linha 428: | ||
= Pesquisadores = | = Pesquisadores = | ||
* Adriano Ghenov Pimenta | |||
* Anderson Testi | |||
* Raoni Exaltação Masson | * Raoni Exaltação Masson | ||
* Fabio Sabai | * Fabio Sabai | ||
* Gustavo Gardusi | |||
* Gustavo Velasco | |||
* Stephanas Schaden | * Stephanas Schaden | ||
* | * Ana Paula Fernandes | ||
<br> | <br> | ||
Edição atual tal como às 17h32min de 12 de maio de 2020
Fase I - Estudo
Título da Idéia
Telemetria para equipamentos da Juniper
Objetivos
Utilização de um push model (telemetria) para aquisição de informações dos roteadores de borda da rede Algar. Dentre os dois possíveis métodos de implementação da telemetria, escolheu-se por utilizar o stream de dados adquiridos pelos "natives sensors", utilizando, assim, um hardware dedicado à aquisição destes dados, sem sobrecarregar e/ou utilizar o processamento do roteador. Deste modo, é possível escalar a aplicação aos roteados de borda, em algo próximo de uma aplicação em tempo real, sem prejudicar o funcionamento da rede.
Conceito
Telemetria
Com o aumento exponencial de componentes das rede de internet, foi necessário desenvolver um método que apresentasse um melhor desempenho para a análise do que é chamado de “saúde da rede” (ou network’s health). Os métodos tradicionais de gerenciamento de redes consiste da utilização de protocolos denominados pull model, como por exemplo SNMP, CLI e Syslog.
Os modelos do tipo pull limitam em muito a escalabilidade, pois para obter as informações dos dispositivos que compõem a rede é necessário que seja feito o requerimento (request) dessas informações. Estes métodos não são escaláveis caso se queira, por exemplo, obter dados em tempo real (ou uma aplicação próxima ao tempo real), ou caso a rede possua uma quantidade muito grande de componentes.
A telemetria ultrapassa esses limites baseando-se no push model que entregará dados de modo assíncrono, eliminando a necessidade do pulling. Neste caso, faz-se o request da informação apenas uma vez para o dispositivo da rede que realizará stream dos dados em um intervalo de tempo configurado, de modo a obter-se os dados praticamente em tempo real.
Junos Telemetry Interface (JTI)
Nos dispositivos da Juniper, é possível fazer a configuração de sensors (ou sensores) que coletam e exportam os dados de vários tipos de recursos pertencentes ao dispositivo de rede, como de interfaces físicas, utilização de memória, temperatura, etc. Dois modelos de dados são possíveis, sendo que cada um utiliza um diferente tipo de transporte.
Utilizando o UDP, os natives sensors exportam dados próximos à fonte, como da unidade de processamento de rede (NPU). O modelo de dados é definido pela Juniper Networks, que é aberto e extensível.
Por meio de chamadas de procedimento remoto gRPC (gRPC) que exportam dados por meio do mecanismo de roteamento. O modelo de dados é definido pelo OpenConfig, que suporta o uso de modelos de dados vendor-neutral para configurar e gerenciar a rede. O OpenConfig para o Junos OS suporta os modelos de dados YANG. Para plataformas que estão rodando uma versão do Junos OS baseada apenas em um kernel atualizado do FreeBSD, você deve instalar um pacote separado chamado Network Agent que funciona como um servidor gRPC e termina as interfaces RPC. Para todas as outras versões do Junos OS, a funcionalidade do Network Agent está incorporada no software. Você também deve instalar o módulo OpenConfig para o Junos OS e os modelos YANG.
Native Sensors
Os native sensors (ou sensores nativos) exportam dados utilizando o protocolo UDP. Os dados do sensor são estruturados em uma mensagem protobuf (um método criado para serialização de dados estruturados). Este método foi desenvolvido pelo Google e disponibiliza um gerador de códigos para várias linguagens sendo este de código aberto. O método serve como base para uma chamada de procedimento remoto (RPC - remote procedure call). Para realizar a decodificação dos arquivos gerados, é necessário baixar, no site da Juniper, arquivos .protos relacionados com a série e a versão do Junos OS do dispositivo no qual a telemetria será implementada.
Para monitorar um recurso específico de um dispositivo, é necessário configurar um sensor. A configuração de cada sensor depende de três componentes principais:
Sensor profile - habilita o monitoramento de um dado recurso do dispositivo e permite que seja setado determinados parâmetros como o servidor para o qual serão enviados os dados de telemetria;
Export profile - especifica os atributos para o processo de exportação dos dados coletados, como o protocolo de transporte a ser usado (normalmente UDP) e o intervalo no qual os dados são coletados;
Streaming server profile - especifica o servidor para coleta de dados e parâmetros relacionados, incluindo o endereço IP e o número da porta de destino.
Configurando um Export profile
Um export profile (ou perfil de exportação) define os parâmetros do processo de exportação de dados gerados através da Junos Telemetry Interface. Deve-se configurar pelo menos um perfil de exportação, mas é possível a configuração de vários perfis de exportação. Cada perfil de exportação pode ser associado a vários perfis de sensores. No entanto, é possível associar apenas um perfil de exportação a um perfil de sensor específico.
1. Especificar um nome para o perfil de exportação
[edit services analytics]
user@host# set export-profile name
2. Especificar o endereço de IP da fonte dos pacotes que serão exportados
[edit services analytics export-profile name]
user@host# set local-address ip-address
3. Especificar o número da porta utilizado para os pacotes exportados
[edit services analytics export-profile name]
user@host# set local-port number
4. Especificar o intervalo, em segundos, no qual o sensor gerará os dados de telemetria
[edit services analytics export-profile name]
user@host# set reporting-rate seconds
5. Especificar o formato que definirá a estrutura dos dados exportados
[edit services analytics export-profile name]
user@host# set format gpb
6. Especificar o protocolo de transporte que carregará os dados de telemetria no pacote IP
[edit services analytics export-profile name]
user@host# set transport protocol-name
7. (Opcional) Especificar o valor do DiffServ code point (DSCP) atribuído aos pacotes exportados
[edit services analytics export-profile name]
user@host# set dscp value
8. (Opcional) Especificar a forwarding class para atribuir aos pacotes exportados
[edit services analytics export-profile name]
user@host# set forwarding-class class-name
9. (Opcional) (Apenas roteadores da série MX e Junos OS Release 17.3R1 ou mais recentes) Especificar uma prioridade de perda de pacotes para atribuir aos pacotes exportados
[edit services analytics export-profile name]
user@host# set loss-priority (low | high | medium-low | medium-high)
Configurando um Streaming Server Profile
Um streaming server profile (ou perfil de servidor) define os parâmetros do servidor que coleta dados de telemetria exportados. Pode-se definir mais de um perfil de servidor. Também é possível associar o mesmo perfil de servidor a mais de um perfil de sensor. A partir do Junos OS Release 15.1F6, é possível associar mais de um servidor a um sensor específico.
1. Especificar o nome do servidor streaming
[edit services analytics]
user@host# set streaming-server server-name
2. Especificar o endereço IP de destino para os pacotes exportados
[edit services analytics streaming-server server-name]
user@host# set remote-address ip-address
3. Especificar uma porta de destino para os pacotes exportados
[edit services analytics streaming-server server-name]
user@host# set remote-port number
Configurando um Sensor Profile
Um sensor profile (ou perfil de sensor) define os parâmetros do recurso do sistema para monitorar e transmitir dados. Pode-se ativar apenas um recurso do sistema para monitorar cada perfil de sensor. Configure um perfil de sensor diferente para cada recurso do sistema que você deseja monitorar. É possível, no entanto, configurar mais de um sensor para monitorar o mesmo recurso do sistema. Por exemplo, pode-se querer configurar parâmetros diferentes para exportar dados para o mesmo recurso do sistema.
1. Especificar o nome do sensor
[edit services analytics]
user@host# set sensor sensor-name
2. Especificar o recurso do dispositivo que será monitorado
[edit services analytics sensor sensor-name]
user@host# set resource resource-string-identifier
3. (Opcional) Especificar uma expressão regular para filtrar os dados do recurso do dispositivo que foi configurado no passo acima para ser monitorado
[edit services analytics sensor sensor-name]
user@host# set resource-filter regular-expression
4. Especificar o nome de um perfil de exportação configurado no nível de hierarquia [edit export-profile profile-name] para associar ao perfil do sensor. Este perfil de exportação define os parâmetros para exportar dados de telemetria.
[edit services analytics sensor sensor-name]
user@host# set export-name export-profile-name
5. Especificar o nome de um nome de servidor de streaming configurado no nível de hierarquia [edit services analytics streaming-server server-name] para coletar dados exportados.
[edit services analytics sensor sensor-name]
user@host# set streaming-server server-name
Verificar a configuração do Junos Telemetry Interface Sensor
No modo de configuração, confirme sua configuração, digitando o comando show services analytics. Se a sua saída não exibir a configuração pretendida, repita as instruções neste procedimento de configuração para corrigi-la.
Depois de confirmar a configuração, verifique se o sensor está ativado emitindo o comando operacional show agent sensors.
user@host> show agent sensors
Comandos básicos CLI (command line-interface)
A interface da linha de comandos (CLI) do sistema operacional Junos (Junos OS) é a interface do software que você usa para acessar um dispositivo executando o Junos OS, seja a partir do console ou através de uma conexão de rede.
O CLI do Junos OS tem dois modos:
Modo operacional - Este modo exibe o status atual do dispositivo. No modo operacional, você insere comandos para monitorar e solucionar problemas do Junos OS, dispositivos e conectividade de rede.
user@host> o modo operacional pode ser identificado pelo caractere “>” após o host.
Modo de configuração - este modo permite configurar o dispositivo. Nesse modo, você insere instruções para configurar todas as propriedades do dispositivo, incluindo interfaces, informações gerais de roteamento, protocolos de roteamento, acesso do usuário e várias propriedades de sistema e hardware.
user@host# o modo de configuração pode ser identificado pelo caractere “#” após o host.
Toda a configuração dos native sensors é feita através de comandos CLI. Abaixo serão colocados os comandos principais utilizados.
Como mudar entre os modos de configuração e de operação: 1. Assim que você entra no roteador e digita o comando cli, você estará em modo de operação. 2. Para entrar no modo de configuração, digite o comando configure ou o comando de edit no modo de operação da CLI. Por exemplo:
user@host> configure
Entering configuration mode
[edit] user@host#
3. É possível retornar ao modo operacional de uma das seguintes maneiras:
3.1 commit the configuration and exit:
[edit] user@host# commit and-quit
commit complete
Exiting configuration mode
user@host>
3.2 exit without committing:
[edit]
user@host# exit
Exiting configuration mode
user@host>
Fonte: [1]
Características
Informe sobre as particularidades, aspectos e atributos desta idéia.
Estudo Dirigido
Coloque aqui o plano de estudos bem como as possíveis fontes de informação.
Fase II - Ensino
Conteúdo
Desenvolva um conteúdo que possa transmitir o conhecimento adquirido para outros Crie um material (Wiki, PDF, PPT, ...) que possa ser armazenado e facilmente atualizável
Apresentação
Apresente ao grupo (reunião, EAD, Blog, ...) Publique aqui
Metodologia
Descrevas as metodologias usadas. Alguns exemplos:
Estratégia de Job Rotation Estudos básicos para conhecimento do potencial Estudos básicos para entendimento sobre o problema Estudos para dar base aos pesquisadores Benchmarking com empresas estrangeiras Aceleradoras de empresas Adoção de novas tecnologias Utilização da proposta de soluções Open-source Priorização no desenvolvimento interno Foco na não dependência de fornecedores Prática de formação dos talentos necessários
Fase III - Exemplo de Caso de Negócio
Benefícios para quem for oferecer esta solução
Descrever em tópicos os benefícios que uma pessoa ou uma empresa podem obter: ganhos, receitas, novos negócios, novos produtos, novas parcerias
Benefícios para o usuário
Descrever em tópicos os benefícios para os usuários desta solução.
Pode se inspirar no Canvas.
Direcionadores chave para esta iniciativa
Descrever em tópicos o que esta iniciativa pode proporcionar
Possíveis modelos de negócios
Descrever em tópicos os possíveis modelos de negócios
Business Case
Descrever um exemplo de negócio que permita avaliar a solução comercialmente
Alinhamento com Lei do Bem
- Projeto possui algum elemento tecnologicamente novo ou inovador?
Elemento tecnologicamente novo ou inovador pode ser entendimento como o avanço tecnológico pretendido pelo projeto, ou a hipótese que está sendo testada
- Projeto possui barreira ou desafio tecnológico superável?
Barreira ou desafio tecnológico superável pode ser entendido como aquilo que dificulta o atingimento do avanço tecnológico pretendido, ou dificulta a comprovação da hipótese
- Projeto utiliza metodologia/método para superação da barreira ou desafio tecnológico?
Metodologia/método para superação da barreira ou desafio tecnológico pode ser entendido como aqueles atividades que foram realizadas para superação da barreira ou do desafio tecnológico existente no projeto
- Projeto é desenvolvido em parceira com alguma instituição acadêmica, ICT ou startup?
Se sim, o desenvolvimento tecnológico é executado por associado ou por alguma empresa terceira? qual o nome da empresa? Anexar cópia do contrato
Fase IV - Protótipo orientado ao Negócio
Escopo
Explique o escopo deste protótipo
Product Backlog
Descreva os requisitos deste projeto
Limitações
Informe sobre as limitações técnicas, comerciais, operacionais, recursos, etc.
PoC
Desenvolva um PoC (Proof of Concept)
Detalhamento Técnico
Descreva especificamente os aspectos técnicos desta pesquisa
Cronograma Macro
Histórico
Pesquisadores
- Adriano Ghenov Pimenta
- Anderson Testi
- Raoni Exaltação Masson
- Fabio Sabai
- Gustavo Gardusi
- Gustavo Velasco
- Stephanas Schaden
- Ana Paula Fernandes