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