見出し画像

TWSNMPのロードマップ 2020夏

前回までのTWSNMP開発の努力目標は、そこそこ達成したので、自分で使うには不自由しないレベルになっています。でも、それで満足していてはプログラマーとして成長が止まってしまいます。そこで新たな努力目標を考えることにしました。期限は今年の夏休みまでにしました。
「ネコハラ」で目標の検討が止まってましたが、ここ2,3日の気温上昇で猫は熟睡していたので、やっとまとめられました。

ちなみに、最初の目標は、

前回の目標は、

です。アプリストアで公開することだけは、もう少しソフトウェアのレベルが上がるまで保留にしています。

まずは市場調査

使っている人(私も含む)の要望や興味深い技術だけ見て改善点や新しい機能を考えていても行き詰まってしまいます。ちゃんと世の中のことを調べないと井の中の蛙です。そこで市場調査することにしました。
ネットで検索すれば、同じような目的の製品に関する情報は、いくらでも得られます。ありがたいことに、ランキングにまとめているサイト

もあります。日本も市場で求められている機能が見えてきます。驚くような値段で売っていることも知りました。でも利用しているユーザーの数と開発の歴史だけはTWSNMPが勝っているのかも?と思いました。
「比べる相手を間違っていないか?」と言われそうですが目標は高いほうがやる気がでます。

さて、日本の中で売っている製品だけの調査で満足してはガラケーの比較をしているのと同じかもしれません。実際には、世界的に知られているオープンソースのソフトウェアを利用してネットワーク監視しているほうが多いはずなので、その調査も必要です。最近の事情がわかる記事

を見つけました。ZABBIXとPrometheusは以前から知っていましたが導入する人の評価がわかる記事でなので参考になりました。ありがとう。

いろいろなソフトウェアの機能を調べているとTWSNMPでやりたいことのアイデアが湧いてきました。

新たな目標

いろいろ調べた結果、2020年の夏までの目標を決めました。

・ポーリング機能を改善する。
・複数のTWSNMPを連携して大規模なネットワークにも対応する。
・SNMPv3にも対応する。

他にもやりたいことは沢山ありますが、欲張らないように3つにしました。

ポーリング機能を改善する

基本的なポーリングは実装していますが最近のネットワーク環境に必要なポーリングを追加したいと思います。例えば

・VMWareの仮想基盤の監視(CPU使用率、メモリ使用量、仮想マシンの状態)
・AWS,Azureなどのクラウド環境の監視
・データベースの接続監視
・外部コマンドの実行による監視

のようなポーリングの拡張を考えてます。ポーリングの種類を増やす場合に、今の設定方法だとちょっと面倒です。(自分でも設定方法を忘れてしまいます。)自動設定とかもう少しよい方法を考えようと思っています。

TWSNMPの連携による規模拡大

1台のパソコンで動作するTWSNMPは多くて数百台の監視対象があるネットワークを想定しています。小規模なネットワークに簡単に導入できるというのがポイントです。大規模なネットワーク環境で使いたいという要望もあると思っています。単純に考えるとTWSNMPのソフトウェアを改良してマップを階層化するとか大規模に対応できるデータベースに変えるとか、高性能のパソコンで運用するとか、複雑なAPIで連携するとか考えられますが、そういう方法は、経験上失敗すると思っています。では、どうするか?

画像1

こんなイメージで考えています。TWSNMP自体はそのままでTWSNMP間を連携するためにオープンソースのデータベース

を接着剤のように使います。このデータベースにポーリング結果などを記録すれば、Grafana

というオープンソースのダッシュボードと連携できます。TWSNMPが稼働しているパソコンは、別のパソコンのTWSNMPで監視すればよいと思っています。そのためのポーリング機能は付けるつもりです。

この機能ができると、TWSNMPでポーリングした結果を

画像2

のようなダッシュボードに表示できるようになります。なんだか、ワクワクします。

SNMPv3に対応する

今更ですが、SNMPv3にも対応しておこうと思っています。幸いにも採用したGO言語のSNMPパケージ

は、SNMPv3に対応しているの比較的楽にできそうな気がしています。
でも、最近、本業でSNMPのセキュリティーに関して改めて調べましたが利用できる暗号技術が、今では貧弱な印象でした。そのことも含めて作ってみる価値があると思っています。

その先の夢のメモ

夏までの目標に含めていませんが、いろいろ作りたいアイデアがあります。
メモのために残しておきます。

・TWSNMP for Cloud:クラウド環境で使うTWSNMPです。LinuxのOS一体型のサーバーでWebブラウザーで操作します。
・自動日報レポート:レポートをRedmine(課題管理システム)に自動登録する機能です。
・NetFlowエージェント:小規模環境で手軽に使えるNetFlow収集のエージェントです。

つづく



開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。