Zabbix 4.0の新機能の紹介

Zabbix 4.0の新機能(追加版)

2018/5/25に紹介させて頂いた情報の追加版となります。

前回、Zabbix 4.0について書かせて頂いた時には、そろそろリリースされるのではないかと思って書いたのですが、その後にいくつかの新機能が追加され、ようやく2018/10/1に4.0.0がリリースされました。

以前挙げていた新機能は以下の機能です。

  • アイテムの「今すぐチェック」ボタン追加
  • 新しいHTTPアイテムの追加
  • サーバーとプロキシ間の接続をよりセキュアに
  • サーバーとプロキシ間の通信を圧縮
  • 単位変換の柔軟化
  • メディアのEmailの1つの設定で複数宛先指定可
  • イベント、値、トレンドのリアルタイムエクスポート
  • logrt[]でcopytruncateモードでのログファイルローテーションに対応

※ 正式リリースでは、「今すぐチェック」ボタンのボタン名が、「監視データ取得」というボタン名に変更されています。

さらに前回から追加された機能と前回詳細を紹介できなかった機能からいくつかピックアップしてご紹介します。

今回ご紹介する新機能は、以下の機能です。

  • 時間範囲指定の簡略化
  • SVGグラフウィジェットの追加
  • タグベースの権限設定
  • タグによるメンテナンス設定の拡張

それでは、それぞれの機能をご紹介してみます。

時間範囲指定の簡略化

時間範囲指定の簡略化というのは、グラフなどで表示をする時間帯の指定方法の変更です。

これまでは、以下の図のようなタイムスライダーと呼ばれるスライダー型の時間範囲指定でした。

Zabbix40-time-slider

これが、メニューから特定の時間単位を選択するだけで表示する時間の範囲を変更することができるようになりました。
新しい時間範囲の指定には、以下のような画面を使用します。

Zabbix40-graph2

これによって、よく利用する1日とか1週間とかの範囲を1つのリンクをクリックするだけで指定することができます。
旧来同様、開始と終了の日時を指定することも可能です。
左側の開始と終了の入力枠に、「YYYY-MM-DD hh:mm:ss」のフォーマットで入力して指定することができます。

以前のものでも慣れると使いこなしやすいのですが、より具体的な範囲で指定できることで、特定の時間幅の過去のグラフとの比較もしやすくなることでしょう。

SVGグラフウィジェットの追加

次にSVGグラフウィジェットの追加ですが、これは、ZabbixのWebインターフェースのダッシュボード上で利用できるグラフウィジェットです。
Zabbix 3.4からダッシュボードは自由にカスタマイズしたり複数定義したりできるようになったのですが、そのダッシュボードで表示する部品の1つとして利用することができます。

これまでのグラフやグラフウィジェットでは、1つのグラフには、特定の同じホストのアイテムしか表示させることができませんでした。
また、LLDを利用して動的に追加削除されるアイテムに対して、動的に追加削除されたアイテムを自動で1つのグラフに表示することもできませんでした。

今回追加された新しいグラフウィジェットでは、ホストやアイテムを複数選択したり、ワイルドカードを使用することもできるので、同じホストの複数のアイテムを1つのグラフに表示したり、複数のホストの同じアイテムを1つのグラフに表示したりすることができます。
ZabbixとGrafanaというツールを連携させたことがある方がいらっしゃれば、そのグラフのイメージに近いことが実現できるのです。

言葉だけではイメージしにくいと思いますので、アイテムの指定にワイルドカードを指定した例を見てみましょう。
まず、標準のテンプレートである「Template OS Linux」をリンクしたホスト「Linux1」があったとします。
このホストには、以下のアイテムがあります。

Processor load (1 min average per core)
Processor load (5 min average per core)
Processor load (15 min average per core)

そこで、以下の図のように、新しいグラフウィジェットの設定で、ホストとして「Linux1」を選択し、アイテムとして「Processor load (* min average per core)」と指定すると、上記の3つのアイテムを1つのグラフに表示することができます。

Zabbix40-graph-widget-conf2

具体的な別の例を挙げるとすると、このウィジェットを使用することで、例えば、LLD(ローレベルディスカバリ)を使用して動的に取得できる複数のアイテムを1つのグラフに表示することもできますし、複数のWebサーバーの負荷状況を1つのグラフに表示することもできるわけです。

また、表示したグラフ上にマウスのポインタを移動させれば、その時点での各アイテムの値がポップアップ表示されます。

Zabbix40-graph-widget

さらに、障害発生時の情報もグラフにマッピングすることもできます。
障害が発生している時間帯は、薄い赤色で塗られるので、その障害発生時間帯のアイテムの値の変化も把握しやすくなっています。

