RTX810というVPNルーターを使っています。network.yamaha.comRTX810はもう10年近く前の製品で、現在は生産完了し、後継のRTX830というルーターが販売中です。Piで試しにやってみることにしました。PySNMPというライブラリを使うと、簡単にSNMPで情報が取れそうです。snmplabs.com他のYAMAHAルーターも同様の機能があるので、同じように使えるはずです。(SNMP)とは?サーバーやルーターなどネットワーク機器の状態を取得、設定するためのプロトコルです。MIBというデータ構造が定義されており、CPU使用率やトラフィック量などを機器によらず統一的な方法で取得できます。MIBはフォルダのようにツリー構造になっており、各情報にはOIDという数字のIDがついています。Piからアクセスできるようにします。SNMPでの情報取得を許可するアドレスを指定snmpwalkのインストールまずはどんな情報が取れるのか、MIBツリーの情報を一括して取得できるsnmpwalkというコマンドがあるのでインストールして実行してみましょう。snmpパッケージの中に含まれています。download-mibs私が試したところ、snmp-mibs-downloaderをインストールすると自動でdownload-mibsも実行されました。その場合は2行目は必要ありません(わからなければ実行しても問題ありません)。ダウンロードしたMIB情報を有効にします。/etc/snmp/snmp.confを次のように編集します。+ALL先ほどのsnmp-mibs-downloaderでは一般的なMIB情報しかインストールされません。YAMAHA独自のMIBもたくさんあるので、これもインストールしましょう。RTXシリーズのMIBファイルは公式からダウンロードできます👉www.rtpro.yamaha.co.jp個別にもダウンロードできますが、私は全部入りのyamaha-private-mib.tar.gzをダウンロードしました。展開したファイルを/usr/share/snmp/mibsにコピーします。/usr/share/snmp/mibsこれで準備ができました。次のようにして、実際にRTX810からMIBを取ってみましょう。MIBものすごい量の情報が出力されましたね😳私の場合は3872行もありました。パケット数などの統計情報から、コンフィグの中身まで様々な情報が取得できています。これをPythonで取ってみましょう。PySNMPのインストールvenv環境を作ってPySNMPをインストールします。venv環境を用意します。venvPySNMPはpipで簡単にインストールできます。pysnmpSNMP通信のテストPySNMP公式のクイックスタートのスクリプトをほぼそのまま使います。varBind]))これを''snmp-test.py''という名前で保存し、実行します。2018)このように、RTX810の情報が取れました!ファームウェアバージョンが取得できたようですね。RTX独自MIBも取得したいですよね。PySNMPは独自MIBを知りません😫snmpwalkとは別に、PySNMPにも独自MIBをインストールする必要があります。実は、先ほどpipでPySNMPをインストールした時に、mibdump.pyというツールも一緒にインストールされています。~/yamaha/yamaha-*.mib.txtこれで、PySNMP用にデータを変換しつつ、~/.pysnmp/mibs/にインストールしてくれます。これで、PySNMPから独自MIBにアクセスできるようになりました2。先ほどsnmpwalkで取得した大量のデータの中から、自分が欲しいデータを指定してみましょう。あるインターフェースの受信パケット数を取得するようにしてみます。先ほどのsnmp-test.pyを少し変更しましょう。23))実行してみます。2835996198これで好きな情報が取れますね🥰ライセンスの関係でRaspbianパッケージにはMIBファイルは含まれておらず、ダウンローダーのみパッケージ化されています。ダウンローダーを使って、簡単に自分でインストールできるようになっています。↩これをインストールしなくても、数字の羅列のOIDを直接指定すればアクセスできます。»スポンサーリンクスポンサーリンクプロフィール無線モジュールのファームウェア開発を中心に、IoTサービス全般の開発に携わるエンジニアです。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。