Zabbix 5.0の紹介

本記事では、2020/05/12にリリースされたLTS(長期サポート)版となるZabbix 5.0で追加された機能や変更点について解説します。

Zabbix 5.0の変更点はZabbix公式サイトの以下のページに記載されています。

Zababix 4.2、4.4の変更点の詳細については以下の記事を参照ください。

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

メニューのレイアウト変更

フロントエンドのメニューが上部の横レイアウトからサイドバーの縦レイアウトに変更されました。これにより、ワイドモニターでよりスペースを効率的に使えるようになりました。

また、メニューを縮小表示したり、完全に非表示とすることも可能です。

トリガー条件式での文字列比較

トリガー条件式において =(イコール)および <>(ノットイコール)を用いた文字列比較が可能になりました。

{Zabbix server:zabbix[version].last()}="5.0.0"

トリガーが返す文字列同士の比較も可能です。

{Local Zabbix server:vfs.file.contents[/etc/os-release].last()}<>{Remote Zabbix server:vfs.file.contents[/etc/os-release].last()}

また、この文字列比較は計算アイテムでも使用できます。

設定中のアイテムの即時テスト機能の追加

アイテムの設定中にアイテムのテストが行えるようになりました。アイテムの設定を保存する前でもテストが可能です。

Zabbixプロキシの可用性に対するnodata関数の動作改善

Zabbixプロキシとの接続が切れた場合、接続復旧後に即座にnodata関数が発火しないようになりました。

このnodata関数の発火抑制は以下の場合に有効になります。

  • パッシブプロキシ:接続復旧に15秒かつ2×ProxyDataFrequency秒より長くかかった場合
  • アクティブプロキシ: 接続復旧に15秒より長くかかった場合

この動作を無効にしたい場合には、以下のようにnodata関数の第2パラメータに strict を設定してください。

nodata(5m,strict)

また、新しいインターナルアイテムである zabbix[proxy,<proxy name>,delay] を用いて、Zabbixプロキシでどれだけデータが遅延しているかを監視することもできるようになりました。

カスタムモジュールによるフロントエンドの拡張

サードパーティ製や独自に開発したモジュールを用いて、フロントエンドのソースコードを改変することなく機能を拡張することが可能になりました。

ウィジェットのコピー&ペースト

ウィジェットのコピー&ペーストができるようになりました。これは同じダッシュボード内だけではなく、違うタブで開いた異なるダッシュボード間でも可能です。

ウィジェットのコピーは各ウィジェットのメニューで行えます。

ウィジェットのペーストは、ダッシュボードエリアをクリックしてのウィジェット新規作成時に表示される「Paste widget」メニュー、もしくは画面上部の「Paste widget」ボタンをクリックで行えます。また、各ウィジェットのメニューから「貼り付け」を選択することで既存のウィジェットを置き換えることも可能です。

ドロップダウンのマルチセレクトへの変更

多くのホストがある環境の管理を容易にするために、フロントエンド上のドロップダウンがマルチセレクトで置き換えられました。

    • Zabbix 4.4まで

    • Zabbix 5.0

ディスカバリルールでのオーバーライド

ローレベルディスカバリで発見されたオブジェクトに対するプロトタイプ設定のオーバーライドが可能になりました。オーバーライドによって、例えば特定のオブジェクトのみアイテムのプロトタイプから実際のアイテム設定を生成しなかったり、アイテムの監視間隔やトリガーの深刻度を変更したりといったことが行えます。

IPMIセンサーのディスカバリに対応

IPMIセンサーの情報をJSON形式で返す ipmi.get アイテムが追加され、IPMIを利用したディスカバリが可能になりました。

アイテムキーの長さの上限の拡張

アイテムキーの最大長が256文字から2048文字に拡張されました。

数値(浮動小数)データ型の範囲拡張

数値(浮動小数)データ型の精度が15桁、範囲が-1.79E+308から1.79E+308に拡張されました。(PostgreSQL 11以前は除く)
以前のバージョンからアップグレードする場合には手動でのパッチ適用が必要です。

データベース監視のアイテムキーパラメータでの接続文字列設定

db.odbc.* キーの第3パラメータに接続文字列を設定することができるようになりました。現在、データベース監視の接続情報は以下の方法のいずれかで設定可能です。

  • /etc/odbc.iniに記載する
  • キーのパラメータに接続文字列を設定する

置換保存前処理の追加

保存前処理に特定の文字列を検索して置き換えるための処理である置換が新しく追加されました。

置換には2つのパラメータがあります。

  • パターン:検索文字列
  • 出力:検索文字列を置換する文字列

出力パラメータを空にした場合は、検索文字列が削除されて保存されます。

