kooshinlab / コーシンラボ

現役ネットワークエンジニアが、ネットワーク運用で必要になった技術の記事を書くブログです。

ネットワーク監視表示灯(パトライト)をSNMPで操作してみた

三色に光るネットワーク監視表示灯(通称:パトライト)を買ったのでSNMPでリモートから操作してみました。パトライトの光は結構眩しいです。

はじめに

パトライト社のネットワーク監視表示灯(以下、パトライト)をヤフオクで落札し、自宅で使ってみました。

ヤフオクで入手した「NHP-3FB1」はすでに生産終了品のため新規購入はできません。 説明書やファームウェアは、パトライト社の公式サイトからダウンロード可能です(2020年2月9日時点)。

パトライトの設定

取扱説明書に様々な設定方法や操作方法が載っています。 パトライト社で無料の会員登録をすることで、取扱説明書はダウンロードできます。 一応、個人でも会員登録可能でした。

パトライトの初期化

パトライトに設定が残っていたので、 工場出荷時状態に初期化します。 初期化の手順は下記のとおりです。

  1. 電源ケーブルを抜く
  2. ボリューム切り替えスイッチ(VOL.)を「OFF」にする
  3. CLEARスイッチとTESTスイッチを押しながら、電源ケーブルを差し込む
  4. 表示灯が全点灯した状態でブザー音が鳴ります。ブザー音が止まったら、2つのスイッチを離す
  5. 表示灯が消灯すると起動完了
Webブラウザパトライトにログイン

初期化後のパトライトIPアドレスは192.168.10.1/24です。 パソコンに192.168.10.2/24など、同じセグメントのIPアドレスを割り当て、LANケーブルを接続します。 Webブラウザから「http://192.168.10.1」にアクセスすると、下記のログイン画面が表示されます。 初期化後のパスワードはpatliteで、ログインできます。

f:id:KOOSHIN:20200209174319p:plain
ログイン画面

WebブラウザSNMP設定

ログイン後は、Webブラウザで「SNMP設定」をします。 今回は動作試験が目的のため、下記の通り、デフォルトの値のまま利用します。

  • セットアップ項目>SNMP設定
    • SNMP機能:有効
    • SETコミュニティ:private
    • GETコミュニティ:public

f:id:KOOSHIN:20200209171314p:plain
SNMP設定画面

WebブラウザIPアドレス設定

「システム設定」からIPアドレスが変更できます。 今回は、下記のようにIPアドレスを設定しました。 IPアドレス設定を変更した場合は、設定反映のため再起動します。

f:id:KOOSHIN:20200209175138p:plain
システム設定画面

f:id:KOOSHIN:20200209221322p:plain
再起動画面

Webブラウザで表示灯操作

「表示灯操作」から表示灯の操作ができるため、手軽に動作確認できます。 下記の画面では、下記のように操作しています。

  • 本体操作>表示灯操作
    • 赤:点滅パターン1
    • 黄:点灯

f:id:KOOSHIN:20200209175434p:plain
表示灯操作画面

SNMPの準備

SNMPで表示灯を操作してみます。 動作環境は、Windows10上のWSLにインストールしたUbuntu18.04で、net-snmpを利用します。

net-snmpのインストール

Ubuntu 18.04のnet-snmpsnmp-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/に保存しました。

f:id:KOOSHIN:20200209171550p:plain
ファームウェアのダウンロード画面

SNMPで操作

取扱説明書にSNMPのOID情報が記載されています。 今回はnet-snmpツールのsnmpsetコマンドで表示灯を操作してみます。

SNMPオブジェクト

表示灯を制御するSNMPオブジェクトは下記のとおりです。

  • 表示灯の状態を変える場合、必ずcontrolLightControlStatecontrolLightControlTimerの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.redcontrolLightControlState.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.redcontrolLightControlTimer.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

おわりに

ネットワーク監視表示灯を利用して、様々なイベントの通知を視覚的にわかりやすく通知することが可能になります。色々使いみちがたくさんあるので、活用できると思います。