【祝】Zabbix 3.0.0 がリリースされました!【速報】

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

サーバーワークス Zabbixスペシャリスト 伊藤です。
普段は九龍とよばれています。

当初のリリーススケジュールから遅れること約半年
2016年02月16日 ついにZabbix 3.0.0 がリリースされました。

zabbix-whats-new-3.0-dashboard

 

ダウンロード
http://www.zabbix.com/download.php

 

リリースノート
http://www.zabbix.com/rn3.0.0.php

今回も最速解説を目指して
リリースノートから、3.0の変更点を見ていきたいと思います。

今回のZabbix3.0はLTSに当たり、2019/2までのフルサポートが提供されます。
またZabbix3.0 のリリースによりZabbi 2.4 はまもなくサポート終了となります。

 

主な新機能

フロントエンドデザインの変更

What's New in Zabbix 3.0
にも掲載されていますが、WEBフロントエンドのデザインが大きく変更されました。
全体的に、今風のフラットデザインが意識されたデザインとなっています。またマクロの展開表示など
操作性の向上も行われています。
また今回のZabbix 3.0.0 からIE8のサポートは終了となりましたので、
古い環境で動作させている場合は注意が必要です。

暗号化と認証のサポート

Server,Agent,Proxy間の通信に暗号化通信がサポートされました。
暗号化ではPSKおよび証明書方式が利用可能です。
このため、単なる通信の暗号化だけではなく、各モジュール間での相互認証も可能となりました。
これにより、別途VPNソリューションなどを利用すること無く、遠隔拠点の監視をセキュアに実現することができるようになります。

予測機能

トリガー関数において、値の将来値を予測することが可能となりました。
これにより、現在の測定値ではなく、将来の値を予測してアラートを発報することが可能となります。
予測機能の詳細については、
Zabbix 3.0 の予測機能についての数学的考察

もご覧頂けますと幸いです。

定期チェック機能

今までの周期的な値収集のみではなく、値収集の定時実行が可能となりました。
これにより、バッチ処理の結果監視など他のシステムと組み合わせたような監視もより簡単に実現できるようになることが期待されます。

プライベートスクリーン機能

マップや、スクリーン、スライドショー設定において
全ユーザが表示出来るパブリックスクリーンとは別に、個人のアカウント毎に設定出来る
プライベートスクリーンが実装されました。
監視担当者、分析担当者など、役割や好みに応じて
Zabbixの監視データを適切に参照することができるようになります。

プロトタイプトリガーの依存関係のサポート

これまでローレベルディスカバリ(LLD)機能によって作成されたトリガーには依存関係を設定する事が出来ませんでした。
Zabbix3.0ではLLDによって作成されたトリガー同士、あるいは、固定的なトリガーとLLDによるトリガーでも
依存関係を設定することが可能となりました。
 

ローレベルディスカバリでのアプリケーション設定のサポート

LLDのアイテムプロトタイプに対して、固定的なアプリケーションを設定する事ができましたが
Zabbix3.0ではLLDのマクロに基づいてアプリケーションを設定する事が可能になりました。
また、アプリケーションに振り分けるだけでは無く、LLDによって新たにアプリケーションを定義することも可能となりました。
これにより、LLDによって作成されたアイテムをより的確に自動的に分類することが可能となります。

ローレベルディスカバリのでSNMPの複数の値に対応

SNMPによるLLDの結果に複数のOIDに対応出来るようになりました。
これにより、1つのインターフェイスに、ディスクリプションとエイリアスが紐付いているような
環境でも、適切に処理を行う事が可能となりました。
詳細はLLDのドキュメントを参照してください。

ログ項目の数値取得

Zabbix2.2の頃から、ログの出力の中身から数値データだけを取得する機能がありましたが、
Zabbix3.0からこの値を文字列ではなく、数値として扱えるようになりました。
これによりログファイルに出力された値を元にグラフを生成することなども可能になりました。

なお、この機能はログ内の特定の文字列をカウントするなどのログ集計機能ではありませんので、注意が必要です。

ユーザ定義マクロのコンテキストサポート

ユーザマクロにコンテキストが設定できるようになりました。
この拡張により、LLDで定義されたマウントポイント毎に異なる閾値を定義することが可能となります。
ユーザマクロのコンテキストについては、
ユーザマクロのドキュメント Example 4を参照してください。

ユーザマクロ設定値の透過的表示

