この記事はエムスリーAdvent Calendar 2015の7日目の記事です。
概要
Aruba Instant のMIBを簡単に紹介します。
Aruba Instant とは
Wifiアクセスポイントの管理手法は大きく自律型とコントローラ型に分かれます。
Aruba Instant 独立したコントローラを配置しなくてもクラスタを構成するアクセスポイントの内一台がコントローラの役割を果たしてコントローラなしでコントローラ型の機能を実現するArubaの独自機能となります。ただし、本業のコントローラに比べると管理できる台数や機能には若干の違いが存在します。
Aruba Instant のMIB
Aruba Instant のMIBはArubaのサイトから参照可能です。6.4.3.4-4.2.1.0のドキュメントはこちらです。Aruba Instant MIB Reference Guide というPDFにMIBの情報がまとまっています。
SNMPの情報をポーリングする場合管理対象となる機器単体の情報を取得できるのが一般的ですが、Aruba Instantはコントローラとなるため管理対象となるアクセスポイントの情報を一つのOIDから取得することができます。
例えばアクセスポイントの無線出力であれば aiRadioTransmitPower
なので 1.3.6.1.4.1.14823.2.3.3.1.2.2.1.5
から取得可能です。
取得される結果は以下の通りです。
SNMPv2-SMI::enterprises.14823.2.3.3.1.2.2.1.5.A.B.C.D.E.F.0 = INTEGER: 21
SNMPv2-SMI::enterprises.14823.2.3.3.1.2.2.1.5.A.B.C.D.E.F.1 = INTEGER: 9
A,B,C,D,E,FにはアクセスポイントのMACアドレスを10進数で表示した値が入ります。
aiAPName(1.3.6.1.4.1.14823.2.3.3.1.2.1.1.2)
にはアクセスポイントの名前が格納されていますのでMACアドレスとアクセスポイントを紐付けることが可能です。
Cacti の様な管理ツールを使用する場合機器名と取得する値を紐付ける必要がありますので、MACアドレスの と アクセスポイント名を配列に格納して利用します。
実際に有る一台のアクセスポイントの aiRadioRxBad(1.3.6.1.4.1.14823.2.3.3.1.2.2.1.18) をCactiで出力したグラフが以下の通りです。
(青が2.4GHz、赤が5Ghzです)
日中になるとエラーが増えていることがわかります。
クライアントのIPアドレスを監視する
Aruba Instant のMIBには接続しているクライアントの情報も格納されています。
aiClientIPAddress(1.3.6.1.4.1.14823.2.3.3.1.2.4.1.3)
には接続しているクライアントのIPアドレスが入っています。
先日Wifi環境でDHCPの応答がなくなり接続がクライアントが通信ができなくなる問題発生したのですが、クライアントのIPアドレスがリンクローカルアドレスになっているかで監視を行うことが出来そうです。
require 'snmp'
require 'ipaddr'
class YuIPAddr < IPAddr
def ipv4_linklocal?
range = IPAddr.new("169.254.0.0/255.255.0.0")
return range.include?(self)
end
end
SNMP::Manager.open(:Host => '192.168.1.1',:Community => 'community', :timeout => 1, :retries => 1) do |manager|
manager.walk('1.3.6.1.4.1.14823.2.3.3.1.2.4.1.3') do |row|
addr=YuIPAddr.new(row.value.to_s)
if addr.ipv4_linklocal?
puts addr.to_s
end
end
end
まとめ
Aruba Instant は豊富はMIB情報を備えているのでSNMPで様々な管理を行うことが可能です。ArubaにはAirWaveという管理機能がありますがMIBを活用することで似たような時系列でのデータの収集が可能です。