Docker ユースケース【監視対象としてのSNMP Agent】
物理サーバでも、仮想マシンでもない、Dockerを始めとしたコンテナ型の仮想化が有効なユースケースがあります。
それは、SNMP Agentとしてです。
具体的には、SNMP Agentを監視するSNMP Managerの試験などの用途として、大量のSNMP Agentが必要な場合、に効果的だと思います。
SNMP Managerの試験について
SNMP Managerは、大量のサーバやプロセス、ログなどを監視するアプリケーションを指します。
その試験のためには、監視対象となる大量のサーバや、プロセス、ログが必要です。
物理サーバを用意するのが難しいのは、もちろんですが、仮想OSを用意するにしても、数百、数千、数万の仮想OSを用意するとなると、サーバリソースが多く必要となり、やはり、現実的には、難しくなってきます。
では、SNMP Agentが大量にいると見せかければ、よいのでは?
という発想になり、ひとつのサーバに複数のIPアドレスを割り当て、それらを個別に監視することで、大量の監視対象がいるように見せかけることができることがあります。
それで解決できれば、今日の、この後の話はなかったことにしてください。> <
ただ、昨今のSNMP Managerは賢く、
複数のIPアドレスが付与されていることを検知して、別々に監視しようとしても、同一ホストと判断し、登録できない場合があります。
そのため、SNMPのレイヤでは、少なくとも、監視対象は分割されている必要性が出てきます。
そこで、Dockerです。
Dockerを使えば、Dockerごとに別のSNMP Agentとして、SNMPを使用することができます。
また、仮想OSに比べ、(基本的に)SNMP Agentのプロセスのみをコンテナ内で起動すれば良いため、必要なサーバリソースがガクッと減ります。
ものにもよるかと思いますが、数MB~数十MBくらいのメモリ量でコンテナを起動できます。仮想OSとなると1GB程度は必要かと思いますので、結果として、数百、数千台規模のAgentを用意することが可能になります。
最後に、SNMP Agentとして利用できるオープンソースを紹介します。
SNMPSIMというものです。
これの良い所は、様々な種類のSNMP Agentを擬似できるところで、
事前に、本物の機器からMIB値の情報を集めておけば、収集した値を応答するAgentが簡単に起動できるのです。
まだ困っていること
監視対象として使用する場合は、監視対象のIPアドレスを登録するため、
コンテナを起動するたびに、IPアドレスが変わってしまうのは非常に困ります。
DockerはそのDeployの容易性などの目的のため?、固定IPアドレスを明確に割り振る手段が備わっていない(v1.3.0時点)ので、固定IPアドレスを割り当てたい場合は、それ用のツールを使用する必要があります。
Dockerの機能として、実現できるといいなぁと思っているのですが、もう少し時間がかかりそうですかね。