01 July 2007

UbuntuにデフォルトでSNMPが導入されていない…

Ubuntuにはsnmpサービスが標準で導入されていないみたいですね…
(最近は、Ubuntuを使う企業さんも増えてきて…。 聞かれるまで気づきませんでした)

とりあえず、snmpをインストールしてみました

snmpdのインストール

(snmpパッケージは、snmpwalkツールを実行するために必要。なお、デフォルトでsnmpdがインストールされているFedoraの場合で、snmpwalkを使うためには、net-snmp-utilsをインストールする必要がある)

Ubuntu (debian) の場合

root@localhost:~$ sudo apt-get install snmpd

root@localhost:~$ sudo apt-get install snmp

Fedora の場合

[root@localhost ~] yum install net-snmp-utils

設定ファイルを書き換える

/etc/snmp/snmpd.conf

####
# First, map the community name (COMMUNITY) into a security name
# (local and mynetwork, depending on where the request is coming
# from):

# sec.name source community
#com2sec paranoid default public
#com2sec readonly default public
#com2sec readwrite default private

#コミュニティ名と参照者、セキュリティ名の宣言
#com2sec セキュリティ名 参照者 コミュニティ名
com2sec readwrite localhost private
com2sec readonly default public



####
# Second, map the security names into group names:

# sec.model sec.name
#グループ名とセキュリティ名の対の宣言
#group グループ名 MIBモデル セキュリティ名

group MyROSystem v1 paranoid
group MyROSystem v2c paranoid
group MyROSystem usm paranoid
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
group MyRWGroup v1 readwrite
group MyRWGroup v2c readwrite
group MyRWGroup usm readwrite

####
# Third, create a view for us to let the groups have rights to:
# グループに対するアクセス権限の設定で利用するエイリアス
# ここで設定したMIB以下がアクセス可能になる

# incl/excl subtree mask (optional)
view all included .1
view system included .1.3.6.1.2.1

####
# Finally, grant the 2 groups access to the 1 view with different
# write permissions:

# context sec.model sec.level match read write notif
#グループ名に対するアクセス権限の設定
#access グループ名 アクセス権限…

access MyROSystem "" any noauth exact system none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none

# -----------------------------------------------------------------------------

そのコンピュータ自身 : (コミュニティ名)private (アクセス権限)RW
他のコンピュータから : (コミュニティ名)public (アクセス権限)R

というような設定にしている

設定ファイルを書き換えた後に、サービスを再起動する


root@localhost:~# /etc/init.d/snmpd stop
Stopping network management services: snmpd snmptrapd.
root@localhost:~# /etc/init.d/snmpd start
Starting network management services: snmpd.

snmpで情報が読み取れるかどうか、テストを行って終了する


// 全てのMIBを表示する場合

root@localhost:~# snmpwalk -v1 localhost -c public

// 指定したMIB以下の情報を表示する場合
// (.1.3.6.1.2.1 以下のMIBを表示する例)

root@localhost:~# snmpwalk -v1 localhost -c public .1.3.6.1.2.1

// 特定の文字列のMIBを表示する (この場合はuptime)

root@localhost:~$ snmpwalk -v1 localhost -c public uptime
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (180933) 0:30:09.33

// 特定の文字列のMIBを表示して、MIBも数値形式で表示

root@localhost:~$ snmpwalk -v1 localhost -c public uptime -On
.1.3.6.1.2.1.1.3.0 = Timeticks: (182491) 0:30:24.91