ディスク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が消費された時間の割合 nice niceでスケジューリングの優先度を変更していたプロセスが、ユーザモードでCPUを消費した時間の割合 system システムモードでCPUが消費された時間の割合 iowait CPUがディスクI/O待ちのためにアイドル状態で消費した時間の割合 steal XenなどのOSの仮想化を利用している場合に、ほかの仮装CPUの計算で待たされた時間の割合 idle CPUがディスクI/Oなどで待たされることなく、アイドル状態で消費した時間の割合
※「[Web開発者のための]大規模サービス技術入門」より引用
今回はこの指標の中から、iowait(CPUがディスクI/O待ちのためにアイドル状態で消費した時間の割合)を監視するアイテムを作成します。
もし「A_Template_OS_Linux」テンプレートと「cpu」アプリケーションを作成していない場合は、こちらを参考にして作成しておきましょう。
アイテムの作成
[設定]→[テンプレート] 「A_Template_OS_Linux」行の「アイテム」をクリックします。
下記を設定し「追加」をクリックすればアイテムが作成されます。
---(設定箇所)---------------------------
名前: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, stealmode - 可能な値:
avg1 (1分間の平均、デフォルト)、avg5 (5分間の平均)、avg15 (15分以内の平均)
詳細は公式マニュアル 1 Zabbixエージェント | Zabbix Documentaion 2.2 を参照してください。
トリガーの作成
[設定]→[テンプレート] 「A_Template_OS_Linux」行の「トリガー」をクリックします。
下記を設定し「追加」をクリックすればトリガーが作成されます。
---(設定箇所)---------------------------
名前:{HOST.NAME} cpu iowait
条件式:{A_Template_OS_Linux:system.cpu.util[,iowait,avg1].last()}>90
深刻度:警告
------------------------------
トリガーの名前にはマクロが使用できます。上の設定 {HOST.NAME} はホストの表示名がトリガー名に表示されます。
条件式は、{<テンプレート名>:<アイテムキー>.<トリガー関数>}=<値> の形式です。手入力してもかまいませんが、なかなか複雑な書式ですので、条件式の「追加」ボタンをクリックして対象のアイテムを選択し、関数を選択して「挿入」ボタンをクリックすれば条件式を生成してくれます。
今回設定したトリガー条件式は、CPUのI/O待ちが90%を超えたらトリガーが発生します。
▽ サポートされているトリガー関数 | Zabbix Documentaion 2.2
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/functions
グラフの作成
[設定]→[テンプレート] 「A_Template_OS_Linux」行の「グラフ」をクリックします。
「グラフ」タブを選択し、アイテムの「追加」をクリックします。
グラフに表示したいアイテムを選択し「選択」をクリックします。
下記を設定してアイテムが追加されていることを確認し「追加」をクリックすればグラフが作成されます。
---(設定箇所)---------------------------
名前:cpu iowait
Y軸の最小値:固定 0
Y軸の最大値:固定 100
------------------------------
最後に作成した監視テンプレートの動作確認をして作業完了です。
コメント