Zabbix6.0アップデート後「Database error」の原因と2つの解決方法

zabbix-database-errorテクノロジー

以前、Zabbix 5.0から6.0アップグレードした後に、ブラウザでWebインターフェースからログインしようと画面を開いたら、「Database error(データベースエラー)」が表示されて、ログインできなくなりました。
今回は「Database error」の原因と2つの解決方法をご紹介します。
著者の場合は、MariaDBを使用しています。

DBのバージョンによるエラー

まあ、「Database error」って言ってるからそうなんだろう。
しかし、それ以外の情報が一切ないのはWebインターフェースの困るところ。
困った時はログを確認。

tail /var/log/zabbix/zabbix_server.log

デフォルトのZabbixサーバーログの場所は大体ここ。
データベースに関する記述を探してみてください。

Unable to start Zabbix server due to unsupported MariaDB database server version (10.03.32)
Must be at least (10.05.00)
Use of supported database version is highly recommended.
Override by setting AllowUnsupportedDBVersions=1 in Zabbix server configuration file at your own risk.

この辺り。
英語なのでとりあえず翻訳してみましょう。

サポートされていないMariaDBデータベースサーバーのバージョン(10.03.32)が原因で、Zabbixサーバーを起動できません
少なくとも(10.05.00)である必要があります
サポートされているデータベースバージョンの使用を強くお勧めします。
自己責任でZabbixサーバー構成ファイルにAllowUnsupportedDBVersions=1を設定してオーバーライドします。

はい、原因解決方法が書いてありましたね!

DBのバージョンが古いことが原因!

ログに書いてあるように、Zabbix 6.0からはMariaDBのバージョンが10.05.00以上である必要があるようです。
しかし、Ubuntu 20.04にデフォルトで入っているMariaDBのバージョンは10.03なので、サポート対象外だから起動できませんよ、というエラーらしい。
確かに、インストール要件に書いてあったな。(自分で書いて忘れてたw)

2つの解決方法

解決策の1つ目は、ログに書かれてある通リ、Zabbixサーバーの設定ファイルにある「AllowUnsupportedDBVersions」を「1」に設定するというもの。
このパラメーターは、その名の通りサポートされていないDBのバージョンも許可する設定です。

まず、Zabbixサーバー設定ファイルを開きます。

# vi /etc/zabbix/zabbix_server.conf

次に「AllowUnsupportedDBVersions」を探します。
デフォルトでは「0」でコメントアウトされていますので、「1」を設定します。

・・・
# AllowUnsupportedDBVersions=0
AllowUnsupportedDBVersions=1
・・・

変更を保存したら、最後にZabbixサーバーを再起動して完成です!

systemctl restart zabbix-server

とりあえずはこれでZabbixを動かせると思いますが、”サポートされているデータベースバージョンの使用を強くお勧めします“と書いてあるし、「AllowUnsupportedDBVersions」の設定は”自己責任で“とも書いてあるので、少し怖い気もしますね・・・。

そこで2つ目の解決策として、素直にサポートされているデータベースのバージョンを使うことです!
もちろんアップグレードするにしても、こちらの解決方法も全くリスクがないわけではありませんが、将来的に見てもこちらをオススメします!
MariaDBアップグレード手順については以前記事にしていますので、そちらをご参照ください。

【おまけ】DBにリモート接続の場合

出典:Zabbix 5 Appliance: Database Error — Connection Refused | by Sounds Essential | Medium

著者の場合はこれでも解決せず、このようなエラーもありました。

Database error
connection refused

こちらは特にログにも出力されておらず、ググりまくってやっと解決したのでメモしておきます。
MariaDBの設定ファイルのパラメーターに「bind-address」というものがあります。
データベースにリモート接続する際は、これを無効化しないと繋がらなくなるようです。

Ubuntuが用意しているMariaDBの設定ファイルは複数ありますが、対象は以下のファイルになります。

vi /etc/mysql/mariadb.conf.d/50-server.cnf

開いたら「bind-address」の箇所をコメントアウトします。

# bind-address            = 127.0.0.1

保存してデータベースを再起動したら繋がるはずです。

あとで気付いたのですが、アップグレード前にはこの設定をしていたのを忘れてたみたいです。
古い設定ファイルとdiffで比較してみたら、昔はちゃんと設定していましたw
物忘れって怖いですねw
以上!お疲れ様でした~!

東京生まれ福岡育ちの文系プログラマー。
テクノロジーの恩恵を感じながら日々精進しています。
広く浅くをモットーに、最近ではプログラミングだけでなく、仮想サーバーからセキュリティ、監視システムなども勉強中です。

管理者をフォローする

コメント

タイトルとURLをコピーしました