sidetech

(元)インフラエンジニアの寄り道メモ。

Juniper EXシリーズのVC下でのCPU/Buffer/Tempの取り方

たまにはJuniperのSNMP話でも。
しばらく真面目にJuniperのOIDを眺めていなかったのですがいよいよ必要になってきました。ばっちり調査しましょ。

実はJuniperのスイッチにはバーチャルシャーシ(以下VC)と言うのがあって、6台あっても(論理的に)1台分にできる機能があります。これが色々と諸刃だったりするんですが・・・[E:coldsweats02]。
で、VCの組み方の話ではなくて・・・SNMPの取得なのですが、VCになっている6台があるとして・・・それぞれにSNMPを取りに行けるかと言うと行けません。管理IPが1つですからね。論理上の世界では1台だとおっしゃるのがVCです。

で、普通にSNMPの値をゲットしようとすると、単体構成での基本的な値を返してきてしまいます。又は「Routing Engine 0」が値を吐いているのかな。たぶんそう(未確認)。

インターフェースは6台分普通に取得できるのですが、CPUやメモリ・機内温度などが何故か普通にやっては上手く取れないんです。
そもそもJuniper EXシリーズはSRXと同じくJunosと言われるFreebsdをベースに魔改造したOSとなっていまして、SNMPの割り当てもちょっとネットワーク機器っぽい配置じゃないんですね。

ではどうやってVC下の機器それぞれの値を引っ張り出すかと言うと・・・

# snmpwalk -v2c -c コミュニティ EX管理IP .1.3.6.1.4.1.2636.3.1.13.1.5

まずはこれで”FPC:"を探します。

SNMPv2-SMI::enterprises.2636.3.1.13.1.5.7.1.0.0 = STRING: "FPC: EX4550-32F @ 0/*/*"
SNMPv2-SMI::enterprises.2636.3.1.13.1.5.7.2.0.0 = STRING: "FPC: EX4550-32F @ 1/*/*"
SNMPv2-SMI::enterprises.2636.3.1.13.1.5.7.3.0.0 = STRING: "FPC: EX4550-32F @ 2/*/*"
SNMPv2-SMI::enterprises.2636.3.1.13.1.5.7.4.0.0 = STRING: "FPC: EX4550-32F @ 3/*/*"
SNMPv2-SMI::enterprises.2636.3.1.13.1.5.7.5.0.0 = STRING: "FPC: EX4550-32F @ 4/*/*"
SNMPv2-SMI::enterprises.2636.3.1.13.1.5.7.6.0.0 = STRING: "FPC: EX4550-32F @ 5/*/*"

ヒットしました。ボールドにした部分が大事です。7.1.0.0~7.6.0.0で6台分。

で、CPU、Buffer、Tempは以下のエリアになります。
[Temperature]
jnxOperatingTemp.x.x.x.x 又は
1.3.6.1.4.1.2636.3.1.13.1.7.x.x.x.x

[CPU usage]
jnxOperatingCPU.x.x.x.x 又は
1.3.6.1.4.1.2636.3.1.13.1.8.x.x.x.x

[Memory (buffer) usage]
jnxOperatingBuffer.x.x.x.x 又は
1.3.6.1.4.1.2636.3.1.13.1.11.x.x.x.x

で、ボールドにした部分をx.x.x.xに当てはめると、各それぞれの筐体の値が返ってくるという・・・。

まだグラフが面白くもないけど、ちゃんと取れていました。CPUとBufferの単位はたぶんパーセントw。
Ex4550vcsnmp

EX3300シリーズでも同じ傾向で取得できました。

Node0とNode2のCPUがちょっと負荷高いですね。Routing Engineの割り当てとなっている筐体です。他はLinecardなので負荷は全然ないですね。瞬間的ではありますが80%近い値はなんかいやだなぁ・・・。見たくないものを見た感じです[E:coldsweats02]。

しかし、これをテンプレートにするのって難しいかもなぁ…。ちょっと相談してみますかね?