Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

API de notificação da JET

A API de notificação jet permite que você assine eventos e designe uma função de retorno de chamada para receber eventos quando eles ocorrem. Essas interfaces Python fornecem uma interface para o sistema de notificação MQTT que, para outras línguas que não o Python, deve ser tratada fora do JET (veja a notificação jet programável para linguagens não-Python). Para obter detalhes sobre MQTT e Python, consulte https://mosquitto.org/ .

Formato JSON de Mensagens de Notificação JET

A notificação jet é entregue no formato JSON. A mensagem JSON tem duas partes: o cabeçalho e os atributos. O cabeçalho é comum em todos os eventos. Ele contém o ID do evento, nome de hospedagem, tempo, gravidade e instalações do evento. Os atributos contêm informações sobre o evento e variam dependendo do nome do evento.

Todos os eventos de kernel rtsock terão info como gravidade e KERNEL como instalação. Para eventos de syslog, a gravidade e as instalações serão iguais às das mensagens de syslog do Junos OS.

O seguinte é um exemplo do arquivo JSON do evento.

Consulte o Package JET Applications para obter mais informações sobre o JSON.

Inscreve-se para eventos

Aplicativos desenvolvidos usando JET podem se inscrever nos eventos listados na Tabela 1. Um tópico é um endpoint ao qual os clientes se conectam. Um tópico atua como o hub de distribuição central para a publicação e assinatura de mensagens. Os tópicos são strings simples e hierárquicos, codificados em UTF-8, delimitados por um corte avançado.

Tabela 1: Tópicos do evento Junos

Eventos

Tópico

Informações do evento retornadas

Interface física (IFD)

  • /junos/eventos/kernel/interfaces/ifd/add/ifdname

  • /junos/eventos/kernel/interfaces/ifd/change/ifdname

  • /junos/eventos/kernel/interfaces/ifd/delete/ifdname

nome, snmp-id, bandeiras

Inteface lógica (IFL)

  • /junos/eventos/kernel/interfaces/ifl/add/iflname

  • /junos/eventos/kernel/interfaces/ifl/change/iflname

  • /junos/eventos/kernel/interfaces/ifl/delete/iflname

nome, subunit, snmp-id, bandeiras

Família (IFF)

  • /junos/eventos/kernel/interfaces/iff/add/iflname/family-type

  • /junos/eventos/kernel/interfaces/iff/change/iflname/family-type

  • /junos/eventos/kernel/interfaces/iff/delete/iflname/family-type

nome, subunit, família, nome de mesa, bandeiras

Endereço

  • /junos/eventos/kernel/interfaces/ifa/add/iflname/family-type/address

  • /junos/eventos/kernel/interfaces/ifa/change/iflname/family-type/address

  • /junos/eventos/kernel/interfaces/ifa/delete/iflname/family-type/address

nome, subunit, família, endereço local, endereço de destino, endereço de broadcast, bandeiras

Firewall

  • /junos/eventos/kernel/firewall/filter/add/filtername

  • /junos/eventos/kernel/firewall/filtro/alteração/nome de filtro

  • /junos/eventos/kernel/firewall/filter/delete/filtername

nome, versão, identificação do cliente, tipo de filtro, protocolo, nome de interface, bandeiras

Rota

  • /junos/eventos/kernel/route/add/family/prefixo com comprimento

  • /junos/eventos/kernel/route/change/family/prefixo com comprimento

  • /junos/eventos/kernel/route/delete/family/prefixo com comprimento

nome de tabela, nome do roteador lógico, endereço-família, tipo de rota, prefixo de rota, arrayof (endereço ao lado), bandeiras

Tabela de rotas

  • /junos/eventos/kernel/route-table/add/tablename/lrname

  • /junos/eventos/kernel/route-table/change/tablename/lrname

  • /junos/eventos/kernel/route-table/delete/tablename/lrname

nome, nome do roteador lógico, endereço-família, bandeiras

Syslog

/junos/eventos/syslog/event-id

arrayof (pares de valor de atributo)

Programação de notificação JET para línguas não python

Muitos idiomas de alto nível têm uma biblioteca MQTT disponível. Um aplicativo JET pode usar a biblioteca correspondente para se conectar ao corretor MQTT em execução no Junos OS e assinar eventos. Por exemplo, aqui está um programa JAVA amostral que se conecta a um corretor de MQTT e assina eventos: Exemplo de mensagens MQTT em Java.

Para obter detalhes sobre, por exemplo, bibliotecas MQTT para diferentes idiomas, consulte a Tabela 2.

Tabela 2: Bibliotecas MQTT por linguagem

Nome do idioma

Link de licença

C, Mosquitto

Freebsd

C++, Mosquitto

Freebsd

Python, Mosquitto

Freebsd

Rubi, Rubi-mqtt

Licença do MIT

Java, Eclipse Paho Java

Licença pública eclipse

Vai, Eclipse Paho Go

Licença pública eclipse

C#, MqttDotNet

Licença personalizada