ホストのテンプレート適用ページにおいて、テンプレートマクロあるいはグローバルマクロの設定値を表示することが可能になりました。
これにより、テンプレートを確認しなくてもそのホストの閾値がいくつになるか、変更が必要かを簡単に確認することができるようになります

SMTP認証のサポート

通知アクションにおいて、認証付きSMTPがサポートされました。
これにより、通知スクリプトなどを使用せずに、認証が必要なSMTPサーバが使用可能となります。
また、これに合わせて25番ポート以外のSMTPサーバも指定可能となりました。

エスカレータプロセスのマルチプロセス化

通知の際に、エスカレーション条件などを判定しているエスカレータープロセスがマルチプロセス化されました。
これにより、イベント処理が性能向上が期待できます。

VMware監視項目の追加

vmware.vm.cpu.readyアイテムが追加されました。
これにより、物理CPUが仮想マシンに割り当てられなかった割合を測定可能となります。

WEBフロントエンドでのフィルタオプションの追加

イベントトップ100のページにおいてこれまでは1日、1週間、1年などのフィルタリングのみ可能でしたが
ホスト、ホストグループ、トリガ深刻度、カスタム期間などによりフィルタリングが可能となりました。
この改善により障害レポートなどの作成が可能になると思われます。
また、マップ、スクリーン、スライドショー画面においてもフィルタ機能が追加されました。

一括更新のボタン化

これまで、一括更新はプルダウンメニューから選択して実行ボタンをクリックする方式となっていましたが、
1つのボタンとして独立しました。
これにより、よりスムースな操作が可能になります。

WEB監視でのユーザエージェントの追加

WEB監視の際に指定するプリセットのユーザエージェントに「Zabbix」が追加されました。
また、このユーザエージェントがデフォルト設定になりました。
これにより、被監視側WBEサイトでのZabbixからのアクセス確認が簡単になります。
なお、デフォルト設定が変更となりますのでユーザーエージェント毎に応答が変わるWEBサイトを監視している場合は新たな設定に注意が必要です。

Import/Export項目の追加

値のマッピング設定のエクスポート、インポートに対応しました。
また、スクリーンの「時計」項目のエクスポート、インポートに対応しました。

ZabbixAPIの追加

ZabbixAPIでvalue maps と trends がサポートされました。

フロントエンドの改善

値のマッピングがどのアイテムで使用されているか表示されるようになりました。

ディスカバリ設定とアクション設定で複数のネットワーク範囲を指定する際に間にスペースを挿入できるようになりました。

ダッシュボードの「最新20件の障害」、「システムステータス」、「ホストステータス」においてトリガー名とURLのポップアップが実装されました。

更新間隔に複数のプリセット設定されました。
30秒以外の監視間隔を設定する際に、わざわざ入力せずに、より迅速にアイテム設定を行う事が出来るようになります。

housekeeperの手動実行

ハウスキーパーを手動で実行することが可能になりました。
これにより、負荷のかかるハウスキーパー動作を停止させておき、負荷が低い時間やメンテナンス計画などを作成し
手動でのハウスキーパー処理を行う事が可能となります。

パフォーマンスの向上

configuration cacheのロックを3分の1に改善されました。
またhistory cache とhistory syncerを最適化されました。

アクションの条件処理にインメモリキャッシュを導入しアクション処理の性能を向上されました。

トリガー条件式の評価を内部的にハッシュ処理とすることで、大幅に性能を向上されました。

nodata関数で評価する際、余分な範囲のデータも読み出していたため、
nodata関数で指定された期間のデータだけを読み出すように改善されました。

アクティブプロキシがサーバーに接続した際に、プロキシの設定情報をDBから直接読み出すのではなく
configuration cacheから読み出すように変更されました。これにより、パフォーマンスの向上が見込まれますが
configuration cacheの反映周期を待つ必要があるので、注意が必要です。

フォアグラウンドでのZabbixデーモンの起動モード

Zabbixデーモンをフォアグラウンドで起動するオプションが追加されました。
これによりdockerization (docker上での起動)が容易となります。

Windows上でのZabbixエージェントのクラッシュログ

ZabbixエージェントのクラッシュログがWindows上でもUNIX/Linux環境と同様に出力されるようになりました。

Windows上でのタイムアウトの正確化

Windows上でのタイムアウト設定が厳密に適用されるようになりました。
これは、以下のアイテムキーに影響します。
net.tcp.port、net.tcp.service、net.tcp.service.perf、web.page.get、web.page.perf、web.page.regexp

