簡単SNMP(環境構築編)
SNMPで誤解してた部分を勉強し直したついでに纏めてみた。
前回(概要編)の続き
今回は環境構築編。
設定ファイルが結構クセモノなので次回に持ち越す予定
net-snmp ( on centos6.2 x86_64 )
インストール
- 本体
- 簡単。
# yum install net-snmp
- ツール(SNMPクライアント等)
- 無いと確認が大変なので入れとく。
本来はネットワーク越しにアクセスするので要らない。
# yum install net-snmp-utils
構成
/etc/snmp/snmpd.conf 設定
デフォルト状態(コメント削除)
# sec.name source community com2sec notConfigUser default public # groupName securityModel securityName group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact systemview none none # この辺デフォルトで良い。(余計な情報) syslocation Unknown (edit /etc/snmp/snmpd.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) # SNMP接続ログが減る dontLogTCPWrappersConnects yes
- access
- group と viewを紐付け
- view
- ツリーのどの部分を見せるか?
- group
- userが紐付く
- community
- 秘密。ほぼパスワード
色々書こうしたけど、、どうやっても長くなるからやめた。
割と普通のユーザ管理&ディレクトリパーミッションの発想なので
あとは感じてくれ!!
一旦デフォルトで起動してしまう。
SNMPD 起動
- 起動・終了
- なんの捻りも無い
/etc/init.d/snmpd start /etc/init.d/snmpd stop /etc/init.d/snmpd restart
# /sbin/chkconfig --level 345 snmpd on
頻出コマンド
- snmpd
- コンフィグの状態などを知りたい時に使う
/usr/sbin/snmpd -Dread_conf -H /usr/sbin/snmpd -Dall -H 2>&1 | grep read_conf
- snmptranslate
- 名前解決や詳細など。MIB定義を解析しているのでsnmpdは必要ない。
$ snmptranslate .1.3.6.1.4 SNMPv2-SMI::private # -Of フルパス名前表記 $ snmptranslate -Of .1.3.6.1.4 .iso.org.dod.internet.private # -On コード表記 $ snmptranslate -On SNMPv2-SMI::private .1.3.6.1.4 # -Tp ツリー表記 $ snmptranslate -Tp .1.3.6.1.4 | head +--private(4) | +--enterprises(1) | +--ucdavis(2021) | | | +--prTable(2) | | | | | +--prEntry(1) | | | Index: prIndex # -Td 詳細 $ snmptranslate -Td .1.3.6.1.2.1.1.4 SNMPv2-MIB::sysContact sysContact OBJECT-TYPE -- FROM SNMPv2-MIB, RFC1213-MIB -- TEXTUAL CONVENTION DisplayString SYNTAX OCTET STRING (0..255) DISPLAY-HINT "255a" MAX-ACCESS read-write STATUS current DESCRIPTION "The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) 4 }
- snmpwalk
- 指定パス以下の値を再帰なめ
# snmpwalk -v SNMPバージョン -c コミュニティ名 接続先 パス(OID) $ snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.2.1.1 | head SNMPv2-MIB::sysDescr.0 = STRING: Linux centos6 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (101106) 0:16:51.06 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: foo SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01 SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1 SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
- snmpget
- 単発get
# snmpwalkとほぼ一緒 $ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0 SNMPv2-MIB::sysName.0 = STRING: centos6
- snmpset
- あまり使わないが一応紹介(デフォルト設定のsnmpdでは拒否される)
OID定義がread-write、かつ、snmpd.conf設定で書き込み可能の場合のみ
色々リモート制御できる。
$ snmpset -v 1 -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0 s foo SNMPv2-MIB::sysName.0 = STRING: foo