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.
“jet-event”: { “event-id”: “KERNEL_EVENT_IFD_ADD” “hostname”: “mydevice”, “time”: “2016-01-07”, “severity”: “info”, “facility”: “KERNEL”, “attributes”: { “name”: “ge-0/0/0”, “snmp-id”: 520, “flags”: 8 } }
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.
Eventos |
Tópico |
Informações do evento retornadas |
---|---|---|
Interface física (IFD) |
|
nome, snmp-id, bandeiras |
Inteface lógica (IFL) |
|
nome, subunit, snmp-id, bandeiras |
Família (IFF) |
|
nome, subunit, família, nome de mesa, bandeiras |
Endereço |
|
nome, subunit, família, endereço local, endereço de destino, endereço de broadcast, bandeiras |
Firewall |
|
nome, versão, identificação do cliente, tipo de filtro, protocolo, nome de interface, bandeiras |
Rota |
|
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 |
|
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.
Nome do idioma |
Link de licença |
---|---|
C, Mosquitto |
|
C++, Mosquitto |
|
Python, Mosquitto |
|
Rubi, Rubi-mqtt |
|
Java, Eclipse Paho Java |
|
Vai, Eclipse Paho Go |
|
C#, MqttDotNet |