Java GatewayでのIPv6サポート

JMXインターフェイスでのIPv6の利用がサポートされました。

デバッグレベル5の導入

Server,Proxy,Agentのログレベルにおいて、新たにdebuglevel5が追加されました。

デバッグレベル2の項目の追加

debuglevel2の場合に「データベース接続の回復」が記録されるようになりました。

LLDマクロの追加

IPMIセンサーのLLDマクロがサポートされました。

新しい値のマッピング

プリセットの値のマッピングにHTTPレスポンスコードが追加されました。

アイテムの改善

proc.cpu.util プロセス毎のCPU使用率が追加されました。
このアイテムはLinuxおよびSolarisで利用可能です。

net.dns、net.dns.recordのエージェントアイテムで接続パラメータが追加され
TCPとUDPが選択可能になりました。デフォルトはUDPです。

Windowsエージェントでのnet.dns、net.dns.recordの動作においてWindowsの内部リゾルバをバイパスするようになりました。

Windows上のnet.if. *アイテムにおいて32bitカウンタの値では無く64bitカウンタの値を利用するようになりました。

net.tcp.listenの値においてLinux 2.6.14以上であればNETLINKインターフェイスの値を収集するようになりました。
それ以前のLinuxバージョンにおいては /proc/net/tcp の値を参照します。

proc.memにおいて、第5パラメータmemtypeが追加されました。(AIX, FreeBSD, Linux, Solarisでのみ利用可能です)

system.cpu.utilにおいて、Linuxカーネル2.6.24および2.6.33以上においてguest_niceをサポートしました、
これによりXen,KVMなどの仮想化環境におけるCPU利用状況をある程度ホストOS側から収集することが可能になります。

db.odbc.discoveryアイテムが追加されました。
このアイテムによりODBCのLLDが可能となります。

snmptrap , log , logrt 、eventlog アイテムにおいて、一般設定正規表現を利用していて
その正規表現が存在しない場合、正規表現が存在しないというエラーを返すようになりました。

vm.memory.size[available]はこれまで free, buffers, cachedメモリの合計値でしたが
Zabbix3.0で監視対象がLinuxカーネル3.14以上の場合/proc/meminfoのMemAvailableを取得するようになります。

こでまでnet.tcp.serviceとnet.tcp.service.perfにntpというオプションがありましたが
これらはZabbix3.0で自動的にnet.udp.serviceとnet.udp.service.perfに変換されます。
これは実際に利用しているプロトコルとアイテム名に齟齬があったためです。

service_stateアイテムが非推奨となり、
代わりにservice.discovery、service.infoアイテムが実装されました。

内部チェックアイテムとして
zabbix[host,,items]
zabbix[host,,items_unsupported] 
が追加されました。これにより取得不可アイテム、設定不備アイテムの数を取得することが可能となります。

さらに50以上の改善が盛り込まれています。
詳細はWhat's New in Zabbix 3.0を参照してください。

まとめ

細かな機能から大きな改善までとても多くの改善が行われました。

通信の暗号化はこれまでLANだけで運用されてきた監視対象システムを
クラウド化、WAN化していくなかで重要な機能になると思います。

予測機能は未来予知というだけではなく、早期検知のために低めの閾値を設定しているような環境で
閾値を超えているが、安定しているようなシステムに対しての誤発報を防ぎ実際に値が上昇あるいは下降しているシステムだけを
検知して発報するようなトリガーにも利用が可能だと思います。

Zabbix3.0でZabbixはよりセキュアに、より正確に、より高性能に進化をしました。
特にクラウド環境では通信の暗号化が導入のネックとなっていた案件なども耳にしていましたので、
Zabbix3.0 はまさに待ちわびたリリースだと思います。

また、地味ですがユーザ定義マクロや正規表現の設定エラー表示、マクロのコンテキスト対応など
実際にZabbixの設定者、監視者の痒いところに手が届く改修が行われており
大規模な環境でのオペレーションが楽になるとおもいます。

Zabbix 3.0 はLTSとなりますので、5年間のサポート期間を保ち
本番環境でも支障なく導入出来るバージョンとなります。
 

Zabbix2.4を利用されている方は、即座に
Zabbix2.2を利用中の方も来年の夏までには、是非とも移行をご検討ください。

AWSでのZabbix構築、移行などのご相談は是非Zabbix認定パートナーのサーバーワークスを
ご用命下さい。

 

AWS運用自動化サービス「Cloud Automator」