2015年10月31日

オープンソースの SNMP エージェント・シミュレータ - snmposter と「俺、 fork したよ」って話

僕がブログを始めたのは、まだその頃珍しかった Java 言語で記述されたオープンソースの SNMP(Simple Network Management Protocol)ライブラリ SNMP4J(http://www.snmp4j.org)の詳しい説明をエントリすれば月間 100 万 PV ぐらい稼いで広告収入でアーリー・リタイアできるかもって考えたのがきっかけでした。 でも、結局・・・全然・・・そんなことにはならなくて、今もまだ(まあまあ)真面目に働いてます。 今日は SNMP マネージャーの開発や評価で必要になる SNMP エージェント・シュミレーターの1つ、snmposter を紹介をします。

snmposter

  続きを読む
Posted by netbuffalo at 20:41Comments(1)TrackBack(0)

2013年01月31日

How to use "smiparser" - Free MIB/SMI Parser for Java

これまでSNMP4Jを使って、Java + 実践SNMPプログラミングというテーマで何回か解説してきましたが、MIBパーサーの話は避けてきました。 フリーのJava MIB ParserといえばMibbleがあるのにです。

理由は、Mibbleは良いAPIですがライセンスがGPLだから。 

GPLはコピー・レフトに例えられるようにコードの自由を強く保証しますが、開発者・利用者としてみると原理主義的な面があり、僕には少し窮屈に感じられるのです。

mib-smiparser

今日はJava開発者が、より自由(?)に利用できるsmiparserをご紹介します。
  続きを読む
Posted by netbuffalo at 22:00Comments(0)TrackBack(0)

2011年05月27日

実践SNMP+Java MIBテーブルのフェッチ(TableUtils)

今日はSNMP4Jを利用したMIBテーブルのフェッチ(取得)について解説します。

MIBテーブルとはデータベースのテーブルと同様に行と列で管理されたMIBオブジェクトの集まりです。

MIBテーブルを理解するにはMIBブラウザを使って視覚的に捉えることも重要です。ここではiREASONING社のMIBブラウザ(無料)を使って説明します。
  続きを読む
Posted by netbuffalo at 18:58TrackBack(0)

2011年03月25日

実践SNMP+Java-非同期ポーリング

今日はSNMP4Jライブラリを利用した非同期ポーリング(SNMPリクエストの送受信)について紹介します。

SNMP4Jでは同期(Synchronous)又は非同期(Asynchronous)なSNMPリクエストの送信が可能です。

非同期でリクエストを送信する場合、Snmpクラスに用意されているsend(PDU pdu, Target target, java.lang.Object userHandle, ResponseListener listener) メソッドを利用します。
  続きを読む
Posted by netbuffalo at 19:07TrackBack(0)

2011年01月11日

実践SNMP+Java-Trap受信性能

久しぶりにSNMP4Jです。今回はTrap受信性能について評価してみます。
一般的な商用ソフトウェアのTrap受信性能は1000~1200(trap/sec)といったところですが、
SNMP4Jの受信性能はどの程度でしょうか?

早速確認してみましょう。
  続きを読む
Posted by netbuffalo at 09:11TrackBack(0)

2010年08月06日

実践SNMP+Java - Timeout Model

今回はタイムアウトとリトライ数について考えます。
 
サンプルコードを使って動く・動かないを検証するだけであればタイムアウトとリトライはさほど気にすることは無いパラメータですが、実践ではいざという時に重要なパラメータになります。
  続きを読む
Posted by netbuffalo at 19:49TrackBack(0)

2010年07月28日

実践SNMP+Java - Trap/Inform Receiver

SNMP4Jを利用したSNMP Trap/Informの受信について説明します。

そろそろ気がつかれている方もいるかもしれませんが、SNMPv3については説明してきませんでした。

僕自身、実践で利用する機会・ニーズが少ないのが理由です。

SNMP Trap/Inform受信についてもSNMPv3は、多分動くだろう、という程度です。
時間が出来たらv3についてもまとめるつもりです。
  続きを読む
Posted by netbuffalo at 19:09TrackBack(0)

2010年07月26日

実践SNMP+Java - SNMP Set

SNMP4Jを利用したSNMP Setについて説明します。

その名の通りSetを使うとSNMPを使ってエージェントの値を設定する事が出来ます。
  続きを読む
Posted by netbuffalo at 20:06TrackBack(0)

2010年07月23日

実践SNMP+Java - SNMP Inform

SNMP4Jを利用したSNMPv2 Informの送信について説明します。

これまでに説明したSNMPv1 Trap, SNMPv2 Trapを使うと、SNMPマネージャにアラームを通知することが出来ますが、Trapの場合、それだけではマネージャ側が受信したか否かを送信(SNMPエージェント)側で知ることは出来ません。

ですから、重要なアラームであるほど通知先(相手)が受信したことを知りたい、という実践(運用)上の矛盾が生じます。
  続きを読む
Posted by netbuffalo at 14:49TrackBack(0)

2010年07月22日

実践SNMP+Java - SNMPv2 Trap

SNMP4Jを利用したSNMPv2 Trapの送信について説明します。
 
SNMPv2トラップではv1に比較し、PDUフォーマットがGet/GetNext/Setリクエストと統一されています。
  続きを読む
Posted by netbuffalo at 13:04TrackBack(0)

2010年07月21日

実践SNMP+Java - SNMPv1 Trap

SNMP4Jを利用したSNMPv1 Trapの送信について説明します。
  続きを読む
Posted by netbuffalo at 18:36TrackBack(0)

2010年07月20日

実践SNMP+Java GetBulk

SNMP4Jを利用したSNMP GetBulk操作について説明します。

GetBulkは前回説明したGetNextの繰り返しであるWalkに近く、まとめて・複数のMIBオブジェクトを取得する為のSNMP PDUタイプです。
 
連続したMIBオブジェクトを一括で取得したい場合、GetNextに比較すると、
マネージャ/エージェント間のPDU数を減らすことが出来る為、効率良く取得出来ます。
  続きを読む
Posted by netbuffalo at 14:50TrackBack(0)

2010年07月17日

実践SNMP+Java DisplayString

GetNext/Walkに関する記事で紹介したコードを使って、ifTable.ifEntry.ifDescrを取得すると、次のような:で分割されたHexStringが表示される場合があります。
(大部分のケースでは正しいインタフェースの名称が表示されます)

何故でしょうか?
  続きを読む
Posted by netbuffalo at 20:19TrackBack(0)

実践SNMP+Java GetNextとWalk

SNMP4Jを利用したSNMP GetNextとWalk操作について説明します。
まずは、シンプルなGetNextコードから説明します。 
  続きを読む
Posted by netbuffalo at 17:47TrackBack(0)

実践SNMP+Java Get

ここではSNMP4Jを利用したSNMP Getオペレーションについて説明します。
  続きを読む
Posted by netbuffalo at 03:56TrackBack(0)