Zabbix senderでのナノ秒サポート

Zabbix senderに入力ファイルでナノ秒のサポートを可能にするためのオプション -N、--with-ns が追加されました。このオプションは --with-timestamps オプションと一緒にのみ使用可能です。

# zabbix_sender -z 127.0.0.1 --with-timestamps --with-ns -i value.txt

ナノ秒を含む入力ファイルのフォーマットは以下になります。

<ホスト> <キー> <タイムスタンプ> <ナノ秒> <アイテム値>

ZabbixデータベースへのTLS接続

Zabbixサーバ、プロキシおよびプロントエンドからMySQLおよびPostgreSQLへの接続にTLSを設定できるようになりました。

エージェント側でのアイテムキーのアクセス制御

エージェント側の設定(zabbix_agentd.conf)で以下のように許可・拒否するアイテムキーを指定できるようになりました。

ブラックリスト形式: DenyKeyで指定したキー以外を許可

DenyKey=vfs.file.contents[/etc/passwd]
DenyKey=vfs.file.contents[/etc/passwd,*]
DenyKey=system.run[*]

ホワイトリスト形式: AllowKeyで指定したキー以外を拒否

AllowKey=vfs.file.*[/var/log/*]
DenyKey=*

パスワードのハッシュ化アルゴリズムの強化

ユーザーのパスワードのハッシュ化アルゴリズムがMD5からより強力なbcryptに変更されました。この変更はアップグレード時に自動で行われるため、ユーザー側で特に操作は必要ありません。

WebhookでのHTTPプロキシの利用

WebhookでHTTPプロキシを設定できるようになりました。HTTPプロキシを設定する場合は、Webhookのパラメータに HTTPProxy を追加してください。

ディスカバリルール一覧画面へのフィルターの追加

ディスカバリルールの一覧画面にフィルター機能が追加されました。ホストグループ、ホスト、アイテムタイプなどによるフィルタリングが可能となり、一画面で横断的にディスカバリルールを表示させることができます。また、一覧の最初の列にそのディスカバリルールが設定されているホスト名が表示されるようになりました。

テンプレートの一括リンク解除

ホストおよびテンプレートの一括更新時にテンプレートの一括リンク解除ができるようになりました。

メディアタイプのデフォルトメッセージの設定

メディアタイプの設定でイベントのタイプごとにデフォルトメッセージを指定できるようになりました。

障害更新の改善

障害更新を実行するための画面が改善されました。

障害名の表示

選択中の障害名が表示されるようになりました。複数の障害を選択中の場合は、選択した障害の数が表示されます。

メッセージへの入力可能文字数の拡張

メッセージに入力できる文字数が256文字から2048文字に拡張されました。

Unacknowledgeオプションの追加

確認済みの障害を未確認に戻すためのオプションUnacknowledgeが追加されました。Unacknowledgeはアクションの履歴上ではのアイコンで表示されます。

ホストインターフェースレベルでのSNMPクレデンシャル設定

SNMPバージョンおよびクレデンシャルをホスト設定のインターフェース設定で行うようになりました。

それに伴い、アイテムのタイプからバージョンがなくなり、「SNMPエージェント」に統一されています。

SNMPキャッシュの手動クリーン

Zabbixサーバおよびプロキシで、全ホストに対するSNMPキャッシュのリロードおよびプロパティのクリアを実行させるためのランタイム制御オプション -R snmp_cache_reload がサポートされるようになりました。これにはNet-SNMP 5.3.0以上が必要です。

メール通知のスレッド機能

メール通知で送信された同じ障害に関連するメールが一つのスレッドにまとめられるようになりました。

Elasticsearch 7 サポート

Elsaticsearch 7.x が新しくサポートされるようになり、それ以前のバージョンはサポートされないようになりました。

SAML認証サポート

Zabbix のログインで SAML 2.0 認証がサポートされるようになりました。

Webhookインテグレーション

以下のWebhookメディアタイプがデフォルトで追加されました。

  • Jira
  • Jira Service Desk
  • Microsoft Teams
  • Redmine
  • ServiceNow
  • SIGNL4
  • Telegram
  • Zammad
  • Zendesk

Zabbixエージェント2

Zabbixエージェント2が公式にサポートされるようになり、機能が拡張されました。

Windowsサポート

Windows プラットフォームでのソースコンパイルが可能になりました。

プラグインの追加・更新

監視プラグインが新しく追加されました。

  • Docker
  • Memcached
  • MySQL

また、Redisプラグインの Plugins.Redis.Password 設定パラメータが削除され、パスワードをキーのパラメータとして渡すようになりました。

マクロ

フロントエンドでのマクロ値のマスク機能

マクロの値をフロントエンド上で表示させないための隠しテキストモードが追加されました。

ホストのプロトタイプでのユーザーマクロのサポート

ホストのプロトタイプでユーザーマクロが設定できるようになりました。LLDマクロをマクロの値として使用可能です。

IPMIクレデンシャルでのユーザーマクロのサポート

ホスト設定のIPMIユーザー名およびパスワードにユーザーマクロを使用可能になりました。

マクロの追加・更新

以下のマクロが新しく追加されました。

  • {EVENT.DURATION}:イベントの継続時間を返す
  • {EVENT.TAGSJSON}:イベントのタグを含むJSON配列を返す
  • {EVENT.RECOVERY.TAGSJSON}:復旧イベントのタグを含むJSON配列を返す

また、{HOST.ID}が通知で使用できるようになりました。

データベース

最小要件の変更

データベースの最小要件が以下のように変更されました。

  • MySQL 5.5.62
  • MariaDB 10.0.37
  • PostgreSQL 9.2.24
  • Oracle 11.2

IBM DB2のサポート削除

IMB DB2のサポートが削除されました。

TimescaleDBのデータ圧縮機能サポート

PostgreSQL 10.2以上およびTimescaleDB 1.5以上でTimescaleDBのデータ圧縮機能がサポートされるようになりました。

テンプレートの追加

以下のテンプレートが新しく追加されました。

  • Template App Elasticsearch Cluster by HTTP
  • Template DB ClickHouse
  • Template App Memcached
  • Template DB MySQL by Zabbix agent 2
  • Template App Docker
  • Template Server Chassis by IPMI

アイテムの追加・更新

Zabbixサーバおよびプロキシのバージョンを返す新しいインターナルアイテム zabbix[version] が追加されました。また、zabbix[stats,<ip>,<port>] がZabbixサーバおよびプロキシのバージョンも返すようになりました。

フロントエンド

PHPの最小要件の変更

PHPの最小要件が5.4.0から7.2.0に変更されました。

Internet Explorer 11のサポート削除

Internet Explorer 11がサポートされないようになりました。

ページ選択ドロップダウンリストの改善

概要、アクション、一般設定など一部のページの表示内容をドロップダウンリストで切り替える画面で、以前は右に小さく表示されていたドロップダウンリストがタイトル部に統合されて分かりやすくなりました。

[監視データ]-[ホスト]画面の追加

新しく[監視データ]-[ホスト]画面が追加されました。この画面ではすべての監視対象ホストの詳細が確認できます。また、[監視データ]-[Web]および[グラフ]メニューが削除され、[ホスト]画面からリンクするようになりました。

設定の詳細の編集のポップアップウィンドウ化

アクションの設定など一部の設定の詳細の編集がポップアップウィンドウで開かれるようになりました。これにより、多数の設定が一つの画面に詰め込まれて見づらくなるのを防ぐことができます。

ダッシュボードウィジェットのフィルタリング機能の追加

深刻度ごとの障害数」および「障害中のホスト」ウィジェットにタグによるフィルタリング機能が追加されました。

グラフウィジェットの画像ダウンロード機能の追加

グラフ」および「グラフ(クラシック)」ウィジェットのスクリーンショットをコンテキストメニューからPNG画像としてダウンロードできるようになりました。

[監視データ]-[障害]画面でのフィルタリング機能の改善

[監視データ]-[障害]画面での深刻度によるフィルタリング項目が改善され、個々の深刻度を選択できるようになりました。

Webhookのテスト機能の改善

Webhookメディアタイプのテスト中にログを表示可能になりました。

その他

  • [最新データ]画面を初めて開いたときに、何も表示されないようになりました。
  • WebシナリオのHTTPユーザーエージェントのリストが更新されました。

デーモン

Zabbixエージェントのリモートコマンドログの改善

HostMetadataItemHostInterfaceItem もしくは HostnameItemsystem.run[] が使用されている場合、LogRemoteCommands=1 が設定されていてもログが生成されないようになりました。

Zabbixエージェント2への永続ストレージの追加

Zabbixエージェント2で収集したデータを永続バッファに保存することができるようになりました。この機能はデフォルトでは無効になっています。また、それに伴い以下の設定パラメータが追加されました。

  • EnablePersistentBuffer
  • PersistentBufferPeriod
  • PersistentBufferFile

暗号ライブラリのサポート変更

mbedTLS(PolarSSL)のサポートが削除されました。

JMXでの表形式データ属性のサポート

JMXエージェント監視およびローレベルディスカバリで、JMX Mbean属性における表形式データオブジェクトがサポートされるようになりました。