旧来のグラフのウィジェットは、「グラフ (クラシック)」というウィジェットで残っているので、それを使用することもできます。目的に合わせて有用なウィジェットを選択して組み合わせ、自分たちが使いやすいダッシュボードを作成してみてください。
※ 4.0.0では、ウィジェットの名前が「グラフ (クラシック)」ではなく「等しい」になってしまっているのでご注意ください。(次のリリースで修正が取り込まれるはず。)

タグベースの権限設定

Zabbixでのユーザーのアクセス権限は、基本的には、ホストまたはホストグループに対して、見ることができるかや設定できるかといった設定での制御のみでした。
今回は、タグの機能を利用して、特定のホストグループ内の特定のタグが設定されたトリガー単位でのアクセス権限の設定が可能となりました。

例えば、各サーバーの詳細な状態の把握は必要ないけれども、複数あるシステムやサービスのうち、特定のシステムやサービスの状態の変化を、それぞれの管理者のみに通知するようなことができます。

もう少し具体的な例として、特定の顧客A用のホストグループを用意して運用していたとして、人事、会計といった個別のサービスで障害が発生した時に、それぞれの管理者にのみ担当しているシステムでの障害を通知するようなことができるわけです。
例えば、顧客Aの人事と会計のシステムを運用している場合、トリガーのタグとユーザーのアクセス権限のタグの関係は以下のような対応になります。

Zabbix40-tag-permission

つまり、人事システムの状態のみを通知したいユーザーと、会計システムの状態のみを通知したいユーザーを作成して、タグによって振り分けすることができます。

トリガーにタグが設定されていない場合は、そのトリガーが設定されているホストもしくはホストグループの情報を表示できる権限があれば、トリガーのアクションでの通知が行われます。

タグによるメンテナンス設定の拡張

Zabbixには、1.8の頃から特定の時間帯のアクションの実行を抑止するメンテナンス機能が用意されています。しかし、この設定は、ホストもしくはホストグループ単位でしかメンテナンス期間の対象として指定することができませんでした。

そのため、夜間のバッチ処理時に一部のトリガーのみ無視したいようなときであっても、ホストまたはホストグループ全体のトリガーを無視することしかできませんでした。

つまり、夜間のバッチ処理中に、本来止まっては困るようなサービスやプロセスが止まってしまったとしても、バッチ処理の時間帯をメンテナンス期間として設定してしまうと、そのメンテナンスの対象のホストやホストグループでのメンテナンス期間内のトリガーによる障害検知のアクション通知が抑止されてしまって、障害発生の把握と対応が遅れてしまうことが考えられるわけです。
トリガーで細かく時刻の条件を追加してもよいのですが、メンテナンスの時間帯が変更となったら、トリガーも合わせて変更しなければならないので、管理上とても面倒です。

そこで、Zabbix 4.0では、タグを使用してメンテナンス期間の対象となるトリガーを、特定のタグが設定されたタグのみに限定させることができるようになりました。

例えば、夜間のバッチ処理として、バックアップ処理があったとします。
バックアップ処理をする際に、CPUのロードアベレージが上がったり、ディスクのI/Oが増えたり、レスポンスが悪くなることが事前にわかっているのであれば、それらのバックアップ時のみ無視してもよいようなトリガーにタグをつけておき、さらに、メンテナンス期間の設定にもそのタグを設定しておくことで、バックアップ中にトリガーの障害条件に合致してもアクションを実行させないということができます。

設定箇所としては、そのバックアップ時間帯に無視してしまってよいトリガーに対しては、例えば、「Jobs = バックアップ」などとタグを設定しておきます。

Zabbix40-trigger-tag

そして、メンテナンス期間の設定の「ホストとグループ」に同じタグを設定しておくわけです。

Zabbix40-mainte-tag

タグが設定されていないトリガーでの障害が検知された場合は、通常通りにアクションが実行されるので、バックアップとは関係のない障害を検知してアクションを実行することができます。

他にも以下のような新機能や改善もあります。

  • 障害の深刻度を変更可能に
  • エージェント自動登録機能改善
  • ポップアップウィンドウをオーバーレイに変更
  • 閲覧モード(キオスクモード)の追加
  • 障害画面に「コンパクト表示」モードを追加
  • DNS名の長さを63から255に拡張
  • MySQL 8.0をサポート
  • スクリーンリーダー対応

詳細をお知りになりたい場合は、お気軽にお問合せください。

ご参考:
Zabbix 4.0 LTSの新機能
https://www.zabbix.com/jp/whats_new
Zabbix 4.0 リリースノート翻訳
https://qiita.com/qryuu/items/85f545b6ae316f2d4357
Zabbix 4.0 on EC2 のご紹介
https://qiita.com/qryuu/items/c3fb49b33068d6cbabf1
最短でZabbix 4.0をDockerで試す手順
https://qiita.com/zembutsu/items/32f27fa8136b86620baf

関連記事

  1. Zabbix 4.0の新機能の紹介

    Zabbix 4.0の新機能

  2. 業務ハッカーへの道 (#3 Redmine REST APIによる業務…

PAGE TOP