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 オムロン(株) / |