以前、Zabbix 5.0から6.0にアップグレードした後に、ブラウザでWebインターフェースからログインしようと画面を開いたら、「Database error(データベースエラー)」が表示されて、ログインできなくなりました。
今回は「Database error」の原因と2つの解決方法をご紹介します。
著者の場合は、MariaDBを使用しています。
DBのバージョンによるエラー
まあ、「Database error」って言ってるからそうなんだろう。
しかし、それ以外の情報が一切ないのはWebインターフェースの困るところ。
困った時はログを確認。
1 |
tail /var/log/zabbix/zabbix_server.log |
デフォルトのZabbixサーバーのログの場所は大体ここ。
データベースに関する記述を探してみてください。
1 2 3 4 |
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. |
この辺り。
英語なのでとりあえず翻訳してみましょう。
1 2 3 4 |
サポートされていない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サーバーの設定ファイルを開きます。
1 |
# vi /etc/zabbix/zabbix_server.conf |
次に「AllowUnsupportedDBVersions」を探します。
デフォルトでは「0」でコメントアウトされていますので、「1」を設定します。
1 2 3 4 |
・・・ # AllowUnsupportedDBVersions=0 AllowUnsupportedDBVersions=1 ・・・ |
変更を保存したら、最後にZabbixサーバーを再起動して完成です!
1 |
systemctl restart zabbix-server |
とりあえずはこれでZabbixを動かせると思いますが、”サポートされているデータベースバージョンの使用を強くお勧めします“と書いてあるし、「AllowUnsupportedDBVersions」の設定は”自己責任で“とも書いてあるので、少し怖い気もしますね・・・。
そこで2つ目の解決策として、素直にサポートされているデータベースのバージョンを使うことです!
もちろんアップグレードするにしても、こちらの解決方法も全くリスクがないわけではありませんが、将来的に見てもこちらをオススメします!
MariaDBのアップグレード手順については以前記事にしていますので、そちらをご参照ください。
【おまけ】DBにリモート接続の場合
著者の場合はこれでも解決せず、このようなエラーもありました。
こちらは特にログにも出力されておらず、ググりまくってやっと解決したのでメモしておきます。
MariaDBの設定ファイルのパラメーターに「bind-address」というものがあります。
データベースにリモート接続する際は、これを無効化しないと繋がらなくなるようです。
Ubuntuが用意しているMariaDBの設定ファイルは複数ありますが、対象は以下のファイルになります。
1 |
vi /etc/mysql/mariadb.conf.d/50-server.cnf |
開いたら「bind-address」の箇所をコメントアウトします。
1 |
# bind-address = 127.0.0.1 |
保存してデータベースを再起動したら繋がるはずです。
あとで気付いたのですが、アップグレード前にはこの設定をしていたのを忘れてたみたいです。
古い設定ファイルとdiffで比較してみたら、昔はちゃんと設定していましたw
物忘れって怖いですねw
以上!お疲れ様でした~!
コメント