2017年4月14日金曜日

ZabbixでCPUやメモリなどのリソース監視を行う

先日、ESXiのCPU、メモリの使用率をグラフに表示するという記事を書いた。その後しばらくして、ESXiのCPU使用率が高い値で張り付くという事象が発生した。


原因は、1台の仮想マシン(Windows Server)のSQL Serverが高負荷になったことであり、仮想マシンの再起動で復旧できた。しかし、根本原因は不明であり、不定期に再発することもあったことから、ZabbixでCPUのリソース監視を行うことにした。

アイテムを作る

ESXiのCPU使用率とメモリ使用率のアイテムの作り方は、別記事を参照。

トリガーを作る

「設定」→「テンプレート」→「Template Virt VMware Hypervisor」→「トリガー」を選択し、トリガーを新規作成する。

今回は例として、CPU周波数が2GHz = 2000000000Hzを600秒超過した場合に、「重度の障害」として検知する設定となる。余談だが、"2G"という表記でもZabbixは認識してくれるが、2G = 2*1024*1024*1024となり、正確な値にならないので注意が必要。

------------------------------
・名前:High CPU Usage
・条件式:{Template Virt VMware Hypervisor:vmware.hv.cpu.usage[{$URL},{HOST.HOST}].avg(600)}>2000000000
・深刻度:重度の障害
・障害イベントを継続して生成:チェックなし
・有効:チェックあり
------------------------------


なお、メモリを監視したい場合の条件式に入れる値は以下のようになる。
※事前にアイテムを作成していることが必要

------------------------------
・メモリ使用量
 vmware.hv.memory.used[{$URL},{HOST.HOST}]
・メモリバルーン
 vmware.hv.memory.size.ballooned[{$URL},{HOST.HOST}]
------------------------------

グラフで確認

グラフを作ってある場合は、グラフにもトリガー設定の閾値が表示されるので確認しておこう。今回設定した2GHzが監視閾値として、点線で表現されていることがわかる。


以上で設定は完了となる。