- PR -

Net-SNMP と MRTG による空きメモリの監視について

1
投稿者投稿内容
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2007-04-25 13:03
サーバ側 (RHEL 4) で Net-SNMP を起動し、MRTG (ver 2.15.1) で監視の設定をしてみたのですが、空きメモリの情報が正確に取得できていないようです。

[ `Daily' Graph (5 Minute Average) ]

Max Average Current
Real 256.6 MBytes 18.1 MBytes 52.0 KBytes
Swap 1297.5 MBytes 125.6 MBytes 23.0 KBytes

[ mrtg.cfg ファイルの空きメモリに関する設定内容 ]

Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@xxx.xxx.xxx.xxx
SetEnv[mem]: MRTG_INT_IP="xxx.xxx.xxx.xxx" MRTG_INT_DESCR="bond0"
MaxBytes1[mem]: 200000
MaxBytes2[mem]: 200000
Unscaled[mem]: dwmy
Options[mem]: gauge,absolute,noinfo,growright,nopercent
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: K,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: Real [MBytes]
Legend2[mem]: Swap [MBytes]
Title[mem]: Memory Free

[ サーバ側で free を実行した結果 ]

# free
total used free shared buffers cached
Mem: 510408 497556 12852 0 324388 53408
-/+ buffers/cache: 119760 390648
Swap: 1044216 656 1043560

[ snmpd.conf ファイルの修正箇所 ]

com2sec mynetwork xxx.xxx.xxx.0/24 public
# 他の "com2sec" はコメントアウト

group myConfigGroup v1 mynetwork
group myConfigGroup v2c mynetwork
# 他の "group" はコメントアウト

access myConfigGroup "" any noauth exact view_all none none
# 他の "access" はコメントアウト

(1) 実メモリについて、サーバ側で free を実行すると 510 MB ほどの空きがあることが確認できるのに、MRTG のレポートでは Max でも 256.6 MB になっています。

(2) MRTG レポートの Max、Average、Current とはそれぞれ何を意味しているのかいまいちよく分かりません。Current は現在の空きメモリを表しているのかと思っていましたが、空きメモリが 52 KB しかないというのは、free の結果と照らし合わせてみても理解できません。

設定のどこかが間違っていて、正しく情報を取得できていないのでしょうか?
それとも、SNMP で取得している情報は free や vmstat で取得できる内容とは異なっているのでしょうか?


[ メッセージ編集済み 編集者: あんとれ 編集日時 2007-04-25 13:05 ]
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2007-04-25 13:45
ちょっと調べてみましたが、空メモリの監視をする場合は、以下の設定を行う必要があります。
見たところ設定している値と実際のMAX値が違うので、Freeの結果を設定してから試してみてはどうでしょうか?

MaxBytes1[mem]: 200000 ← 実メモリMAX値
MaxBytes2[mem]: 200000 ← スワップMAX値

[ メッセージ編集済み 編集者: ゆうじゅん 編集日時 2007-04-25 13:46 ]
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2007-04-25 16:33
引用:

ゆうじゅんさんの書き込み (2007-04-25 13:45) より:

見たところ設定している値と実際のMAX値が違うので、Freeの結果を設定してから試してみてはどうでしょうか?

MaxBytes1[mem]: 200000 ← 実メモリMAX値
MaxBytes2[mem]: 200000 ← スワップMAX値



すみません。free を別サーバで取得していました。SNMP の設定をしたサーバでの実行結果は以下の通りでした。どちらも約 2GB です。

$ free
total used free shared buffers cached
Mem: 2025008 1719952 305056 0 110700 771548
-/+ buffers/cache: 837704 1187304
Swap: 2044072 0 2044072
SHR
ベテラン
会議室デビュー日: 2006/06/15
投稿数: 99
投稿日時: 2007-04-25 16:46
>Options[mem]: gauge,absolute,noinfo,growright,nopercent
手元に確認できる環境がないので申し訳ないのですが、
absoluteはいらないのでは?

>MRTG レポートの Max、Average、Current とはそれぞれ何を意味しているのかいまいちよく分かりません。
Currentは現在値、MAXはそのグラフ中の最大値です。
なので、Currentの値が正しく取得できず、ずっと低い値で記録されていれば、
MAXの値も当然低い値になるかと思います。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-04-25 21:47
引用:

あんとれさんの書き込み (2007-04-25 13:03) より:
(1) 実メモリについて、サーバ側で free を実行すると 510 MB ほどの空きがあることが確認できるのに、MRTG のレポートでは Max でも 256.6 MB になっています。



memAvailReal.0の値は完全に未使用なメモリ量です。
バッファ容量など(memBuffer.0やmemCached.0)を足してみると、
freeコマンドの「-/+ buffers/cache:」行と同じになります。
zume
ベテラン
会議室デビュー日: 2003/06/05
投稿数: 93
投稿日時: 2007-04-26 00:00

こんばんは。
自分の場合、実メモリ1GB/スワップ1.5GBのマシンで下記のように設定しています。

MaxBytes1[mem]: の値には、
$ snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.4.5
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 1027472

として出てきた1027472を

MaxBytes2[mem]: の値には、
$ snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.4.3
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1574360

として出てきた1574360を指定しています。


これでFreeで取得できる値とグラフの値がほぼ同一になっています。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2007-05-07 17:09
回答いただいた内容を参考にし、自分なりに MRTG のグラフや snmpwalk の結果や free や vmstat コマンドの結果の比較等を行ってみたいと思います。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)