| Last Update: "2009/04/30 08:21:05 makoto"
|
mrtg | 
SNMPD & MRTG
reference - MRTG 2.9.22設定項目 net-snmp
PKG_PATH を設定してから|   | 以前には ucd-snmpd と呼ばれていたものが名前が変って net-snmp 
となりました。
snmpd の利用方法はいくつも考えられますが、一つは図のように
mrtg を使って、情報を収集し、Web サーバで公開することです。
その場合には、次のようにするのが普通です。 
 snmpd が動いていて、問合せがあれば、情報を送るようにしておく
 
mrtg
が、snmpd に問合せを送り、その情報に基づいて 
*.html, *.png の形式で情報を作成する
 前項を cron 等でたびたび起動する
 apache 等の Web サーバにより、その *.html, *.png 等を
閲覧可能にしておく
 |  ttyp7:makoto@u 10:24:30/080427(~)# cat /root/.set-PKG_PATH
#export PKG_PATH=ftp://ftp2.jp.netbsd.org/pub/pkgsrc/packages/NetBSD-4.0/amd64/All
setenv PKG_PATH ftp://ftp2.jp.netbsd.org/pub/pkgsrc/packages/NetBSD-4.0/amd64/All
ttyp7:root@u 10:28:13/080427(~)# source /root/.set-PKG_PATH
pkg_add net-snmp をすると、次のようになります。 ttyp7:root@u 10:28:19/080427(~)# pkg_add net-snmp
tar: ustar vol 1, 618 files, 12503040 bytes read, 0 bytes written in 10 secs (1250304 bytes/sec)
pkg_add: Warning: package `ftp://ftp2.jp.netbsd.org/pub/pkgsrc/packages/NetBSD-4.0/amd64/All/net-snmp-5.4.1nb1.tgz'
  was built for a different version of the OS:
pkg_add: NetBSD/x86_64 4.0 (pkg) vs. NetBSD/x86_64 4.0.0_PATCH (this host)
===========================================================================
The following files should be created for net-snmp-5.4.1nb1:
        /etc/rc.d/snmptrapd (m=0755)
            [/usr/pkg/share/examples/rc.d/snmptrapd]
        /etc/rc.d/snmpd (m=0755)
            [/usr/pkg/share/examples/rc.d/snmpd]
===========================================================================
===========================================================================
$NetBSD: MESSAGE,v 1.1.1.1 2002/10/24 08:29:33 jlam Exp $
If you do not have an existing snmpd.conf configuration file, you may
generate one using snmpconf(1), e.g.:
        /usr/pkg/bin/snmpconf -g basic_setup
The resulting config file should be placed in:
        /usr/pkg/etc/snmpd.conf
===========================================================================
ttyp7:root@u 10:29:13/080427(~)#
 設定pkg_add の後は /etc/rc.conf/snmpd と /usr/pkg/etc/snmpd.conf を用意します。
  snmpd
ttyp7:root@u 10:30:18/080427(~)# cp -p /usr/pkg/share/examples/rc.d/snmpd /etc/rc.dnet-snmp-5.1.2nb3 よりも前の場合なら: ttyp3:makoto@u  11:51:14/041214(...net/net-snmp)> sudo cp -p /usr/pkg/etc/rc.d/snmpd /etc/rc.d
snmpd.conf
設定例は次のところにあるので参考にします。
/usr/pkg/share/examples/net-snmp/EXAMPLE.conf
これを
/usr/pkg/etc/snmpd.conf
に写して設定します。設定例(変更例)としては次のようなものがあります 
 #       sec.name  source          community
-com2sec local     localhost       COMMUNITY
-com2sec mynetwork NETWORK/24      COMMUNITY
+com2sec local     localhost       foovar
+com2sec mynetwork 192.168.1.0/24      public
http://www.jpring.net/jitaku/snmp-mrtg.html 起動実際に起動して見ます。 /etc/rc.conf に設定のない時には次のようになってしまいますttyp3:makoto@u  11:51:52/041214(...net/net-snmp)> sudo /etc/rc.d/snmpd start
/etc/rc.d/snmpd: WARNING: $snmpd is not set properly - see rc.conf(5).
その時でも、一時的に設定して起動出来ます。 ttyp3:makoto@u  11:52:00/041214(...net/net-snmp)> env snmpd=YES sudo /etc/rc.d/snmpd start
Starting snmpd.
ps で見ると、次のように動いているのが分ります。 ttyp3:makoto@u  11:52:10/041214(...net/net-snmp)> ps ax |grep snmp
4950 ?? I    0:00.19 /usr/pkg/sbin/snmpd -Ls d -p /var/run/snmpd.pid 
誤って通常権限で起動すると、/var/log/messages に次のように言われます 
taormina snmpd[11859]: init_kmem: kvm_openfiles failed: /dev/mem: Permission denied
機械が起動する時に自動的に snmpd が動くようにするには /etc/rc.conf
に次のように書いておきます。 
snmpd=YES
 log放っておくと、/var/log/message に
Dec 26 12:21:46 hostname snmpd[494]: Connection from 192.168.1.100
というような字が沢山記録される。
これを
別の譜にしたいという時には、
これで snmpd からの通常のお知らせは
/var/log/daemon
に出るようになる。 また、もし /var/log/messages の方に出ないようにしたい時には
上の変更とともに、多分青字の追加が必要。 
*.info;auth,authpriv,cron,ftp,kern,lpr,mail.none,daemon.none    /var/log/messages
コンソール画面に出ているものを抑えるにも、同様の変更が必要です。 mrtgネットワーク機械の方で snmpd を動かしておき、
mrtg でその情報を図示します。mrtg は別の機械で動かすことも可能です。
mrtg を定期的に動かす
 
0,5,10,15,20,25,30,35,40,45,50,55 * * * *  /usr/pkg/bin/mrtg /home/makoto/network/mrtg/gw.cfg
この gw.cfg (名前は一例)は 
/usr/pkg/bin/mrtgcfgmaker
を使って作る。 
ttyp0:makoto@u2  12:34:30/041214(/tmp)> mrtgcfgmaker --no-down hostname
--base: Get Device Info on public@hostname:
SNMP Error:
no response received
SNMPv1_Session (remote host: "hostname" [192.168.xx.yy].161)
                  community: "public"
                 request ID: 1570008514
                PDU bufsize: 8000 bytes
                    timeout: 2s
                    retries: 5
                    backoff: 1)
 at /usr/pkg/lib/perl5/site_perl/5.6.1/SNMP_util.pm line 570
SNMPWALK Problem for 1.3.6.1.2.1.1 on public@hostname:
 at /usr/pkg/bin/mrtgcfgmaker line 709
以上は、snmpd.conf の設定が不充分な時。
実際には次のように作ります
ttyp0:makoto@u2 9:30:43/051021(/tmp)> mrtgcfgmaker --no-down u2 > u2.cfg
--base: Get Device Info on public@u2:
--base: Vendor Id: 
--base: Populating confcache
--snpo: confcache public@u2: Descr gm0 --> 1
--snpo: confcache public@u2: Descr lo0 --> 2
--snpo: confcache public@u2: Descr fw0 --> 3
--snpo: confcache public@u2: Type 6 --> 1
--snpo: confcache public@u2: Type 24 --> 2
--snpo: confcache public@u2: Type 144 --> 3
--snpo: confcache public@u2: Ip 127.0.0.1 --> 2
--snpo: confcache public@u2: Ip 192.168.1.31 --> 1
--snpo: confcache public@u2: Eth 00-xx-65-43-ef-yy --> 1
--snpo: confcache public@u2: Eth  --> 2
--snpo: confcache public@u2: Eth  --> 3 (duplicate)
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
--base: Walking ifSpeed
ttyp0:makoto@u2 9:31:40/051021(/tmp)> 
これだけですと、WorkDir が設定されていないので、次のようになります。 
ttyp0:makoto@u2  13:47:43/041214(/tmp)> mrtg hostname.cfg 
ERROR: "WorkDir" not specified in mrtg config file
そこで、WorkDir を、実際に書き出す位置に設定します。 
ERROR: CFG Error in "workdir", line 19: Working directory /home/htdocs/www/mrtg/u2 does not exist
それは予め作っておきます。 snmpget動作を確認する一つの方法は次のようにすることですsnmpget -v 1 -c COMMUNITY TARGET '.1.3.6.1.4.1.2021.10.1.5.3'
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 162
TARGET の部分には例えば機械の名前を入れます。ここで使った 
OID
 =  .1.3.6.1.4.1.2021.10.1.5.3
は、次のようなもので CPU 使用率を意味します。 
.1.3.6.1.4.1.2021.10.1.5.1  1 分間
.1.3.6.1.4.1.2021.10.1.5.2  5 分間
.1.3.6.1.4.1.2021.10.1.5.3 15 分間
こんな(良く分らない)数字を使わなくても、 snmpget -v 1 -c public pisa memTotalSwap.0
のような
名前で指定
することも出来ます。 snmpwalk手軽に snmpd の動作を確認するには snmpalk を使うと簡単です
 snmpwalk -v 1 -c COMMUNITY TARGET OID
のように使います。
OID の部分は、 
 .1.3.6.1.4.1.2021.11.50.0
のような数字とか、system というような包括的な名前などを入れます。
例えば、次のように入力します。 
 snmpwalk -v 1 -c public hostname system
また例えば uptime を表示させたければ次のようにします 
snmpwalk -Os -c COMMUNITY -v 1 HOSTNAME sysUpTime.0
 man pages
snmpwalk(1)
snmpcmd(1)
variables(5)
RFC 1066 MIB Management Information Base
/usr/pkg/share/snmp/mibs/
 参考
3. SNMPの要素(マネージャ/エージェント/MIB)
http://www.stackasterisk.jp/tech/systemManagement/snmp01_02.jsp
MRTGで行うサーバー監視 2004-08-28  (JPRING.NET)
http://www.jpring.net/jitaku/snmp-mrtg.html
MRTGの設定 (樹羅工房 jura.homeip.net)
http://jura.kb.homeip.net/redhat/mrtg/index.html
 SNMPD & MRTG (絹)
http://www.ki.nu/software/NetBSD/mrtg/
MRTGによるサーバ監視(SuSE編)
http://www.aconus.com/~oyaji/suse/mrtg_suse.htm
 |