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に追加します。# make install
#
# 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設定ファイルを作成・編集します。# 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"
# cd /usr/local/share/snmp
# cp ./snmpd.conf.sample ./snmpd.conf
# vi snmpd.conf
# 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
グループ設定
グループ設定では、どのセキュリティー識別子(ネットワーク)からどのプロトコル(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
snmpdの起動
以上で設定は完了です。他のサブシステム同様に以下のコマンドでsnmpdを起動できます。
# /usr/local/etc/rc.d/snmpd start
# /usr/local/etc/rc.d/snmptrapd 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