Zabbix 4.0の紹介 (3.2で追加された機能)

本記事では、 Zabbix の現行 LTS バージョンである 3.0 から次期 LTS バージョンの 4.0 までの間に追加された機能や変更点のうち、3.2での変更点について解説します。

Zabbix 3.2 の変更点は以下のページに記載されています。

5 What’s new in Zabbix 3.2.0

Zabbix 3.2の主な変更点を以下に挙げます。

1. イベントタグ

トリガーの設定で、イベントにタグ名と値からなる任意のタグを付けられるようになりました。
これにより、1つのトリガーから生成される障害イベントと復旧イベントをタグで関連付けたり、アクションでタグを条件として使用することができます。イベントタグは「PostgreSQL, Service:PostgreSQL」のようにタグ名もしくはタグ名と値の組み合わせで表されます。

主な利用方法は以下のようになります。

  1. ログ監視アイテムなどに対するトリガー設定でタグ名と値を定義します。値は {{ITEM.VALUE<N>}.regsub()} マクロなどで、実際のアイテムの値から抽出できます。
  2. トリガー設定で「障害イベント生成モード」を「複数」にします。
  3. トリガー設定で「正常時のイベントクローズ」を「タグの値が一致したすべての障害」にします。
  4. 「監視データ – 障害」ビューでイベントに付加されたタグを確認できます。
  5. 障害復旧時は、上記で指定したタグの値が一致するイベント同士が自動で関連付けられます。

イベントタグ

詳細はZabbix 4.0マニュアルの「Configuration – Triggers – Event tags」を参照ください。

2. 「障害」ビューの新設

「監視データ」メニュー配下に「障害」ビューが新設されました。「障害」ビューは「監視データ – トリガー」と「監視データ – イベント」の役割を統合し、現在の障害の状況が分かりやすく表示されます。

「障害」ビュー

3. 障害の手動クローズ

ログ監視など、復旧を自動的に判定するのが困難な監視項目では、従来はnodata()関数や障害対応コメントによるフィルタリングなどで対応するしかありませんでしたが、3.2から障害を手動でクローズできるようになりました。

障害の手動クローズ

なお、手動クローズを有効にするにはトリガーの設定であらかじめ「手動でのクローズ許可」を有効にしておく必要があります。

4. トリガーのリカバリ条件式の追加

トリガー判定の「ばたつき」を避けるために障害と復旧の閾値に差を設ける「ヒステリシス」と呼ばれる条件が、新設されたリカバリ条件式により簡単に書けるようになりました。従来は {TRIGGER.VALUE} マクロを使用して複雑な条件式を記述する必要がありましたが、3.2からは各条件を別々に指定でき、簡潔に記述することができるようになりました。また、これにより正常に復旧する条件をより自由に設定することができるようになりました。

以下は「サーバの温度が20℃超: 正常→障害」、「サーバの温度が15℃以下: 障害→正常」としたい場合の例です。

(従来の記述)
 ({TRIGGER.VALUE}=0 and {server:temp.last()}>20) or
 ({TRIGGER.VALUE}=1 and {server:temp.last()}>15)

(3.2以降の記述)
 障害の条件式: {server:temp.last()}>20
 復旧条件式: {server:temp.last()}<=15

5. ホストグループの階層化

3.0 まではホストグループは1階層のみのフラットな構成でしたが、3.2 からホストグループの階層化が可能になりました。階層化されたホストグループは、複数のホストグループを「/」で区切ることで表現します。これにより目的のホストにすばやくアクセスすることができるようになります。また、上位のホストグループに対して設定した権限を下位のホストグループにも適用することができます。

階層化されたホストグループ

6. Webシナリオのエクスポート/インポート

Zabbix 3.0 までは Web シナリオは XML ファイルへのエクスポートの対象外となっていましたが、 3.2 からは他の設定と同様にエクスポートおよびインポートが可能になりました。