JET 通知 API
JET 通知 API を使用すると、イベントをサブスクライブし、イベントが発生したときに受信するコールバック関数を指定できます。これらの Python インターフェイスは、PYTHON 以外の言語の場合は JET の外部で処理する必要がある、UI を UI に提供します(「 Python 以外の言語の JET 通知をプログラミングする」を参照してください)。詳細は、HTTPS://MOSQUITTO.ORG/ をご覧 ください 。
JET 通知メッセージの JSON 形式
JET 通知は JSON 形式で配信されます。JSON メッセージには、ヘッダーと属性の 2 つの部分があります。ヘッダーはすべてのイベントに共通です。イベント ID、ホスト名、時間、重大度、イベントのファシリティが含まれます。属性にはイベントに関する情報が含まれており、イベントのトピック名によって異なります。
カーネル rtsock イベントはすべて info
重大度として、施設 KERNEL
は同じになります。syslogイベントの場合、重大度とファシリティはJunos OS syslogメッセージと同じです。
イベント JSON ファイルの例を次に示します。
“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 } }
JSON の詳細については、 JET アプリケーションのパッケージ を参照してください。
イベントのサブスクリプション
JET を使用して開発されたアプリケーションは、 表 1 に示すイベントを購読できます。 トピック は、クライアントが接続するエンドポイントです。トピックは、メッセージの公開とサブスクライブを行う一元的な配信ハブとして機能します。トピックは、UTF-8 でエンコードされたシンプルな階層型文字列で、スラッシュで区切られます。
イベント |
トピック |
返されるイベント情報 |
---|---|---|
物理インターフェイス(IFD) |
|
名前、snmp-id、フラグ |
論理インターフェイス(IFL) |
|
名前、サブユニット、snmp-id、フラグ |
ファミリー(IFF) |
|
名前、サブユニット、ファミリー、テーブル名、フラグ |
アドレス |
|
名前、サブユニット、ファミリー、ローカルアドレス、宛先アドレス、ブロードキャストアドレス、フラグ |
ファイアウォール |
|
名前、バージョン、クライアントID、フィルタータイプ、プロトコル、インターフェイス名、フラグ |
ルート |
|
テーブル名、論理ルーター名、アドレスファミリー、ルートタイプ、ルートプレフィックス、arrayof(nexthop-address)、フラグ |
ルートテーブル |
|
名前、論理ルーター名、アドレスファミリー、フラグ |
Syslog |
/junos/events/syslog/event-id |
arrayof(属性値ペア) |
Python 以外言語の JET 通知のプログラミング
高位言語の多くは、利用可能なCLIDライブラリを備えています。JET アプリケーションは、対応するライブラリを使用して、Junos OS で実行されている SFP ブローカーに接続し、イベントをサブスクライブできます。例えば、以下に、RSS ブローカーに接続し、イベントにサブスクライブするサンプル JAVA プログラムを示します。 Java のサンプル、例を示します。
さまざまな言語用の例のVLSライブラリの詳細については、 表2を参照してください。
言語名 |
ライセンス リンク |
---|---|
C、モスキト |
|
C++、モスキト |
|
Python、モスキート |
|
Ruby、Ruby-ビット |
|
Java、Eclipse Paho Java |
|
行く、Eclipse Paho Go |
|
C#、CspDotNet |