ネットワーク監視表示灯(パトライト)をSNMPで操作してみた
三色に光るネットワーク監視表示灯(通称:パトライト)を買ったのでSNMPでリモートから操作してみました。パトライトの光は結構眩しいです。
パトライト🚨と戯れる土曜の午後 pic.twitter.com/cXEttqLO1p
— kooshin (@kooshin) 2020年2月8日
はじめに
パトライト社のネットワーク監視表示灯(以下、パトライト)をヤフオクで落札し、自宅で使ってみました。
ヤフオクで入手した「NHP-3FB1」はすでに生産終了品のため新規購入はできません。 説明書やファームウェアは、パトライト社の公式サイトからダウンロード可能です(2020年2月9日時点)。
パトライトの設定
取扱説明書に様々な設定方法や操作方法が載っています。 パトライト社で無料の会員登録をすることで、取扱説明書はダウンロードできます。 一応、個人でも会員登録可能でした。
パトライトの初期化
パトライトに設定が残っていたので、 工場出荷時状態に初期化します。 初期化の手順は下記のとおりです。
- 電源ケーブルを抜く
- ボリューム切り替えスイッチ(VOL.)を「OFF」にする
- CLEARスイッチとTESTスイッチを押しながら、電源ケーブルを差し込む
- 表示灯が全点灯した状態でブザー音が鳴ります。ブザー音が止まったら、2つのスイッチを離す
- 表示灯が消灯すると起動完了
Webブラウザでパトライトにログイン
初期化後のパトライトのIPアドレスは192.168.10.1/24です。
パソコンに192.168.10.2/24など、同じセグメントのIPアドレスを割り当て、LANケーブルを接続します。
Webブラウザから「http://192.168.10.1」にアクセスすると、下記のログイン画面が表示されます。
初期化後のパスワードはpatlite
で、ログインできます。
WebブラウザでSNMP設定
ログイン後は、Webブラウザで「SNMP設定」をします。 今回は動作試験が目的のため、下記の通り、デフォルトの値のまま利用します。
WebブラウザでIPアドレス設定
「システム設定」からIPアドレスが変更できます。 今回は、下記のようにIPアドレスを設定しました。 IPアドレス設定を変更した場合は、設定反映のため再起動します。
Webブラウザで表示灯操作
「表示灯操作」から表示灯の操作ができるため、手軽に動作確認できます。 下記の画面では、下記のように操作しています。
- 本体操作>表示灯操作
- 赤:点滅パターン1
- 黄:点灯
SNMPの準備
SNMPで表示灯を操作してみます。
動作環境は、Windows10上のWSLにインストールしたUbuntu18.04で、net-snmp
を利用します。
net-snmpのインストール
Ubuntu 18.04のnet-snmp
とsnmp-mibs-downloader
を
インストールします。
ついでに、Cisco社のMIBもダウンロードします。
MIBファイルのダウンロードはsnmp-mibs-downloader
を利用します。
# パッケージをインストール $ sudo apt install net-snmp snmp-mibs-downloader # Cisco社のMIBのダウンロード設定 $ cat << END | sudo tee /etc/snmp-mibs-downloader/cisco.conf HOST=ftp://ftp.cisco.com DIR=pub/mibs/v2/ CONF=ciscolist DEST=cisco END # Cisco社のダウンロードするMIBを指定 $ cat << END | sudo tee /etc/snmp-mibs-downloader/ciscolist CISCO-IMAGE-MIB.my CISCO-IMAGE-MIB CISCO-SMI.my CISCO-SMI MPLS-VPN-MIB.my MPLS-VPN-MIB CISCO-BGP4-MIB.my CISCO-BGP4-MIB END # MIBのダウンロード $ sudo download-mibs cisco # エラーを吐くMIBを削除 $ sudo rm /var/lib/snmp/mibs/ietf/IPSEC-SPD-MIB $ sudo rm /var/lib/snmp/mibs/ietf/SNMPv2-PDU $ sudo rm /var/lib/snmp/mibs/ietf/IPATM-IPMC-MIB $ sudo rm /var/lib/snmp/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB # SNMPコマンドの共通設定 $ cat << END | sudo tee /etc/snmp/snmp.conf mibdirs /var/lib/snmp/mibs/iana:/var/lib/snmp/mibs/ietf:/var/lib/snmp/mibs/cisco mibs all showMibErrors no mibWarningLevel 0 strictCommentTerm no mibAllowUnderline no END
MIBファイル
SNMP用のMIBファイルは、ファームウェアに同梱されており、パトライト社から会員登録することでダウンロードできます。 「NH-FBシリーズ用ファームウェア」から「バージョン:1.46」をダウンロードしました。
ファームウェアにMIBファイルpatlite_nhSPL_20170105.mib
が同梱されています。
今回はMIBファイルを/var/lib/snmp/mibs/iana/
に保存しました。
SNMPで操作
取扱説明書にSNMPのOID情報が記載されています。
今回はnet-snmp
ツールのsnmpset
コマンドで表示灯を操作してみます。
SNMPオブジェクト
表示灯を制御するSNMPオブジェクトは下記のとおりです。
- 表示灯の状態を変える場合、必ず
controlLightControlState
とcontrolLightControlTimer
の2つの指定が必要です。 - 表示等をクリア(リセット)する場合、
controlLightSnmpClear
の1つのみの指定です。
SNMPオブジェクト名 | OID | 内容 | 操作 |
---|---|---|---|
controlLightControlState | .1.3.6.1.4.1.20440.4.1.5.1.2.1.2 | 各表示灯の状態を設定。遅延時間とセットで利用する必要あり | turn-on、turn-off、blinking-pattern1、blinking-pattern2 |
controlLightControlTimer | .1.3.6.1.4.1.20440.4.1.5.1.2.1.3 | 状態変化の遅延時間を設定 | 秒数を指定 |
controlLightSnmpClear | .1.3.6.1.4.1.20440.4.1.5.1.3 | 状態をクリアする | 値はexecute(1) |
色指定
表示灯の色は下記のパラメータが用意されています。
上記のSNMPのオブジェクト名の末尾に追加することで、
表示灯を指定できます。
赤の表示灯はcontrolLightControlState.red
やcontrolLightControlState.yellow
で指定できます。
パラメータ | 値(Integer) | 表示灯 |
---|---|---|
red | 1 | 赤色の表示灯 |
yellow | 2 | 黄色の表示灯 |
green | 3 | 緑色の表示灯 |
blue | 4 | 青色の表示灯 |
clear | 5 | 白色の表示灯 |
buzzar | 6 | ブザー |
状態指定
controlLightControlState
に指定可能な状態は下記のとおりです。
表示灯とブザーの場合で、動作が異なります。
パラメータ | 値(Integer) | 表示灯の動作 | ブザーの動作 |
---|---|---|---|
turn-on | 1 | 表示灯を点灯 | 消音 |
turn-off | 2 | 表示灯を消灯 | サウンドパターン1 |
blinking-pattern1 | 3 | 表示灯を点滅(点滅パターン1) | サウンドパターン2 |
blinking-pattern2 | 5 | 表示灯を点滅(点滅パターン2) | サウンドパターン3 |
soud-pattern4 | 6 | - | サウンドパターン4 |
nop | 4 | 状態変化なし | 状態変化なし |
snmpsetコマンドで表示灯を操作
snmpset
コマンドで、赤の表示灯を操作してみます。
他の表示灯に変更する場合は、controlLightControlState.red
とcontrolLightControlTimer.red
の末尾の.red
を.yellow
や.green
に変更します。
# 表示灯をすべて消灯(クリア)する $ snmpset -v2c -cprivate 192.168.11.102 controlLightSnmpClear.0 i execute PATLITE-NH-SERIES::controlLightSnmpClear.0 = INTEGER: execute(1) # 赤をすぐに点灯する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.red i turn-on controlLightControlTimer.red i 0 PATLITE-NH-SERIES::controlLightControlState.red = INTEGER: turn-on(2) PATLITE-NH-SERIES::controlLightControlTimer.red = INTEGER: 0 # 赤をすぐに点滅パターン1で点滅する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.red i blinking-pattern1 controlLightControlTimer.red i 0 PATLITE-NH-SERIES::controlLightControlState.red = INTEGER: blinking-pattern1(3) PATLITE-NH-SERIES::controlLightControlTimer.red = INTEGER: 0 # 赤をすぐに点滅パターン2で点滅する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.red i blinking-pattern2 controlLightControlTimer.red i 0 PATLITE-NH-SERIES::controlLightControlState.red = INTEGER: blinking-pattern2(5) PATLITE-NH-SERIES::controlLightControlTimer.red = INTEGER: 0 # 赤をすぐに消灯する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.red i turn-off controlLightControlTimer.red i 0 PATLITE-NH-SERIES::controlLightControlState.red = INTEGER: turn-off(1) PATLITE-NH-SERIES::controlLightControlTimer.red = INTEGER: 0
表示灯の操作結果
表示灯の操作で、下記の状態になるように指定した結果は下記のとおりです。
- 状態クリア
- 赤:点滅パターン1
- 黄:点滅パターン2
- 緑:点灯
# 表示灯をすべて消灯(クリア)する $ snmpset -v2c -cprivate 192.168.11.102 controlLightSnmpClear.0 i execute PATLITE-NH-SERIES::controlLightSnmpClear.0 = INTEGER: execute(1) # 赤をすぐに点滅パターン1で点滅する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.red i blinking-pattern1 controlLightControlTimer.red i 0 PATLITE-NH-SERIES::controlLightControlState.red = INTEGER: blinking-pattern1(3) PATLITE-NH-SERIES::controlLightControlTimer.red = INTEGER: 0 # 黄をすぐに点滅パターン2で点滅する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.yellow i blinking-pattern1 controlLightControlTimer.yellow i 0 PATLITE-NH-SERIES::controlLightControlState.yellow = INTEGER: blinking-pattern1(3) PATLITE-NH-SERIES::controlLightControlTimer.yellow = INTEGER: 0 # 緑をすぐに点灯する $ snmpset -v2c -cprivate 192.168.11.102 controlLightControlState.green i turn-on controlLightControlTimer.green i 0 PATLITE-NH-SERIES::controlLightControlState.green = INTEGER: turn-on(2) PATLITE-NH-SERIES::controlLightControlTimer.green = INTEGER: 0
パトライトをSNMPで操作して点滅させてみました🚨 pic.twitter.com/AH02c7ujAS
— kooshin (@kooshin) 2020年2月9日
おわりに
ネットワーク監視表示灯を利用して、様々なイベントの通知を視覚的にわかりやすく通知することが可能になります。色々使いみちがたくさんあるので、活用できると思います。