dshimizu/blog

アルファ版

Ubuntu 16.04 LTSのZabbix3.4をZabbix4.0へアップグレード

2018/10/1 Zabbix 4.0 がリリースされた。 Zabbix4.0 は、長期サポート(LTS)版となるため、サポート期間が5年となっている。

前バージョン3.4のリリースから約1年ぶりの新バージョンのリリースとなるため、早速現在遊びで使っているZabbix3.4からのアップデートを行った。

Zabbix3.4->4.0へのアップデート

基本的には下記オフィシャルドキュメントに記載の手順通りに実施した。 Ubuntu/DebianのZabbix4.0のパッケージのアップグレードに関しては3.4からしかサポートされてないようなことが書かれているような気がするが、よくわからないし今やろうとしているのはZabbix3.4から4.0へのアップグレードなので気にしないことにする。

以下のURLから環境にあったパッケージを取得する。

ここではUbuntu16.04 LTS環境なのでそのZabbix4.0用リポジトリパッケージを取得する。

$ wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+xenial_all.deb

該当パッケージをインストールする。

$ sudo dpkg -i zabbix-release_4.0-2+xenial_all.deb

現行Zabbix Serverを停止する。

$ sudo systemctl stop zabbix-server

現行Zabbix Serverのファイルをバックアップする。 まずはバックアップファイル保存用のディレクトリを作成する。

$ sudo mkdir /opt/zabbix-backup/

現行Zabbix Serverのコンフィグファイルをバックアップする。

$ sudo cp -pr /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/

現行Zabbixフロントエンド用Apacheコンフィグファイルをバックアップする。

$ sudo cp -pr /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/

現行Zabbixフロントエンド用PHPソースをバックアップする。

$ sudo cp -prR /usr/share/zabbix/ /opt/zabbix-backup/

現行ZabbixのChangeLog等のファイルもバックアップする。

$ sudo cp -prR /usr/share/doc/zabbix-* /opt/zabbix-backup/

オフィシャル手順には書かれていないがMySQLをバックアップする。 --single-transactionとかmater-dataとかのオプションは環境に合わせてお好みで。

$ mysqldump -u zabbix -p -h localhost zabbix > zabbix.dump

Zabbix Server(MySQL用)、Zabbixフロントエンド、Zabbixエージェントのパッケージをインストール(アップグレード)する。

$ sudo apt install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent

Zabbix Serverを起動する。

$ sudo systemctl start zabbix-server

...と思ったら起動できなかった。

Zabbix Server起動時にMySQLのDB定義等をアップグレードしてくれているが、MySQLが止まってしまったようでそれが失敗していた。 しょぼいスペックで動かしていたからかな...

 10449:20181007:175245.487 Starting Zabbix Server. Zabbix 4.0.0 (revision 85308).
 10449:20181007:175245.487 ****** Enabled features ******
 10449:20181007:175245.487 SNMP monitoring:           YES
 10449:20181007:175245.487 IPMI monitoring:           YES
 10449:20181007:175245.487 Web monitoring:            YES
 10449:20181007:175245.487 VMware monitoring:         YES
 10449:20181007:175245.487 SMTP authentication:       YES
 10449:20181007:175245.487 Jabber notifications:      YES
 10449:20181007:175245.487 Ez Texting notifications:  YES
 10449:20181007:175245.487 ODBC:                      YES
 10449:20181007:175245.488 SSH2 support:              YES
 10449:20181007:175245.488 IPv6 support:              YES
 10449:20181007:175245.488 TLS support:               YES
 10449:20181007:175245.488 ******************************
 10449:20181007:175245.488 using configuration file: /etc/zabbix/zabbix_server.conf
 10449:20181007:175245.522 current database version (mandatory/optional): 03040000/03040000
 10449:20181007:175245.523 required mandatory version: 04000000
 10449:20181007:175245.523 starting automatic database upgrade
 10449:20181007:175245.680 completed 0% of database upgrade
 10449:20181007:175245.826 completed 1% of database upgrade
 10449:20181007:175245.902 completed 2% of database upgrade
 10449:20181007:175246.115 completed 3% of database upgrade
 10449:20181007:175246.136 completed 4% of database upgrade
 10449:20181007:175246.291 completed 5% of database upgrade
 10449:20181007:175503.224 [Z3005] query failed: [1317] Query execution was interrupted [alter table `events` add `name` varchar(2048) default '' not null]
 10449:20181007:175503.225 slow query: 136.934211 sec, "alter table `events` add `name` varchar(2048) default '' not null"

ということでMySQLを起動する。

$ sudo systemctl start mysql

再度Zabbix Serverを起動する。

$ sudo systemctl restart zabbix-server

起動できた。

画面は、新しいテーマのハイコントラスト(ダーク)というテーマの画面。

まとめ

Zabbix3.4->Zabbix4.0へのアップグレードを行った。 パッケージを使っていればアップグレードもラクチンだった。