たまには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。
EX3300シリーズでも同じ傾向で取得できました。
Node0とNode2のCPUがちょっと負荷高いですね。Routing Engineの割り当てとなっている筐体です。他はLinecardなので負荷は全然ないですね。瞬間的ではありますが80%近い値はなんかいやだなぁ・・・。見たくないものを見た感じです[E:coldsweats02]。
しかし、これをテンプレートにするのって難しいかもなぁ…。ちょっと相談してみますかね?