SNMPとは
既にSNMPをご存知の方も多いと思います。「Simple Network Management Protocol」の略です。SNMPが世に現れて約20年ほど経ちました。現在ではインターネット標準プロトコルであり、広く知られた管理系プロトコルです。
ドキュメントが少なく、仕様の複雑なSNMP
しかしその名前とは裏腹に、利用方法においても管理・監視方法も、決して「Simple」ではありません。他のプロトコルと違い、異なるバージョン同士でも動くように実装する必要がありますし、個人的な経験では、SNMPの特にエージェントの拡張方法に関する情報はネット上でもあまり見当たりません。これはSNMPの仕様の拡張された経緯が複雑であるためです。必然的にRFCでも散文化されており、その仕様自体もかなり複雑です。
そんなSNMPについて、私は縁あってSNMPに触れる機会に多少恵まれて調査しました。当レポートは調査終了以降も独自で調査・試行錯誤した結果をまとめたものです。もちろん当レポートがSNMPを完全に説明したものではありませんし、間違ってる箇所もあるでしょう。しかし、先に述べたとおりSNMPにかかわる開発はかなり専門的であると思われ、よって当レポートがSNMPにかかわる方々の一助に成り得ると思っています。
対象読者・動作環境
当レポートでは、エージェントにオープンソースであるnet-snmpを使い、対象機器をLinuxとしています。エージェント開発では自動生成されるコードがC言語ということもあり、C言語の知識が若干必要です。マネージャをLinuxとWindows両方に置き、Linuxではnet-snmpを、Windowsではtwise labo社製のTWSNMPというフリーソフトを使用します。ただし当レポートは主にnet-snmpによる エージェントの設定・開発方法を明確にすることに重点を置いていますので、例えばマネージャによるグラフ化ツールの説明などは省きます(グラフ化ツールで有名なのはMRTGです、TWSNMPもできるようです)。
レポートの構成
構成は次のとおりです。
- 1章:監視・管理の重要性とSNMPの関わりについて
- 2章:SNMPの基礎知識
- 3章:net-snmp環境の構築
- 4章:snmpd.conf について
- 5章:net-snmpによる機器監視
- 6章:Trapについて
- 7章:拡張MIBを使用する方法
- 8章:SNMPv3について
- 9章:最後に
当レポートでSNMPに興味を持たれ、また実際の実装の一助となれば幸いです。
1. 監視・管理の重要性とSNMPの関わりについて
いきなりですが、KOMATSUという会社をご存知でしょうか?
すごく大きな建設用の機械、ショベルカーやダンプ、ブルドーザーなどを製造販売している会社です。最近ではヤンキース松井がCMに出てましたね。2008年度の売り上げは約2兆6000億円、2002年は800億円の赤字だったんですから、まぁ見事なV字回復です。さらに売上比率で言うと日本国内は全体の20%に過ぎず、全世界で売り上げを伸ばしている会社です。
そのKOMATSUですが、製造販売した作業機械にはすべてGPSを組み込んでいて、定期的に機械の情報を通知したり遠隔操作したりする機能が組み込まれています。現在位置はもちろん、稼動状況やガソリン残量の通知、エンジンのON/OFF、各部品の摩耗状態の確認、果ては遠隔操作までできてしまうそうです。これらの情報を一元的に管理および操作することで、製造や在庫、販売計画などを非常に柔軟に行え、かつ盗難防止などにも効果があるとのこと。
このような遠隔にある装置から定期的に情報を収集する機能、遠隔にある装置を操作する機能を提供するプロトコルこそが、SNMPです(KOMATSUがSNMPを使って上記システムを構築しているかまでは分かりませんが……)。
システムの監視・管理の重要性
KOMATSUの例にもあるように、システムや製品の監視・管理は近年重要度が益々認知されています。その理由は次のとおりです。
- システムが正常に稼働しなければ、損失が発生する
- システムを管理しなければ、障害の発生率が高くなる
- 障害は他のシステムに影響を及ぼす可能性がある
- システムのパフォーマンスが低下すると、コストパフォーマンスも低下する
- 障害や損失が発生した場合、社会的信用の損失を招く恐れがある
- システムを適切に監視する事は、新たなサービス、付加価値を産む事ができる
つまり、監視・管理は「自分たちの利益を守ること、利益を産み出していくこと」なのです。では具体的に何を監視・管理すればよいのでしょうか? それは以下のことを指します。
- ハードの稼働状況
- ソフトの稼働状況
- システムリソース(システムパフォーマンス)
- ネットワークトラフィック
- システムログに記録される特定のメッセージ
- システムログの急激な増減
SNMPの役割
最近、ユビキタスコンピューティングという言葉を聞くようになりました。あらゆるものがネットワークに接続される時代、監視・管理する対象が今後増えていくことになりますし、KOMATSUの例を見て分かるようにビジネスチャンスにもなりえます。また監視・管理する対象が増えることは、監視方法によってコストが大きく異なることでもあります。
最も安易な方法は管理者やオペレータによる手作業での監視ですが、ミスが発生しやすくコストも高く、とても現実的とは言えません。より質の高いシステム管理を低コストで実現するには、監視ツールによる自動監視が不可欠です。ネットワークシステムを定期的に監視し、特定の条件(障害発生など)を満たした場合に管理者やオペレータに通知するような監視ツールを利用することで、問題を早急に発見し、速やかに対処できるようになります。
SNMPはそのような問題を解決するためのルールであり、世界で広く利用されているプロトコルです。