zabbix-serverプロセスが起動しない

Zabbixマネージャを構築しようとしていますが、
zabbix-serverのプロセスが起動しません。
知見お持ちの方ご教授お願いいたします。

環境は以下です。

クラウド:Alibaba Cloud 国際サイト 東京リージョン
OS:CentOS 8.2 64-bit
zabbix-server:5.0.0
httpd:2.4.37
php-fpm:7.2.24
Database:mysql8.0 (Apsara RDS)
セキュリティ:RDSのホワイトリストでECSのIP許可
SELinux:無効
firewalld:無効

OS上での実施手順は以下になります。

timedatectl set-timezone Asia/Tokyo
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el...
dnf clean all
dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent zabbix-web-japanese
dnf -y install mysql-server
mysql -u ユーザ名 -h RDSのエンドポイント -P 3306 -p
SHOW VARIABLES LIKE "chara%";
SHOW VARIABLES LIKE '%time_zone%';
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@`%` IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@`%`;
FLUSH PRIVILEGES;
quit;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -h RDSのエンドポイント -P 3306 -uzabbix -p zabbix
vi /etc/zabbix/zabbix_server.conf
=====
DBHost=RDSのエンドポイント
=====
DBPassword=パスワード
=====
vi /etc/php-fpm.d/zabbix.conf
=====
php_value[date.timezone] = Asia/Tokyo
=====
dnf -y install httpd php php-{gd,bcmath,xml,mbstring}
dnf -y install glibc-langpack-ja
localectl set-locale LANG=ja_JP.UTF-8
source /etc/locale.conf
systemctl enable httpd php-fpm zabbix-server zabbix-agent
systemctl start httpd php-fpm zabbix-server zabbix-agent
=====

ここまでエラーは出ていません。
しかしステータスを見るとzabbix-serverプロセスは起動していません。
ログは以下です。

# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: signal) since Wed 2020-11-25 17:09:47 JST; 1s ago
Process: 28908 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 28910 (code=killed, signal=ABRT)


# journalctl -feu zabbix-server.service
-- Logs begin at Mon 2020-09-14 16:35:27 JST. --
11月 25 17:37:28 mng-3 systemd[1]: zabbix-server.service: Can't open PID file /run/zabbix/zabbix_server.pid (yet?) after start: No such file or directory
11月 25 17:37:28 mng-3 systemd[1]: Started Zabbix Server.
11月 25 17:37:28 mng-3 systemd[1]: zabbix-server.service: Main process exited, code=killed, status=6/ABRT
11月 25 17:37:28 mng-3 systemd[1]: zabbix-server.service: Failed with result 'signal'.
11月 25 17:37:38 mng-3 systemd[1]: zabbix-server.service: Service RestartSec=10s expired, scheduling restart.
11月 25 17:37:38 mng-3 systemd[1]: zabbix-server.service: Scheduled restart job, restart counter is at 163.
11月 25 17:37:38 mng-3 systemd[1]: Stopped Zabbix Server.


# cat /var/log/zabbix/zabbix_server.log
30239:20201125:180152.258 Starting Zabbix Server. Zabbix 5.0.5 (revision eaa427cf19).
30239:20201125:180152.258 ****** Enabled features ******
30239:20201125:180152.258 SNMP monitoring: YES
30239:20201125:180152.258 IPMI monitoring: YES
30239:20201125:180152.258 Web monitoring: YES
30239:20201125:180152.258 VMware monitoring: YES
30239:20201125:180152.258 SMTP authentication: YES
30239:20201125:180152.258 ODBC: YES
30239:20201125:180152.258 SSH support: YES
30239:20201125:180152.258 IPv6 support: YES
30239:20201125:180152.258 TLS support: YES
30239:20201125:180152.258 ******************************
30239:20201125:180152.258 using configuration file: /etc/zabbix/zabbix_server.conf
*** buffer overflow detected ***: /usr/sbin/zabbix_server terminated


