安定したコンピュータ業務のために。お気軽にお問い合わせください。

net-snmpを用いたFreeBSDサーバモニタリング

UNIXシステムをはじめとして、WindowsやMac OSなどの稼働状況を常時モニタリングする仕組みの一つに、snmpが挙げられます。さまざまなOSが混在する場合でもほぼ一意の手順にて各サーバの稼働状況を確認することができるので非常に便利です。そこで、ここではFreeBSDサーバへのsnmp設定導入手順についてご紹介します。

net-snmpのインストール

snmpサービスを利用するためのパッケージとして、ucd-snmp、net-snmpが主として考えられますが、ここではnet-snmpを利用します。好みによって使い分けてください。
net-snmpはportsコレクションから簡単にインストールできます。
# cd /usr/ports/net-mgmt/net-snmp
# make install
インストール後に表示される情報に従い、snmp起動設定を行います。以下内容を/etc/rc.confに追加します。
#
# Net-SNMP
snmpd_enable="YES"
snmpd_flags="-a"
snmpd_conffile="/usr/local/share/snmpd.conf"
snmptrapd_enable="YES"
snmptrapd_flags="-a -p /var/run/snmptrapd.pid"
続いてsnmp設定ファイルを作成・編集します。
# cd /usr/local/share/snmp
# cp ./snmpd.conf.sample ./snmpd.conf
# vi snmpd.conf

編集箇所1:コミュニティー名

snmpコマンドでサーバの情報を取得する場合にはコミュニティー名という識別子を用います。これがパスワードのような役割をしますので、できるだけ標準値から変更するよう心がけてください。また、NETWORKを限定してコミュニティーを作成することができますので適切に設定します。たとえば、自ホストからの接続をコミュニティー名「localsnmp」、ネットワーク「192.168.0.0/24」からの接続をコミュニティー名「localnet」とする場合、
61 com2sec local     localhost       COMMUNITY
62 com2sec mynetwork NETWORK/24      COMMUNITY
の箇所を、
61 com2sec local     localhost       localsnmp
62 com2sec mynetwork 192.168.0.0/24  localnet
と変更します。 com2secの次に記述している「local」「mynetwork」はそれぞれセキュリティーレベルの識別子として利用されますので覚えておきましょう。続いて、グループ設定を行います。

グループ設定

グループ設定では、どのセキュリティー識別子(ネットワーク)からどのプロトコル(v1, v2c, usmなど)で接続した場合にどのグループに所属させるかを記述します。標準では次の通りです。
67 #               sec.model  sec.name
68 group MyRWGroup v1         local
69 group MyRWGroup v2c        local
70 group MyRWGroup usm        local
71 group MyROGroup v1         mynetwork
72 group MyROGroup v2c        mynetwork
73 group MyROGroup usm        mynetwork
各グループ名に権限を定義している箇所は以下です。
85 #                context sec.model sec.level match  read   write  notif
86 access MyROGroup ""      any       noauth    exact  all    none   none
87 access MyRWGroup ""      any       noauth    exact  all    all    none
MyROGroupはReadOnlyで設定されており、MyRWGroupからはsnmpを通じで値の設定が可能であることがわかります。

snmpdの起動

以上で設定は完了です。他のサブシステム同様に以下のコマンドでsnmpdを起動できます。
# /usr/local/etc/rc.d/snmpd start
# /usr/local/etc/rc.d/snmptrapd start

snmpコマンドでパフォーマンスモニタリング

snmpdが起動したらどのような情報が取得できるか確認してみましょう。snmpで情報を取得するためのコマンドは主に、 「snmpwalk」「snmpget」があります。
ksakurai@gw# snmpwalk -v1 -c isys nsb .1
SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD gw.i-sys.biz 6.3-STABLE
 FreeBSD 6.3-STABLE #2: Thu Jul 24 22:04:17 JST 2008
      ksakurai@gw.i-sys.biz:/usr/obj/usr/src/sys/GW i386
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (43813) 0:07:18.13
SNMPv2-MIB::sysContact.0 = STRING: Me <me@somewhere.org>
SNMPv2-MIB::sysName.0 = STRING: gw.i-sys.biz
SNMPv2-MIB::sysLocation.0 = STRING: Right here, right now.
SNMPv2-MIB::sysServices.0 = INTEGER: 72
・・・
ksakurai@gw# snmpget -v1 -c isys nsa .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD nsa.i-sys.biz 6.3-STABLE
 FreeBSD 6.3-STABLE #11: Thu Jul 24 22:51:28 JST 2008
      ksakurai@nsa.i-sys.biz:/usr/obj/usr/src/sys/DISK i386
それぞれのコマンドの引数に -v 、-c を利用していますが、それぞれsnmpのプロトコルバージョン、コミュニティー名を指定しています。



パートナー



ニュースリリース | 会社概要 | プライバシーポリシー | リンク | ©2002-2008 Integrated Systems Co. Ltd. All Rights Reserved.