ZABBIX 6.0.11以上へアップグレードするとzabbix_serverが起動しない場合の対処方法

Zabbixのパッケージをアップグレート後にダッシュボードで「Zabbixサーバーの起動」を確認したところ「いいえ」になっていて、プロセスを確認しても確かに起動していない。

sudo tail -f /var/log/zabbix/zabbix_server.log

# 確認すると次のようなログが繰り返し表示されていて、バイナリーログに関する権限がなさそう。
current database version (mandatory/optional): 06000000/06000010
required mandatory version: 06000000
optional patches were found
starting automatic database upgrade
[Z3005] query failed: [1419] You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) [create trigger hosts_name_upper_insert
before insert on hosts for each row
set new.name_upper=upper(new.name)]

このエラーの対処方法は、ZABBIXの公式ドキュメントに対処方法書いてありました。

https://www.zabbix.com/documentation/6.0/jp/manual/installation/upgrade_notes_6011

このアップグレードでAPIクエリの最適化を行っていてトリガーの作成が必要ですが、その権限がないということらしい。

ドキュメントの内容通り次のグローバル変数を設定したら、裏でリトライを繰り返しているようで、すぐに設定されzabbix_serverが自動起動しました。

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

zabbixサーバーが起動していればアップグレード完了していると思うので、設定を戻して作業完了です。

mysql> SET GLOBAL log_bin_trust_function_creators = 0;

公式ドキュメント助かる