# tail -5 /var/log/messages
Nov 25 17:03:03 mng-3 systemd[1]: Starting Zabbix Server...
Nov 25 17:03:04 mng-3 systemd[1]: zabbix-server.service: Can't open PID file /run/zabbix/zabbix_server.pid (yet?) after start: No such file or directory
Nov 25 17:03:04 mng-3 systemd[1]: Started Zabbix Server.
Nov 25 17:03:04 mng-3 systemd[1]: zabbix-server.service: Main process exited, code=killed, status=6/ABRT
Nov 25 17:03:04 mng-3 systemd[1]: zabbix-server.service: Failed with result 'signal'.

調べて出てきたことは大体実施しました。
■trousersのアップデート

# dnf update trousers
Repository epel is listed more than once in the configuration
メタデータの期限切れの最終確認: 0:59:18 時間前の 2020年11月25日 17時06分17秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!

■CacheSizeの変更

# vi /etc/zabbix/zabbix_server.conf
CacheSize=2G

■mysqlの認証設定

mysql> select user, host, plugin from user;
+--------------------+---------------+-----------------------+
| user | host | plugin |
+--------------------+---------------+-----------------------+
| aurora | % | mysql_native_password |
| 管理者ユーザ | % | mysql_native_password |
| zabbix | % | mysql_native_password |
| replicator | xxx.xxx.xxx.xxx | mysql_native_password |
| aliyun_root | 127.0.0.1 | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
+--------------------+---------------+-----------------------+
8 rows in set (0.00 sec)

2020/11/26 追記
DBを外出し(RDSを使用)せずに、ZabbixマネージャのサーバにDBを腹持ちさせると正常に起動しました。
OSの問題ではないのかもしれません。。。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

trousersの更新が必要であったのは、RHEL 7.1.1503の時の問題で
すので、RHEL 8(CentOS 8)には関係ありません。
どのくらいのサイズのインスタンスを使用されているのでしょうか?

ユーザー eloso の写真

返信ありがとうございます。
■ECS

CPU:2コア
メモリ:4GB
ストレージ:40GB

■RDS

CPU:4コア
メモリ:8GB
ストレージ:200GB

一時的にECSのインスタンスタイプを8コア16GBに変更もしてみましたが、解決しませんでした。

ユーザー TNK の写真

現時点の設定や環境でどのようになるのか、OSの再起動を行って、
再起動後のZabbixサーバーのログを再度確認して頂くことは可能で
しょうか?

ユーザー eloso の写真

ログ取得しました。
初回のログに限りDB接続エラーのメッセージが見受けられました。。

969:20201126:141434.108 Starting Zabbix Server. Zabbix 5.0.5 (revision eaa427cf19).
969:20201126:141434.120 ****** Enabled features ******
969:20201126:141434.120 SNMP monitoring: YES
969:20201126:141434.120 IPMI monitoring: YES
969:20201126:141434.120 Web monitoring: YES
969:20201126:141434.120 VMware monitoring: YES
969:20201126:141434.120 SMTP authentication: YES
969:20201126:141434.120 ODBC: YES
969:20201126:141434.120 SSH support: YES
969:20201126:141434.120 IPv6 support: YES
969:20201126:141434.120 TLS support: YES
969:20201126:141434.120 ******************************
969:20201126:141434.120 using configuration file: /etc/zabbix/zabbix_server.conf
969:20201126:141434.147 [Z3001] connection to database 'zabbix' failed: [2005] Unknown MySQL server host 'rm-xxxxxxxxxxxx.mysql.japan.rds.aliyuncs.com' (-2)
969:20201126:141434.147 database is down: reconnecting in 10 seconds
*** buffer overflow detected ***: /usr/sbin/zabbix_server terminated
1301:20201126:141454.254 Starting Zabbix Server. Zabbix 5.0.5 (revision eaa427cf19).
1301:20201126:141454.254 ****** Enabled features ******
1301:20201126:141454.254 SNMP monitoring: YES
1301:20201126:141454.254 IPMI monitoring: YES
1301:20201126:141454.254 Web monitoring: YES
1301:20201126:141454.254 VMware monitoring: YES
1301:20201126:141454.254 SMTP authentication: YES
1301:20201126:141454.254 ODBC: YES
1301:20201126:141454.254 SSH support: YES
1301:20201126:141454.254 IPv6 support: YES
1301:20201126:141454.254 TLS support: YES
1301:20201126:141454.254 ******************************
1301:20201126:141454.254 using configuration file: /etc/zabbix/zabbix_server.conf
*** buffer overflow detected ***: /usr/sbin/zabbix_server terminated

