【Zabbix】CPU使用率監視と依存関係を利用した2段階トリガー

zabbix-cpu-utilテクノロジー

Zabbixの監視の中でも基本中の基本がリソース監視です。
今回はCPU使用率の監視と、トリガー依存関係を利用した2段階の閾値を設定します。
使用率の割合によって深刻度を分けたい場合などに使用します。

CPU使用率監視

それでは、CPU使用率を監視するアイテムトリガーを作成していきましょう。
トリガーは2段階で作成しますが、アイテムは1つ作成したらOK。

アイテムの作成

アイテムの作成

新しく作成するアイテムテンプレートでもホストでも構いませんが、ホストに関係なく共通して使い回しできるアイテムはテンプレートに作成しましょう。
後にメモリやディスクも監視したいので、リソース監視用のテンプレートでも作成してみますか。

  • [設定] → [テンプレート(またはホスト)]に移動します
  • テンプレートの行のアイテムをクリックします
  • 画面の右上隅にある[アイテムの作成]をクリックします
  • フォームにアイテムのパラメータを入力します

また、既存のアイテムを開き、 [複製]ボタンを押してから、別の名前で保存してアイテムを作成することもできます。

設定項目設定値説明・注意点
名前<CPU使用率>(任意の名前)
タイプZabbixエージェントZabbixエージェント(アクティブ)も可
キーsystem.cpu.utilオプションが不要な場合は省略可
データ型数値(浮動小数)○○率の場合は大抵浮動小数
単位%○○率なので%(監視データを参照する際に付く)
監視間隔<1m>(任意の間隔。トリガーも考慮する)
CPU使用率監視

公式ドキュメントに具体的なアイテムの設定方法があります。

一通り設定が完了したら、[監視データ] → [最新データ]からアイテムを作成した監視対象のホストを選択し、正常に値が取得できているか確認してください。(アイテムの[テスト]ボタンからでも確認できます)

2段階トリガーの作成

トリガーの作成

トリガーを作成する前に、まずは2段階の閾値を設定するためのマクロで作成します。
以下の2つのユーザーマクロを用意しておきます。

マクロ説明
{$CPU.UTIL.WARN}80低い方の閾値(80%以上で検知させる場合に使用)
{$CPU.UTIL.CRIT}90高い方の閾値(90%以上で検知させる場合に使用)
閾値設定用のユーザーマクロ

1段階目のトリガーを作成します。
ここではわかりやすように閾値の低い方から作成していますが、実はトリガー依存関係の設定は、閾値の低い方で行いますので、先に2段階目を作成した方が良いと思います。。

  • [設定] → [テンプレート(またはホスト)]に移動します
  • テンプレートの行のトリガーをクリックします
  • 画面の右上隅にある[トリガーの作成]をクリックします
  • フォームにトリガーのパラメータを入力します

また、既存のトリガーを開き、 [複製]ボタンを押してから、別の名前で保存してトリガーを作成することもできます。

設定項目設定値説明・注意点
名前高いCPU使用率(5分間で {$CPU.UTIL.WARN}% 以上)障害イベントが発生した際に一目でわかりやすい名前にしましょう
深刻度<警告>低い方の閾値は警告に設定
条件式min(/Template Resource/system.cpu.util,5m)>{$CPU.UTIL.WARN}5分間の最小値が80%以上なら障害イベントが発生する
依存関係高いCPU使用率(5分間で {$CPU.UTIL.CRIT}% 以上)依存関係に閾値がより高い方のトリガーを設定する
CPU使用率監視(トリガー1段階)

トリガー関数はmin()を使用しました。
パラメータに5mとありますので、5分間の最小値が80%、つまり、アイテムの監視間隔が1分なので、CPU使用率が5回連続(5分間)80%以上で張り付いていれば障害イベントを生成します。

設定項目設定値説明・注意点
名前高いCPU使用率(5分間で {$CPU.UTIL.CRIT}% 以上)障害イベントが発生した際に一目でわかりやすい名前にしましょう
深刻度<軽度の障害>高い方の閾値は軽度の障害に設定
条件式min(/Template Resource/system.cpu.util,5m)>{$CPU.UTIL.CRIT}5分間の最小値が90%以上なら障害イベントが発生する
CPU使用率監視(トリガー2段階)

このトリガーも同じような状態になれば障害イベントを生成します。
ただし、こちらの閾値は90%以上になります。
トリガーも公式ドキュメントをどうぞ。

上記のように依存関係を設定することで、CPU使用率が一気に90%を超えたとしても、閾値が80%と90%の両方の障害イベントが表示されるのではなく、取得した値に応じたトリガーのみが障害イベントに表示されるようになります。

東京生まれ福岡育ちの文系プログラマー。
テクノロジーの恩恵を感じながら日々精進しています。
広く浅くをモットーに、最近ではプログラミングだけでなく、仮想サーバーからセキュリティ、監視システムなども勉強中です。

管理者をフォローする

コメント

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