クラウド時代の監視技術

著:宮﨑悟氏

Zabbixによる監視(5)第06回 19年07月更新

前回はZabbixの内部監視における必要なことについて説明しました。今回は監視項目の値から、障害/復旧の検知方法について述べたいと思います。

トリガー機能

トリガーとは、Zabbixが提供する障害/復旧の判定を行う設定です。監視項目(以下アイテム)に対してトリガを割り当てることで、そのアイテムの正常/障害を判定することが出来ます。

トリガーの設定では、アイテムの値に対して関数/比較演算子/論理演算子を条件式を設定し、正常/障害のステータスを判定します。1つ以上のトリガー設定を複数のアイテムに設定したり、逆に複数のアイテムをトリガー設定に使用することが出来ます。これらの設定により、複雑な障害および復旧の判定を行うことが出来ます。

トリガーは以下の項目を設定できます。イベントについては後述します。

項目

説明

名前

トリガーの名前(HOST.NAME などのマクロを使用することが可能)

深刻度

未分類/情報/警告/軽度の障害/重度の障害/致命的な障害 を指定可能

障害の条件式

条件式の値がTRUEのときは正常、FALSEのときは障害となる<br />詳細は障害条件式を参照

正常イベントの生成

「条件式」(「障害の条件式」を使用)、「復旧条件式」「なし」 を指定可能<br />「条件式」の場合は「条件式」の値がTRUE、「復旧条件式」の場合はそれに加え「復旧条件式」の両方がTRUEになったときに正常イベントを発生し、「なし」の場合は手動クローズでのみ正常イベントを発生させられる

障害イベントの生成モード

障害イベント生成を、「単一」(最初の一回だけ)、「複数」(条件式を満たす限りすべて)から指定可能

復旧条件式

復旧する時の条件を記述する<br />正常イベントの生成で復旧条件式を選択すると記入可能になる

正常時のイベントクローズ

「すべての障害」「タグが一致したすべての障害」を選択可能<br />「すべての障害」は、このトリガーが設定されたすべてのホストに、「タグが一致したすべての障害」は設定したタグ/値に一致したホストに復旧イベントを発生する

タグ

正常時イベントクローズで使用するタグと値のペアを複数指定可能<br />タグはホストやサービスに設定することで、復旧するホストの条件を指定可能

手動クローズを許可

障害発生時に、手動による該当障害のクローズを行う事が可能になる

URL

障害発生したアイテムへのURL

説明

トリガーの説明<br />アクションの通知内容に含めることができるため、HOST.NAMEなどのマクロを使用することで障害通知内容を動的に変化させることができる

有効

トリガー自体を有効にするかどうかを設定

障害条件式

障害の条件式、および復旧の条件式は、以下のように表現されます。{}で囲まれた部分が条件となります。

 

“`

{<server>:<key>.<function>(<parameter>)}<operator><constant>

“`

項目

説明

Server

サーバ名

Key

監視項目名

function

収集値、現在時刻、その他の要因を参照する関数

parameter

function の引数に渡される値<br />数値のみでは現在から数値秒前、#数字では、末尾からの観測個数を表す

operator

前半の条件とconstant の結果の演算を行う

constant

前半の条件との演算対象<br />ただの数値を指定したり、別の条件を指定することもできる

 

functionには数値に関するもの、時刻に関するもの、文字列に関するものがあります。数値に関するものとしては最後の値を示すlast()、平均(avg())、個数(count())、最小(min())、最大(max())、合計(sum())などがあります。時刻に関する関数には、now(), date()、time()などがあり、文字列に関する関数にはdiff()、regexp()、strlen()などがあります。functionの詳細については公式ドキュメント (英語)を参考にしてください。

operator は、数値演算(+,-,*,/)、数値比較(<, <=, =, =>, >, <=>)、論理演算 (and, or, not)があります。

これらの条件式を直接書くことも出来ますが、Web UIのトリガー作成・設定画面で条件式の右にある追加ボタンで設定することが可能です。ここでは、server/key/function/operator をプルダウン形式で(有効な値を)選択でき、parameter(比較のみ)とconstantに数字を入れるだけで条件式を生成できます。複数条件式を設定する場合は、論理演算子を手入力後に再度追加ボタンを押して追加してください。

 

条件式は難しいので、詳細については公式ドキュメント(英語)を参考にしてください。

イベント

トリガーは、障害の発生および復旧の際に、障害(Problem)もしくは復旧(OK)イベントを生成します。このイベントを受けて、アクション(障害/復旧時に実行する動作)を実行します。復旧イベントを発生させることをクローズと呼ぶことがあります。

次回は、トリガーについてもう少し触れようと思います。お楽しみにお待ち下さい。