見出し画像

TWSNMPのSNMP対応方法

最大のポイントSNMPをどうするか?

TWSNMPマネージャの最大のポイントはSNMPでノードを監視できることです。SNMPは、Simple Network Management Protocolの略ですが、実は、Simpleという名のわりには作るのが難しいプロトコルです。それは、頭のよい人たちが考えた国際標準の ASN.1という仕様を使っているからです。メールやWebページを見るための他のプロトコルは、文字列を送受信するものが多く、こんなに、難しいものは、あまりありません。

最初のSNMPエージェント開発

30年近く前に、SNMPと出会って、最初に作ったエージェントは、商用のTCP/IPプロトコルスタックに、ふんわりと実装されていた(ちゃんと動かない)SNMPエージェントを何とか使えるようにしたものです。ASN.1の仕様を調べて、苦労して実装しましたが、トラブルも多かったと思います。

SNMP Research

その後、ワシントンのインターロップのSNMPのセミナーで講師をしていた Case教授と出会います。英語は不得意な私でも、かなり楽しめる講義でした。Case教授は、SNMPの作者の一人で、SNMPのライブラリを販売する会社SNMP Researchの社長でもあります。最初の開発で、苦労したSNMPの実装も、SNMP Researchのライブラリを使うようになって、ちゃんとしたものが作れるようになりました。エージェントだけでなくSNMPマネージャも開発しました。

SNMP Researchは、アメリカのテネシー州にあり、会社は、テネシーリバーを見下ろす牧場にあります。何度か訪れたことがあります。トラクターにも乗りました。Case教授が日本に来た時も、川越などを案内したことがあります。Case教授に教わったことで、SNMPの本も書くことができました。感謝しています。

画像1

Net-SNMP

オリジナルのTWSNMPはフリーウェアにするため開発にはSNMP Researchのライブラリは使えませんでした。そのため、オープンソースのSNMPライブラリNet-SNMP を使いました。

このライブラリを使って、エージェントやマネージャなどの沢山のSNMP関連のソフトを開発しました。

GOSNMP

今回開発するTWSNMPの復刻版は、GO言語で開発するので、Net-SNMPの利用はできません。そこで、探すと、いいものがありました。

https://github.com/soniah/gosnmp

ありがとう
でも、ちょっと不足する部分がありました。SNMPで情報取得する場合MIBというものを使用します。対象から情報をMIBの名前を指定して取得したいのですが、GOSNMPでは、数値で指定しなければならず、人間であるプログマーにとって不便なライブラリになっています。そこで、

を自作しました。

拡張MIBの読み込み

この記事を最初に書いた後の開発で、MIBファイルをパースできるGO言語のパッケージ

https://github.com/sleepinggenius2/gosmi

を見つけて拡張MIBも読み込めるようにしました。

これで、SNMPをなんとかする部品も、そろいました。

つづく


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
有難き幸せ!
1
私は、TWSNMP Managerの開発者です。 20年以上前に作ったソフトを、今も多くの人に使っていただけて、幸せに思っています。 最近、新しい技術でTWSNMP Managerの復刻版の開発を行っています。 開発日誌やマニュアルをnoteに書いています。

こちらでもピックアップされています

TWSNMPの作り方
TWSNMPの作り方
  • 58本

TWSNMPを開発する時に調べたこと、試してみたこと、見つけた便利ツールについて書いているマガジンです。これからプログラマーを目指す人に、まったく、何もないところからTWSNMPのようなソフトウェアを作る時に、私がどのように考えて、何を調べて、どう判断したかをお知らせできればと思っています。

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。