Zabbix 3-4. CPUのディスクI/O待ち 監視テンプレート設定

Zabbix
スポンサーリンク

ディスクI/Oの負荷を把握するために、CPUのディスクI/O待ちを監視するテンプレートを作成します。ハードディスクはメモリと比べると、読み書きの性能に10万倍〜100万倍の速度差があります。扱うデータ量が多くなってくるとデータがメモリに載りきらないため、ディスクI/O待ちが発生することがあります。そのためディスクI/Oが多く発生するデータベースサーバなどではインメモリデータベースやフラッシュ ストレージがよく使われています。

ディスクI/O待ちは sar コマンドの %iowait 列などで確認することができます。

$ sar
Linux 2.6.32-504.el6.x86_64 (lamp) 	2014年12月19日 	_x86_64_	(2 CPU)

06時00分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
06時10分01秒     all      1.54      0.00      0.62      4.74      0.00     93.10
06時20分01秒     all     53.94      0.20      1.09      2.16      0.00     42.62
06時30分01秒     all     19.90      0.00      0.73      3.60      0.00     75.76
06時40分01秒     all      1.46      0.00      0.61      4.67      0.00     93.25

各列の指標

userユーザモードでCPUが消費された時間の割合
niceniceでスケジューリングの優先度を変更していたプロセスが、ユーザモードでCPUを消費した時間の割合
systemシステムモードでCPUが消費された時間の割合
iowaitCPUがディスクI/O待ちのためにアイドル状態で消費した時間の割合
stealXenなどのOSの仮想化を利用している場合に、ほかの仮装CPUの計算で待たされた時間の割合
idleCPUがディスクI/Oなどで待たされることなく、アイドル状態で消費した時間の割合

※「[Web開発者のための]大規模サービス技術入門」より引用

今回はこの指標の中から、iowait(CPUがディスクI/O待ちのためにアイドル状態で消費した時間の割合)を監視するアイテムを作成します。

もし「A_Template_OS_Linux」テンプレートと「cpu」アプリケーションを作成していない場合は、こちらを参考にして作成しておきましょう。

アイテムの作成

[設定]→[テンプレート] 「A_Template_OS_Linux」行の「アイテム」をクリックします。
zabbix-lamp-33-06

「アイテムの作成」をクリックします。
zabbix-lamp-33-07

下記を設定し「追加」をクリックすればアイテムが作成されます。
zabbix-lamp-34-01

---(設定箇所)---------------------------
名前:1013_ディスクI/O待ち(iowait)
タイプ:Zabbixエージェント
キー:system.cpu.util[,iowait,avg1]
データ型:数値(浮動小数)
単位:%
アプリケーション:cpu
------------------------------

アイテムキー system.cpu.util のパラメータ

system.cpu.util[<cpu>,<type>,<mode>]

cpu - CPU番号(デフォルトは全CPU)

type - 可能な値:
idle, nice, user(デフォルト)、system (Windowsでのデフォルト)、 iowait, interrupt, softirq, steal

mode - 可能な値:
avg1 (1分間の平均、デフォルト)、avg5 (5分間の平均)、avg15 (15分以内の平均)

詳細は公式マニュアル 1 Zabbixエージェント | Zabbix Documentaion 2.2 を参照してください。

トリガーの作成

[設定]→[テンプレート] 「A_Template_OS_Linux」行の「トリガー」をクリックします。
zabbix-lamp-33-10

「トリガーの作成」をクリックします。
zabbix-lamp-33-11

下記を設定し「追加」をクリックすればトリガーが作成されます。
zabbix-lamp-34-02

---(設定箇所)---------------------------
名前:{HOST.NAME} cpu iowait
条件式:{A_Template_OS_Linux:system.cpu.util[,iowait,avg1].last()}>90
深刻度:警告
------------------------------

トリガーの名前にはマクロが使用できます。上の設定 {HOST.NAME} はホストの表示名がトリガー名に表示されます。

条件式は、{<テンプレート名>:<アイテムキー>.<トリガー関数>}=<値> の形式です。手入力してもかまいませんが、なかなか複雑な書式ですので、条件式の「追加」ボタンをクリックして対象のアイテムを選択し、関数を選択して「挿入」ボタンをクリックすれば条件式を生成してくれます。
zabbix-lamp-34-03

今回設定したトリガー条件式は、CPUのI/O待ちが90%を超えたらトリガーが発生します。

▽ サポートされているトリガー関数 | Zabbix Documentaion 2.2
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/functions

グラフの作成

[設定]→[テンプレート] 「A_Template_OS_Linux」行の「グラフ」をクリックします。
zabbix-lamp-33-14

「グラフの作成」をクリックします。
zabbix-lamp-33-15

「グラフ」タブを選択し、アイテムの「追加」をクリックします。
zabbix-lamp-33-16

グラフに表示したいアイテムを選択し「選択」をクリックします。
zabbix-lamp-34-04

下記を設定してアイテムが追加されていることを確認し「追加」をクリックすればグラフが作成されます。
zabbix-lamp-34-05

---(設定箇所)---------------------------
名前:cpu iowait
Y軸の最小値:固定 0
Y軸の最大値:固定 100
------------------------------

最後に作成した監視テンプレートの動作確認をして作業完了です。

コメント

タイトルとURLをコピーしました