環境
・Ubuntu 20.04
・MariaDB 10.3
Zabbix 4.2 -> 6.0 にアップグレード
Zabbix6.0にアップグレード
公式手順も用意されてるのでその通りにアップグレードしていきます。
トラブル
zabbixのアップグレードは問題なく完了したが、フロントエンドでDatabase errorが表示
The Zabbix database version does not match current requirements.
Your database version: 4020000. Required version: 6000000. Please contact your system administrator.
/var/log/zabbix/zabbix_server.log
にログが何も出力されず原因不明。
そもそもデータベースのサポートバージョンはMariaDBの場合10.5以上なので、
MariaDBも10.3->10.5にアップグレードを実施。
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 53948
Server version: 10.5.15-MariaDB-1:10.5.15+maria~focal mariadb.org binary distribution
MariaDBのアップグレード後も、フロントエンドでは上記のDatabase errorが表示されたが
/var/log/zabbix/zabbix_server.log
にはログが出力されるようになった。
4859:20220329:010905.627 Starting Zabbix Server. Zabbix 6.0.1 (revision a80cb13868).
・・・(略)
4859:20220329:010905.628 using configuration file: /etc/zabbix/zabbix_server.conf
4859:20220329:010905.664 Zabbix supports only "utf8,utf8mb3,utf8mb4" character set(s). Database "zabbix" has default character set "latin1"
4859:20220329:010905.664 Zabbix supports only "utf8_bin,utf8mb3_bin,utf8mb4_bin" collation(s). Database "zabbix" has default collation "latin1_swedish_ci"
4859:20220329:010905.690 character set name or collation name that is not supported by Zabbix found in 392 column(s) of database "zabbix"
4859:20220329:010905.694 only character set(s) "utf8,utf8mb3,utf8mb4" and corresponding collation(s) "utf8_bin,utf8mb3_bin,utf8mb4_bin" should be used in database
4859:20220329:010905.696 current database version (mandatory/optional): 04030004/04030004
4859:20220329:010905.696 required mandatory version: 06000000
4859:20220329:010905.696 starting automatic database upgrade
4859:20220329:010906.335 [Z3005] query failed: [1366] Incorrect string value: '\xE3\x81\x9D\xE3\x81\xAE...' for column `zabbix`.`item_rtdata`.`error` at row 68 [insert into item_rtdata (itemid,lastlogsize,state,mtime,error) select i.itemid,i.lastlogsize,i.state,i.mtime,i.error from items i join hosts h on i.hostid=h.hostid where h.status in (0,1) and i.flags<>2]
4859:20220329:010906.378 database upgrade failed
解決
ログの通りitem_rtdata
カラムを確認するとCollationがlatin1_swedish_ci
になっていたので下記コマンドを実行した。
ALTER TABLE zabbix.item_rtdata CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
これでzabbixが起動してフロントエンドのエラーも消えて無事にアップグレードが完了しました。