gNMI Genstateのサブスクリプション
Junos OS Evolvedリリース24.2R1以降、ジュニパーネットワークスは生成 状態 YANGデータモデルを公開しています。 genstate モデルは、Junos デバイスの運用状態データ用のサブスクライブ可能な YANG モデルです。gNMI クライアントは、モデルで定義されたリソース パスにサブスクライブして、特定の状態データを取得できます。
Juniper/yang GitHubリポジトリまたはジュニパーネットワークスからモデルを表示またはダウンロードします。
新しいモデルを使用すると、gRPC ダイヤルイン環境の gNMI クライアントは、生成状態リソースパスと SAMPLE サブ モードの STREAM 統計情報をコレクターにのみサブスクライブできます。ON_CHANGEサブモードはサポートされていません。
以下のサブスクリプションの例では、X.509証明書を使用した相互認証用に構成されたターゲットデバイスを使用します。サブスクリプション要求は、ターゲット デバイスのローカル証明書を検証するために必要なルート CA 証明書を提供し、ターゲット デバイスがクライアントを認証できるようにクライアントのキーと証明書も提供します。サブスクリプションは STREAM モードおよびサブモード SAMPLE を使用し、リソース・パス・ genstate:/genstate/system-information/os-versionのデータを要求します。コレクターに返されるテレメトリデータは、ターゲットデバイスがJunos OSバージョン 24.2R1.12-EVOで動作していることを示しています。
user@controller:~$ gnmic sub -a 198.51.100.10:32767 --mode stream --stream-mode sample -u grpc-user -p secret --tls-ca certs/serverRootCA.crt --tls-cert certs/client.crt --tls-key certs/client.key --sample-interval 30s --path genstate:/genstate/system-information/os-version
{
"source": "198.51.100.10:32767",
"subscription-name": "default-1708559603",
"timestamp": 1708559609668499930,
"time": "2024-02-21T15:53:29.66849993-08:00",
"prefix": "genstate:genstate/system-information/os-version",
"updates": [
{
"Path": "os-version",
"values": {
"os-version": "24.2R1.12-EVO"
}
}
]
}
以下のサブスクリプションの例でも、X.509証明書を使用した相互認証用に構成されたターゲットデバイスを使用します。サブスクリプションは STREAM モードおよびサブモード SAMPLE を使用し、リソース・パス・ genstate:/genstate/interface-information/physical-interface[name=et-1/0/1]/admin-statusのデータを要求します。 admin-status (管理ステータス)は、インターフェイスが有効(up)か無効(down)を示します。コレクターに返されるテレメトリ データは、物理インターフェイス et-1/0/1 が upであることを示しています。
user@controller:~$ gnmic sub -a 198.51.100.10:32767 --mode stream --stream-mode sample -u grpc-user -p secret --tls-ca certs/serverRootCA.crt --tls-cert certs/client.crt --tls-key certs/client.key --sample-interval 30s --path genstate:/genstate/interface-information/physical-interface[name=et-1/0/1]/admin-status
{
"source": "198.51.100.10:32767",
"subscription-name": "default-1708561308",
"timestamp": 1708561313983469233,
"time": "2024-02-21T16:21:53.983469233-08:00",
"prefix": "genstate:genstate/interface-information/physical-interface[name=et-1/0/1]/admin-status",
"updates": [
{
"Path": "admin-status",
"values": {
"admin-status": "up"
}
}
]
}