SNMPでのWindowsXPのプロセス監視(メモリ)
いつもお世話になっております。
SNMPによるWindowsXPのプロセス監視(メモリ)の設定についてご教授願います。
実現したいことですが、以下2点になります。
?HDD使用率(%)、CPU使用率(%)、メモリー使用率(%)のグラフの表示
?HDD使用率(%)、CPU使用率(%)、メモリー使用率(%)が一定条件に達した場合、トリガー実行にて、メールの発砲
監視対象として、Windows XP端末にSNMP Informantをインストールしてみまして、SNMPによる監視を行なってみました。
監視対象ホストのポートは 161での監視にしてます。
HDDの空き容量(%)
CPU使用率(%)
これら2つに関しては、%での取得できるoidがありましたので
グラフ、一定条件に達したらメールの発砲 は実現できました。
メモリに関しては、Free Memory 、Commit memory のアイテム作成から グラフの表示は可能です。
ただ、取得データは(%)ではなく(値)です。
メモリーの場合、グラフには、100%を意味するTotal Memoryの値を表示したいと考えております。
(%)で取得できるoidがわかれば良いのですが、、、、
====■アイテムについて■===========================================================
グラフに割り当てるアイテムのイメージですが、以下のような感じです。
=================================================================
MAX値 SNMP_Windows_Total Memory
SNMP_Windows_Commit memory
SNMP_Windows_Free Memory
0
=================================================================
Total memoryの算出のoid ですが、
hrStorageAllocationUnits .1.3.6.1.2.1.25.2.3.1.4.5
hrStorageSize .1.3.6.1.2.1.25.2.3.1.5.5
hrStorageAllocationUnits * hrStorageSizeでほぼtotalとなります。
また、Commit memory+Free Memory こちらはアバウトになってしまいますが、こちらもTotalっぽくなります
Commit memory .1.3.6.1.4.1.9600.1.1.2.4.0
Free Memory .1.3.6.1.4.1.9600.1.1.2.1.0
これら4このアイテムを作成した後、
さらに以下のように計算されたアイテムを作成することはできないでしょうか?
?アイテムにアイテム*アイテム
アイテムにアイテム+アイテム
?アイテムにoid(A)の値*oid(B)の値
アイテムにoid(A)の値+oid(B)の値
例
アイテム名 total memory
アイテムの内容 hrStorageAllocationUnits * hrStorageSize
または {.1.3.6.1.2.1.25.2.3.1.4.5} * {.1.3.6.1.2.1.25.2.3.1.5.5}
または Commit memory + Free Memory
または{.1.3.6.1.4.1.9600.1.1.2.4.0} + {.1.3.6.1.4.1.9600.1.1.2.1.0}
グラフにはアイテムしか選択できないようですし、、、、、
可能でしたら、グラフにわりあてるアイテムは以下3つとなりますが。
Total memory (hrStorageAllocationUnits * hrStorageSize)
または(Commit memory+Free Memory)
Commit memory
Free Memory
また、そもそも、Windows XP のTotal Memoryを取得できるoidはあるのでしょうか?
現状は、グラフに以下の2つアイテムを割り当てて、正常に表示はされてます。
Commit memory
Free Memory
ただ、MAXメモリは不明な状態のグラフです。また、テンプレート目的の為、MAX固定の値は入力したくはないです。
zabbix-agent導入では
テンプレートWINDOWSがあるので、以下の2つのアイテムをグラフに割り当てればさくっと実現可能ですね。
キー vm.memory.size[total]
キー vm.memory.size[free]
それは、確認済みですが、SNMPでのMAXメモリをグラフに反映することは、実現可能でしょうか?
==========================================================================
====■トリガーについて■===========================================================
先ほどの上のアイテム4つを作成し、
メールを発砲する条件として、
メモリーの空き容量が10%以下の時とする場合ですが、
グラフにMAX値が割り当てられなくても、メールの発砲は可能とおもいますが、トリガー内容は、このような感じでよいでしょうか?
例1
100*{HOSTNAME:Free Memory.last(0)}/{HOSTNAME:Memory hrStorageAllocationUnits.last(0)*HOSTNAME:Memory hrStorageSize.last(0)}<10
例2
100*{HOSTNAME:Free Memory.last(0)}/{HOSTNAME:Free Memory.last(0)+HOSTNAME:Commit memory.last(0)}<10
上記の記載があっているかも自身がないのですが、
さらに条件として、10回連続してメモリーの空き容量が10%以下の場合、という条件の記載方法もお解かりでしたらご教授願います。
==========================================================================
長くなりましたが、何卒、宜しくお願いいたします。
kodai - 投稿数: 1341
こんにちは。
複数アイテムを使ったの計算機能は1.8.1から実装されてますので、そちらを使っていただくのが良いと思います。1.8以前では実現は難しいですね。
うーん、どうなんでしょう。SNMPを使ってWindowsを監視したことがないので私は分からないです。通常Windowsの場合はZabbixエージェントを入れて、もともと用意されているキー+perf_counterでパフォーマンスモニタの値を使って監視してます。
参考までにですが、1.8以降ではアイテムのデータを使ってグラフのY軸の最大値を決めることができるようになってます。
試していないのですが、以下のように{}や()で囲わないとだめかもしれません。
(100*{HOSTNAME:Free Memory.last(0)}/({HOSTNAME:Free Memory.last(0)}+{HOSTNAME:Commit memory.last(0)}))<10
アイテムやトリガーを駆使してどうにか実現できるかもしれませんが、1.6系で実現する方法はすぐには思いつきませんでした。これを実現するためには、1.8のアイテム計算機能を使うか、アイテムで直接メモリの使用率を取得する方法を考えた方が良いんじゃないかと思います。
MOSA - 投稿数: 10
kodai様
ご連絡ありがとうございます。
ZABBIX Ver1.8.1以降でしたら、実現可能な項目が結構あるんですね。情報ありがとうございます。
トリガーに関しまして、kodai様の(){}を参考にし、動作いたしました。
(100*{HOSTNAME:Free Memory.last(0)}/({HOSTNAME:Memory hrStorageAllocationUnits.last(0)}*{HOSTNAME:Memory hrStorageSize.last(0)}))<10
10回連続してメモリーの空き容量が10%以下の場合、という条件に関しましては、現状も試行錯誤中です。
良い関数等ありましたら、ご教授願います。
また、それに関するトリガーなどできましたら、ご報告させていただきますね。
宜しくお願いいたします。