😺
JTI - Juniper Telemetry Interface
Abstract
- JTIMONでDial-inなJTIを試した
- JunOS <<< JTIMON <<< Prometheus >>> Victoria Metrics <<< Grafana
- 物理IFのCounterは見えるが今回使用した機器ではSubIF用PATHが未対応のようでCounter取得出来なかった、残念
環境
- JunOS: 21.4R1.12
- JTIMON
Details
JTIMON
- Dial-in方式のTool
- 今回やったのはこっち
https://github.com/Juniper/jtimon
https://github.com/Juniper/jtimon/wiki/JTIMON-and-Prometheus
JunOS設定
- JunOSの設定はこれだけ、SSLでもいける
- routing-instance awareには未対応なので一時的に
delete system management-instance
した
delete system management-instance
set system services extension-service request-response grpc clear-text port 32767
set system services extension-service request-response grpc skip-authentication
set system services extension-service notification allow-clients address 0.0.0.0/0
JTIMON設定
./jtimon-linux-amd64 --explore-config
結果から必要そうな項目を抜き出したらこのへんだった
prom.json
{
"port": 32767,
"host": "<< JunOSデバイスのIPアドレス >>",
"grpc": {
"ws": 0
},
"paths": [
{
"path": "/interfaces/interface/state/counters/in-octets",
"freq": 300000
}
],
"alias" : "tests/data/juniper-junos/alias/alias.txt"
}
Collector起動
Collectorを起動する
sudo ./jtimon-linux-amd64 --prometheus --config prom.json --prometheus-host << PrometheusのIPアドレス >> --prometheus-port 8090 --print --compression string
応答が確認できる
/// snip ///
sync_response: false
key: __timestamp__
uint_value: 1654612026444
key: __prefix__
str_value: /interfaces/interface[name='et-0/0/2']/
key: init-time
uint_value: 1654610258
key: state/parent-ae-name
str_value:
key: state/high-speed
uint_value: 40000
key: state/counters/in-pkts
uint_value: 87959
key: state/counters/in-octets
uint_value: 45217758
key: state/counters/in-unicast-pkts
uint_value: 86919
key: state/counters/in-multicast-pkts
uint_value: 1017
key: state/counters/in-broadcast-pkts
uint_value: 3
/// snip ///
Prometheus設定
JTIMON実行時に指定したprometheus-portをprometheus側からscrapeすればOK
prometheus.yaml
scrape_configs:
- job_name: 'jtimon'
static_configs:
- targets: ['<<JTIMONのIPアドレス>>:8090']
Prometheus Target確認
Scrapingに成功しTarget認識されました
Metrics確認
alias後の名称でMetrics確認出来る、labelは今回いじってない
JunOSのPath Support状況
- SubIF CounterのPath対応はMX系だとMX960/2020/10008あたり
- QFX5100が対応しているのでハイエンド縛りではなさそう?
/interfaces/interface/subinterfaces/subinterface/state/counters/in-octets
OpenNTI Dial-out方式
- こっちはまだやってない
https://github.com/Juniper/open-nti
IOS-XR対応
- JTIMONでIOS-XRも見れるらしい
- bigmuddy-network-telemetry-pipelineが死んだのでpipeline-gnmiとJTIMONでdial-out比較、とか
参考
- networkingまわりのTelemetryはNTTComさんのやつが秀逸
https://engineers.ntt.com/entry/2021/09/02/162022
Discussion