Last Update: "2009/04/30 08:21:05 makoto"
|
mrtg |
SNMPD & MRTG
reference - MRTG 2.9.22設定項目
net-snmp
|
以前には ucd-snmpd と呼ばれていたものが名前が変って net-snmp
となりました。
snmpd の利用方法はいくつも考えられますが、一つは図のように
mrtg を使って、情報を収集し、Web サーバで公開することです。
その場合には、次のようにするのが普通です。
- snmpd が動いていて、問合せがあれば、情報を送るようにしておく
-
mrtg
が、snmpd に問合せを送り、その情報に基づいて
*.html, *.png の形式で情報を作成する
- 前項を cron 等でたびたび起動する
- apache 等の Web サーバにより、その *.html, *.png 等を
閲覧可能にしておく
|
PKG_PATH を設定してから
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.d
net-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
|