RDSは起動しているし、コマンドで接続するのは問題ないのに、なぜzabbix_serverのプロセスからだと失敗してしまうのでしょうか、、
以下のコマンドでは正常に接続できます。。

# mysql -u zabbix -h rm-xxxxxxxxx.mysql.japan.rds.aliyuncs.com -P 3306 -p

ユーザー eloso の写真

zabbix_server.conf内のDBHostでRDSのエンドポイントをダブルクォーテーションで括ったところ、Serviceが正常に起動しました。
返信下さった方、ありがとうございました。
停止起動のおかげで原因特定できました。
本件クローズいたします。

ユーザー eloso の写真

本件再開させていただきます。
systemctl statusでは正常起動となり、Web画面もつながったので正常だと思っていたのですが、
ログを確認すると以下のエラーが出ており、Web画面でも「Zabbixサーバが動作していません。(画面のリフレッシュを行ってステータスを再確認してください。)」というメッセージが出ます。
解決策はありますでしょうか。

48942:20201127:104733.431 [Z3001] connection to database 'zabbix' failed: [2005] Unknown MySQL server host '"rm-xxxxxx.mysql.japan.rds.aliyuncs.com"' (-2)
48942:20201127:104733.432 database is down: reconnecting in 10 seconds
48942:20201127:104743.432 [Z3001] connection to database 'zabbix' failed: [2005] Unknown MySQL server host '"rm-xxxxxx.mysql.japan.rds.aliyuncs.com"' (-2)
48942:20201127:104743.432 database is down: reconnecting in 10 seconds

ユーザー TNK の写真

やはり、DBHostの設定に問題があるのではないでしょうか?
ダブルコーテーションで括っても、それがそのままログに出力され
ているようですし、効果は無かったのだと思われます。

mysqlのコマンドの引数で指定したホスト名と再度比較して、誤っ
た指定になっていないかを確認してください。

追記:
あと、mysqlコマンドでの実行の際、データベース名も指定してみ
てください。

ユーザー eloso の写真

返信ありがとうございます!
やはりその箇所ですよね。
再度比較しましたが、コマンド実行時のホスト名とconfに指定したホスト名は同一で誤りはありませんでした。

mysqlコマンドでの実行時にDB名も指定してみましたが、正常に接続できました。

またDBホスト名はnslookupで名前解決できており、
RDS側のSG及びホワイトリストでECSが存在するサブネットのCIDRを登録しております。

ユーザー TNK の写真

問題は、エラーメッセージのUnknown MySQL server hostの後ろに
ある最後の「(-2)」というエラーコードです。

ネットワーク的に接続できないのならば接続できないというエラー
メッセージになりますし、アカウントとパスワードの問題であれば
またそれ用のメッセージに変わります。

-2がでる場合は、そもそもそのホストを見つけることができていな
い状態だったと思います。

mysqlコマンドでアクセスできたり、nslookupで名前解決もできる
のであれば、DBHostに設定された文字列内や前後に誤った文字列が
入っている可能性がまだあるかもしれません。
例えば、見た目はASCII文字でもUnicodeの文字列が含まれていたり
しないかと考えています。

一度、DBHostの行を削除して、改めて設定しなおして、Zabbixサー
バーのサービスを再起動してみてはいかがでしょうか?
他にもRDSに接続するために変更した箇所があったら、それらも再
度見直してみてください。

ユーザー eloso の写真

ありがとうございます。
なるほど、そもそもホストが見つけられていないのですね。

DBHostの行を削除して改めて設定し直し、余計な文字列や文字コードも問題ないこと確認した上でサービス再起動しましたが、
結果は変わりませんでした。

また他の変更箇所はありませんでした。

なかなかに難題ですね、、

ユーザー eloso の写真

続報ですが、OS以外同条件でOSのみダウングレード(CentOS7を使用)したところ
正常にzabbix-serverプロセス起動しました。
zabbix_server.logログにもエラーはなく、Web画面もエラー表示無しでした。
原因は不明ですが、一旦CentOS7を使用することにします。