[監視][container][自分用メモ] zabbix-docker 4.4.8のdocker-compose.ymlが色々と変わっていた。

2020/04/30 14:55zabbixdocker,docker-compose,zabbix

相変わらずZabbixをDocker container上に構築し運用しているのですが、一昨日だか昨日だかZabbix 4.4.8がリリースされているのを確認しました。

早速docker-compose pullしてdocker-compose upしたところ、うまいことフロントエンドのnginx等が正常に起動しないことに気が付きました。

該当のGithub

そのエラーメッセージ

********************                                                                                           
**** MySQL server is not available. Waiting 5 seconds...
** Adding Zabbix virtual host (HTTP) 
**** Impossible to enable SSL support for Nginx. Certificates are missed. 
** Preparing Zabbix frontend configuration file
** Updating '/etc/php7/conf.d/99-zabbix.ini' parameter "max_execution_time": '600'... updated
** Updating '/etc/php7/conf.d/99-zabbix.ini' parameter "memory_limit": '128M'... updated
** Updating '/etc/php7/conf.d/99-zabbix.ini' parameter "post_max_size": '16M'... updated 
** Updating '/etc/php7/conf.d/99-zabbix.ini' parameter "upload_max_filesize": '2M'... updated 
** Updating '/etc/php7/conf.d/99-zabbix.ini' parameter "max_input_time": '300'... updated   
** Updating '/etc/php7/conf.d/99-zabbix.ini' parameter "date.timezone": 'Asia/Tokyo'... added 
** Cleaning the system  
######################################################## 
** Executing supervisord 
2020-04-27 13:32:05,826 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.                                  
2020-04-27 13:32:05,826 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2020-04-27 13:32:05,826 INFO Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
2020-04-27 13:32:05,826 INFO Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
2020-04-27 13:32:05,845 INFO RPC interface 'supervisor' initialized
2020-04-27 13:32:05,845 INFO RPC interface 'supervisor' initialized
2020-04-27 13:32:05,845 INFO supervisord started with pid 1
2020-04-27 13:32:05,845 INFO supervisord started with pid 1
2020-04-27 13:32:06,851 INFO spawned: 'nginx' with pid 39
2020-04-27 13:32:06,851 INFO spawned: 'nginx' with pid 39
2020-04-27 13:32:06,855 INFO spawned: 'php-fpm7' with pid 40
2020-04-27 13:32:06,855 INFO spawned: 'php-fpm7' with pid 40
[27-Apr-2020 13:32:06] ALERT: [pool www] user has not been defined
[27-Apr-2020 13:32:06] ALERT: [pool www] user has not been defined
[27-Apr-2020 13:32:06] ERROR: failed to post process the configuration
[27-Apr-2020 13:32:06] ERROR: failed to post process the configuration

なかでsupervisordが使われているのですが、4.4.8へアップデートした際に"設定ファイルにユーザーが指定されていないため、権限は削除されませんでした。"というメッセージが出力されるようになり、正常にプロセスがspawnされなくなりました。

最新のdocker-compose.ymlを確認してみると

慌てて公式のdocker-compose.ymlを確認したところ結構差分が発生していることが分かりました。というか今までrootユーザで実行していたのがそのあたり変わったこと、container内のポートが変更になったこと、それに伴ってhealthcheckも変わったことが分かりました。

https://github.com/zabbix/zabbix-docker/commit/e13ea15d9f456b9e8503daf1fc52080cb6cf90f7

それに合わせて修正

** Cleaning the system
######################################################## 
** Executing supervisord 
2020-04-27 13:41:21,362 INFO Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
2020-04-27 13:41:21,362 INFO Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing 
2020-04-27 13:41:21,370 INFO RPC interface 'supervisor' initialized
2020-04-27 13:41:21,370 INFO RPC interface 'supervisor' initialized 
2020-04-27 13:41:21,372 INFO supervisord started with pid 1 
2020-04-27 13:41:21,372 INFO supervisord started with pid 1 
2020-04-27 13:41:22,379 INFO spawned: 'nginx' with pid 39
2020-04-27 13:41:22,379 INFO spawned: 'nginx' with pid 39
2020-04-27 13:41:22,386 INFO spawned: 'php-fpm7' with pid 40
2020-04-27 13:41:22,386 INFO spawned: 'php-fpm7' with pid 40
[27-Apr-2020 13:41:22] NOTICE: fpm is running, pid 40 
[27-Apr-2020 13:41:22] NOTICE: ready to handle connections
2020-04-27 13:41:24,494 INFO success: nginx entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)            
2020-04-27 13:41:24,494 INFO success: nginx entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)            
2020-04-27 13:41:24,494 INFO success: php-fpm7 entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)         
2020-04-27 13:41:24,494 INFO success: php-fpm7 entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)         
127.0.0.1 - - [27/Apr/2020:13:41:26 +0000] "GET / HTTP/1.1" 200 3424 "-" "curl/7.67.0" "-" 

公式のdocker-compose.ymlに合わせて修正したところ正常に起動するようになりました。まさかマイナーバージョンアップでdocker containerイメージの設定がそこそこの設定変更があるとは思っていませんでした。とはいえ、バージョンアップが発生する際はちゃんと確認するようにしようと改めて実感しました。

この記事を書いた人
kometchtech

kometchtech
うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。
Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

2020/04/30 14:55zabbixdocker,docker-compose,zabbix