snmp 設定

参考1:http://www.itmedia.co.jp/enterprise/special/0705/snmp/
参考2:http://www.cosmo.sci.hokudai.ac.jp/~jgn/tebiki/mrtg/snmp.html
参考3:http://www.uetyi.mydns.jp/wordpress/tag/snmp



cloudforecast を設定するに当たり、snmp について簡単に勉強したのでそのまとめ。
ほぼデフォルトの設定。アクセス元だけ制限してる。

####
# First, map the community name "public" into a "security name"

#       sec.name  source          community
com2sec notConfigUser  192.168.0.0/16       public

####
# Second, map the security name into a group name:

#       groupName      securityModel securityName
group   notConfigGroup v1            notConfigUser
group   notConfigGroup v2c           notConfigUser

####
# Third, create a view for us to let the group have rights to:

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    all            included   .1                 80

####
# Finally, grant the group read-only access to the systemview view.

#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""      any       noauth    exact  all none none

disk / 10000
com2sec
sec.name セキュリティ名。識別子。
source 問い合わせ可能なホスト名/IP アドレス。"default" ですべてのホストから受け付け。
community コミュニティ名。パスワード的な物。
group
groupName グループ名。複数のユーザを紐付けできる?
securityModel セキュリティモデル(バージョン)の指定。v1, v2c, usm のいずれかを選択。
securityName グループにひもづけるユーザを指定。sec.nameを使用。
view
name 閲覧範囲を指定するグループ名。accessで使用?
incl/excl included または excluded を選択。用途不明。
subtree set/get を許可する MIB ツリー名。種類多すぎ。
mask(optional) MIB ツリーの指定方法を 16 進 4 桁表示したもの(らしい)。よくわからん。
access
group group で指定したグループ名。
context SNMPv1, SNMPv2c を用いる場合は空欄 ("") 。詳細不明。
sec.model セキュリティモデル名。any でおk?
sec.level セキュリティレベル。SNMPv1, SNMPv2c を用いる場合は noauth。
prefix よくわからん。exactでおk?
read/write/notif get (読みだし), set (書き込み), trap (通知)出来る範囲をviewのnameで指定。

cloudforcast について

cloudforecast で以下のようなエラーが出るが、memShared が2.6 kerne では使えないためっぽい。

2011-09-18T06:10:00 [WARN] c:Component::SNMP,h:man1,ad:man1 SNMP get failed: memShared.0.NOSUCHOBJECT.INTEGER32 error: NOSUCHOBJECT {lib/CloudForecast/Component/SNMP.pm#39}

Debian 系の snmp について

参考1:http://perltips.twinkle.cc/linux/ubuntu/snmp_remote.php
参考2:http://blog.s21g.com/articles/251

Debian では /etc/default/snmpd を読み込んで、172.0.0.1 からしか Listen しないようデフォルトで設定されている。
他のノードからアクセスする際は、/etc/default/snmpd を下記のように書き換える。

#SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'