SNMPでは管理する対象となるネットワーク機器やホストで動作するプログラムをエージェントとよび、エージェントからの情報を一括管理するためのアプリケーションをマネージャと呼びます。ここでは、エージェントとマネージャの機能をもつNET-SNMPのインストール方法を説明します。
SNMPでは管理する対象となるネットワーク機器やホストで動作するプログラムをエージェントとよび、エージェントからの情報を一括管理するためのアプリケーションをマネージャと呼びます。ここでは、エージェントとマネージャの機能をもつNET-SNMPのインストール方法を説明します。
以下のURLから最新のソースを入手してください。
http://net-snmp.sourceforge.net/
今回はnet-snmp-5.1.1.tar.gzをダウロードしました。
http://optusnet.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.1.1.tar.gz
ここではnet-snmp-5.1.1tar.gzをダウンロードしたものとして説明します。
# tar xvfz net-snmp-5.1.1.tar.gz # cd net-snmp-5.1.1 # ./configure ※このあといくつかの質問がありますが全てエンターで問題ないでしょう $ make $ make test -------------------------------------------------- Summary: 44 / 44 succeeded. -------------------------------------------------- $ su # make install
これでインストールは完了です。
/usr/local/bin/以下にインストールされます。
設定ファイルを作成します。展開したディレクトリにテンプレート(EXAMPLE.conf)がありますのでこれを/usr/local/share/snmp/snmpd.confとして利用します。
# cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf # chmod 600 /usr/local/share/snmp/snmpd.conf
設定は
com2sec : セキュリティ名
group : グループ名
view : 取得を許可する情報の範囲
access : グループに対するアクセス
から構成されています。
それでは、設定ファイル/usr/local/share/snmp/snmpd.confの編集をしましょう。
(1) com2sec
ネットワークの範囲とコミュニティ名という2つの値を定義します。
com2sec local localhost hoge com2sec mynetwork 192.168.0.0/24 huga
この設定はセキュリティ名local(127.0.0.1)でコミュニティ名をhogeにしもう1つの定義でセキュリティ名securenet(192.168.0.0/24)でコミュニティ名をhugaにしています。
(2) group
SNMPの各バージョンで採用するセキュリティモデルの定義をします。
group local_group v1 local group local_group v2c local group local_group usm local group secure_group v1 mynetwork group secure_group v2c mynetwork group secure_group usm mynetwork
グループ名がlocal_groupでv1,v2,usmがlocal(127.0.0.1)で利用できる
グループ名がsecure_groupでv1,v2,usmがmynetwork(192.168.0.0/24)で利用できる
(3) view
SNMPで取得可能な情報の範囲を指定します。第4フィールドのMIBのオブジェクトIDと第5フィールドのマスクによって範囲を指定できます。
view view_all included .1 80 view view_mib2 included .1.3.6.1.2.1 fc view view_ucdavis included .1.3.6.1.4.1.2021 fe
(4) access
アクセス許可のための設定です。書式は以下の様になります。
access、グループ名、Context、モデル、認証設定、Contextマッチの方法、read権限、write権限、通知
access local_group "" any noauth exact view_all none none access secure_group "" any noauth exact view_mib2 none none
(5) その他の設定
syslocation 名称や住所を指定する
syscontact メールアドレスを指定する
syslocation hogehoge server syscontact marron <marron@example.com>
では、設定が完了したら、snmpを起動してみましょう。
起動方法は以下の通りです。
# /usr/local/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a
付加したオプションの意味は以下の通りです。
-Lsd : syslogを有効にする
-p : ファイル名 プロセスIDを保存するファイル名
-Lf : snmpdの出力を送るファイル名の指定
-a : 送信元IPアドレス(NMS)をログに記録する
起動スクリプトも用意しましたのでよかったら利用してください。
/etc/rc.d/init.d/snmpd として作成
#!/bin/bash # ucd-snmp init file for snmpd # # chkconfig: 345 50 50 # description: Simple Network Management Protocol (SNMP) Daemon # # processname: /usr/local/sbin/snmpd # config: /usr/local/share/snmp/snmpd.conf # pidfile: /var/run/snmpd # securlevel: 10 # source function library . /etc/rc.d/init.d/functions OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd -a" RETVAL=0 prog="snmpd" start() { echo -n $"Starting $prog: " daemon /usr/local/sbin/snmpd $OPTIONS RETVAL=$? echo touch /var/lock/subsys/snmpd return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc /usr/local/sbin/snmpd RETVAL=$? echo rm -f /var/lock/subsys/snmpd return $RETVAL } reload(){ stop start } restart(){ stop start } condrestart(){ [ -e /var/lock/subsys/snmpd ] && restart return 0 } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; condrestart) condrestart ;; status) status snmpd ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" RETVAL=1 esac exit $RETVAL
では、snmpデーモンを動かしたら早速、マネージャーの利用をしてみましょう。
(1) snmpwalkコマンド
指定したOID以下のMIB情報を取得します。
(書式)
snmpwalk -c <コミュニティ名> <ホスト名> [ 検索範囲 ]
-Os : 出力結果のOIDの最後の拡張子のみ表示
-c : コミュニティ名の指定
-v : SNMPバージョンの指定
(利用例)
# snmpwalk -v1 -c hoge localhost
SNMPv2-MIB::sysDescr.0 = STRING: Linux hoge 2.4.18-17 #1 Fri Feb 20 16:15:57
JST 2004 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (23518) 0:03:55.18
SNMPv2-MIB::sysContact.0 = STRING: marron
SNMPv2-MIB::sysName.0 = STRING: hoge
SNMPv2-MIB::sysLocation.0 = STRING: hogehoge server
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
(2) snmpgetコマンド
指定したOIDのMIBの情報を取得します。
(使用例)
# snmpget -v1 -c hoge localhost system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux huga 2.4.18-17 #1 Fri Feb 20 16:15:57
JST 2004 i686
(3) snmpgetnextコマンド
snpgetの実行と同じようにオプションを指定すると指定したODIのツリーの次のMIB情報を取得します。
# snmpgetnext -v1 -c hoge localhost **********
(4) snmptranslateコマンド
MIBの名前解決を行うことが出来ます。
i) オブジェクトIDをMIBシンボル名に変換する場合
(使用例)
# snmptranslate 1.3.6.1.2.1.25.3
ii) MIBシンボル名を数値(オブジェクトID)に変換する場合
(使用例)
# snmptranslate -On HOST-RESOURCES-MIB::hrDevice
iii) オブジェクトIDの全体パスを表示せずにオブジェクトIDを表示
(使用例)
# snmptranslate -On -IR hrDevice
iv) 指定したMIBシンボル名/オブジェクトIDの詳細を表示
(使用例)
# snmptranslate -Td .1.3.6.1.2.1.1.1
v) 指定したMIBシンボル名/オブジェクトID以下のツリー構造を表示
(使用例)
# snmptranslate -Tp
ディーリンクジャパン SNMP マネージメントモジュール(DMC-1000専用) DMC-1002 ディーリンクジャパン / ¥ 32,710 |
|
アライドテレシス AT-WDM03 SNMPマネージメントモジュール 59559 アライドテレシス / ¥ 66,698 |
|
SC20G SNMP/WebカードオムロンSC20G9760009268931 オムロン(株) / |