Zabbixのバージョンとサポート期間と注意事項（2017年版）

日本Zabbixユーザー会副代表の田中です。

今年もZabbixのAdvent Calendarをはじめたいと思います。
まだまだ予定が埋まっていないので、皆様ぜひぜひご参加ください。

第1日目ということで、昨年同様、最新のサポート状況を整理しておきたいと思います。

Zabbixのバージョン番号の付与ルールと、長期間のサポートが提供されるLong Term Support(LTS)と、サポート期間の短いポイントリリースの説明に関しては、昨年の記事をご確認ください。

- [Zabbixのバージョンとサポート期間（2016年版）](https://qiita.com/atanaka7/items/dec56b56e6990c97cad7)


# 現在のサポート状況

まだ、1.8の環境が残っているところもあるみたいですので、1.8以降のZabbixのリリースバージョンとそのサポート期限を整理すると以下のようになります。

|バージョン|種類|リリース日|フルサポート終了|リミテッドサポート終了|
|:---------|:---|:---------|:---------------|:---------------------|
|1.8|-|2009年12月07日|-|2014年11月30日|
|2.0|LTS|2012年05月21日|2015年05月|2017年05月|
|2.2|LTS|2013年11月12日|2017年08月|2019年08月|
|2.4|ポイント|2014年09月11日|2016年02月|2016年03月|
|3.0|LTS|2016年02月16日|2019年02月|2021年02月|
|3.2|ポイント|2016年09月14日|2017年10月|2017年11月|
|3.4|ポイント|2017年08月22日|2018年02月|2018年03月|

**※** 3.4の期限は、4.0が2018年01月にリリースされた場合
**※** 4.0のリリースは、2018年1Qが予定されているが詳細は未定の模様

1.8、2.0、2.4、3.2などは、リミテッドサポートも終了してしまっているので、今後、公式には不具合や脆弱性の問題が修正されたバージョンはリリースされないでしょう。

現時点では、より長期のサポートが提供されるLTSの3.0を選択されるとよいと思います。
現時点(2017/12/01)での3.0の最新版は、3.0.13です。
サポート期間が短くてもよいので新機能を使用されたい方は、3.4をご利用ください。

詳細は、以下のURLに記載されています。

- [Zabbix サポート期間とリリースポリシー](http://www.zabbix.com/jp/life_cycle_and_release_policy)


# 最近のリリースでの注意点

## 3.4の初期バージョンの不具合

3.4の初期バージョンである3.4.0では、一度、Zabbixエージェントとの通信で障害が発生してしまうと、Zabbixサーバーを再起動しない限り、監視を再開させることができませんでした。

この不具合は、3.4.1で修正されています。

- [ZBX-12549 : Items can be stuck when host becomes reachable](https://support.zabbix.com/browse/ZBX-12549)

## 3.4リリース後の仕様変更

通常は、同じバージョン内では大きな使用の変更はないのですが、現時点でも目立つ仕様の変更が行われています。

1つは、障害対応コメントを入力したり、障害のトリガーを手動でクローズした時に、アクションでの通知を行う条件が変更されています。
初期バージョンでは、障害対応コメントを入力したり、トリガーをクローズしたユーザーにも通知を行うことができましたが、3.4.2からは入力したりクローズした本人には送られないようになっているのでご注意ください。

メール通知などのアクションで、他のシステムと連携しているような場合は、連携用のユーザーと普段Webインターフェースを使用するユーザーは分けた方が良いかもしれません。

もう1つは、3.4.3で、system.runやUserParameter、外部チェックでコマンドを実行した際の終了コードのチェックが削除されました。

初期のバージョンでは、system.runやUserParameterなどでの実行やリモートコマンドやメディアでのスクリプト実行などの終了コードをチェックするようになっていました。
これによって、実行できたかどうかを判別できるようにしたわけです。

しかし、system.runやUserParameterなどを使用して、1行コマンドを呼び出すような場合は、わざわざ終了コードを変更するようなものを組み込まないといけなくなる場合があり、その場合は設定が煩雑になってしまいます。
そこで、ユーザーからの強い要望もあったからだと思いますが、system.runやUserParameter、外部チェックに関しては、終了コードをチェックしないようになりました。

system.runやUserParameterなどで呼び出していた各コマンドの終了コードを意識しなくてよくなったので、これまでに使用していた監視設定をそのまま使用できると思います。

リモートコマンドやメディアに関しては、終了コードをチェックするようになっているので、実行自体に失敗したのか、実行はできたけれどもメッセージが到達しなかったのか、問題発生時の切り分けが3.4以前のバージョンよりもしやすくなっています。

- [ZBX-12594 : Not possible to ignore exit codes of scripts which may result in unsupported state](https://support.zabbix.com/browse/ZBX-12594)

## パッケージングでの手順漏れ

現時点(2017/12/01)での最新版である3.4.4のパッケージ公開時に、パッケージ作成時の手順漏れとおもわれる問題が発生していました。

具体的には、3.4.4-1というバージョンのパッケージでは、多言語のメッセージファイルがパッケージ内に含まれない状態であったため、Webインターフェースで日本語に切り替えても、日本語メッセージに切り替わらないという現象が発生していました。

即日Zabbix Japanに連絡をして、パッケージを作成している本国の方に連絡して頂いて、問題が修正された3.4.4-2というバージョンのパッケージを公開して頂きました。

UbuntuやDebian系も、その急遽入れ替えに伴ってか、リポジトリのデータに問題が発生していたようですが、現時点では改善されているはずです。
リリース直後に試して駄目だった方は、再度、やり直してみてください。

もしも、3.4.4-1を使っていて日本語が表示できないという方は、3.4.4-2にアップグレードしてください。
Webサーバーなどの再起動も行うことをお忘れなく。

**※** 以下の日本語翻訳は私が勝手に翻訳したもので公式なものではありません。ご参考まで。

- [Zabbix 3.4.2、3.2.8、3.0.11、2.2.20リリース](http://www.zabbix.jp/node/4055)
- [Zabbix 3.4.3、3.2.9、3.0.12リリース](http://www.zabbix.jp/node/4074)
- [Zabbix 3.4.4、3.2.10、3.0.13リリース](http://www.zabbix.jp/node/4108)


# 最後に

Zabbixは、不具合や脆弱性の問題の対応のためには、更新されたバージョンがリリースされます。
メジャーバージョンが3.4であれば、3.4.0が初期バージョンで、3.4.1、3.4.2、3.4.3、3.4.4というようにバージョンアップされています。(3つの数字の最後の数字はマイナーバージョン)

メジャーバージョンが一致していれば、データベースの変更などは基本的には行われません。
とはいえ、より安全に作業を行うのであれば、別途、検証環境でのアップグレード検証を行って頂いた方がよいと思います。

様々な不具合や脆弱性の問題が解決している場合がありますので、使用しているのと同じメジャーバージョンに対する新バージョンリリース時には、リリースノートなどで修正内容を確認し、バージョンアップされることをお勧めします。

明日は、九龍さんですね。
よろしくお願いします。