diff --git a/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh index 94441f555..039ec9f34 100755 --- a/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh @@ -142,8 +142,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -177,6 +180,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix_proxy"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -207,8 +216,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -226,7 +239,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -243,7 +256,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -266,7 +279,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -356,10 +369,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "EnableRemoteCommands" "${ZBX_ENABLEREMOTECOMMANDS}" update_config_var $ZBX_CONFIG "LogRemoteCommands" "${ZBX_LOGREMOTECOMMANDS}" - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -381,8 +400,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "AllowUnsupportedDBVersions" "${ZBX_ALLOWUNSUPPORTEDDBVERSIONS}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "ProxyLocalBuffer" "${ZBX_PROXYLOCALBUFFER}" update_config_var $ZBX_CONFIG "ProxyOfflineBuffer" "${ZBX_PROXYOFFLINEBUFFER}" update_config_var $ZBX_CONFIG "ProxyConfigFrequency" "${ZBX_PROXYCONFIGFREQUENCY}" diff --git a/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh index 71b012107..0026d1018 100755 --- a/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh @@ -142,8 +142,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -177,6 +180,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix_proxy"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -204,8 +213,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -223,7 +236,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -240,7 +253,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -263,7 +276,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -353,10 +366,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "EnableRemoteCommands" "${ZBX_ENABLEREMOTECOMMANDS}" update_config_var $ZBX_CONFIG "LogRemoteCommands" "${ZBX_LOGREMOTECOMMANDS}" - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -378,8 +397,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "AllowUnsupportedDBVersions" "${ZBX_ALLOWUNSUPPORTEDDBVERSIONS}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "ProxyLocalBuffer" "${ZBX_PROXYLOCALBUFFER}" update_config_var $ZBX_CONFIG "ProxyOfflineBuffer" "${ZBX_PROXYOFFLINEBUFFER}" update_config_var $ZBX_CONFIG "ProxyConfigFrequency" "${ZBX_PROXYCONFIGFREQUENCY}" diff --git a/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh index 71b012107..0026d1018 100755 --- a/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh @@ -142,8 +142,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -177,6 +180,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix_proxy"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -204,8 +213,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -223,7 +236,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -240,7 +253,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -263,7 +276,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -353,10 +366,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "EnableRemoteCommands" "${ZBX_ENABLEREMOTECOMMANDS}" update_config_var $ZBX_CONFIG "LogRemoteCommands" "${ZBX_LOGREMOTECOMMANDS}" - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -378,8 +397,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "AllowUnsupportedDBVersions" "${ZBX_ALLOWUNSUPPORTEDDBVERSIONS}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "ProxyLocalBuffer" "${ZBX_PROXYLOCALBUFFER}" update_config_var $ZBX_CONFIG "ProxyOfflineBuffer" "${ZBX_PROXYOFFLINEBUFFER}" update_config_var $ZBX_CONFIG "ProxyConfigFrequency" "${ZBX_PROXYCONFIGFREQUENCY}" diff --git a/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh index 71b012107..0026d1018 100755 --- a/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh @@ -142,8 +142,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -177,6 +180,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix_proxy"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -204,8 +213,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -223,7 +236,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -240,7 +253,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -263,7 +276,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -353,10 +366,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "EnableRemoteCommands" "${ZBX_ENABLEREMOTECOMMANDS}" update_config_var $ZBX_CONFIG "LogRemoteCommands" "${ZBX_LOGREMOTECOMMANDS}" - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -378,8 +397,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "AllowUnsupportedDBVersions" "${ZBX_ALLOWUNSUPPORTEDDBVERSIONS}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "ProxyLocalBuffer" "${ZBX_PROXYLOCALBUFFER}" update_config_var $ZBX_CONFIG "ProxyOfflineBuffer" "${ZBX_PROXYOFFLINEBUFFER}" update_config_var $ZBX_CONFIG "ProxyConfigFrequency" "${ZBX_PROXYCONFIGFREQUENCY}" diff --git a/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh index 16d3823b3..8b094865c 100755 --- a/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh @@ -142,8 +142,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -177,6 +180,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix_proxy"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -204,8 +213,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -223,7 +236,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -240,7 +253,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -263,7 +276,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -353,10 +366,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "EnableRemoteCommands" "${ZBX_ENABLEREMOTECOMMANDS}" update_config_var $ZBX_CONFIG "LogRemoteCommands" "${ZBX_LOGREMOTECOMMANDS}" - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -378,8 +397,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "AllowUnsupportedDBVersions" "${ZBX_ALLOWUNSUPPORTEDDBVERSIONS}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "ProxyLocalBuffer" "${ZBX_PROXYLOCALBUFFER}" update_config_var $ZBX_CONFIG "ProxyOfflineBuffer" "${ZBX_PROXYOFFLINEBUFFER}" update_config_var $ZBX_CONFIG "ProxyConfigFrequency" "${ZBX_PROXYCONFIGFREQUENCY}" diff --git a/Dockerfiles/server-mysql/alpine/docker-entrypoint.sh b/Dockerfiles/server-mysql/alpine/docker-entrypoint.sh index 6b354006e..35e6613c3 100755 --- a/Dockerfiles/server-mysql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/server-mysql/alpine/docker-entrypoint.sh @@ -139,8 +139,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -174,6 +177,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -204,8 +213,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -223,7 +236,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -240,7 +253,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -263,7 +276,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -354,10 +367,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "DBTLSCipher13" "${ZBX_DBTLSCIPHER13}" fi - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -387,8 +406,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HistoryStorageTypes" "${ZBX_HISTORYSTORAGETYPES}" update_config_var $ZBX_CONFIG "HistoryStorageDateIndex" "${ZBX_HISTORYSTORAGEDATEINDEX}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "StatsAllowedIP" "${ZBX_STATSALLOWEDIP}" update_config_var $ZBX_CONFIG "StartPollers" "${ZBX_STARTPOLLERS}" diff --git a/Dockerfiles/server-mysql/centos/docker-entrypoint.sh b/Dockerfiles/server-mysql/centos/docker-entrypoint.sh index 3fab56202..1073e4316 100755 --- a/Dockerfiles/server-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/server-mysql/centos/docker-entrypoint.sh @@ -139,8 +139,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -174,6 +177,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -201,8 +210,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -220,7 +233,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -237,7 +250,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -260,7 +273,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -351,10 +364,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "DBTLSCipher13" "${ZBX_DBTLSCIPHER13}" fi - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -384,8 +403,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HistoryStorageTypes" "${ZBX_HISTORYSTORAGETYPES}" update_config_var $ZBX_CONFIG "HistoryStorageDateIndex" "${ZBX_HISTORYSTORAGEDATEINDEX}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "StatsAllowedIP" "${ZBX_STATSALLOWEDIP}" update_config_var $ZBX_CONFIG "StartPollers" "${ZBX_STARTPOLLERS}" diff --git a/Dockerfiles/server-mysql/ol/docker-entrypoint.sh b/Dockerfiles/server-mysql/ol/docker-entrypoint.sh index 3fab56202..1073e4316 100755 --- a/Dockerfiles/server-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/server-mysql/ol/docker-entrypoint.sh @@ -139,8 +139,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -174,6 +177,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -201,8 +210,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -220,7 +233,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -237,7 +250,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -260,7 +273,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -351,10 +364,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "DBTLSCipher13" "${ZBX_DBTLSCIPHER13}" fi - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -384,8 +403,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HistoryStorageTypes" "${ZBX_HISTORYSTORAGETYPES}" update_config_var $ZBX_CONFIG "HistoryStorageDateIndex" "${ZBX_HISTORYSTORAGEDATEINDEX}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "StatsAllowedIP" "${ZBX_STATSALLOWEDIP}" update_config_var $ZBX_CONFIG "StartPollers" "${ZBX_STARTPOLLERS}" diff --git a/Dockerfiles/server-mysql/rhel/docker-entrypoint.sh b/Dockerfiles/server-mysql/rhel/docker-entrypoint.sh index 3fab56202..1073e4316 100755 --- a/Dockerfiles/server-mysql/rhel/docker-entrypoint.sh +++ b/Dockerfiles/server-mysql/rhel/docker-entrypoint.sh @@ -139,8 +139,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -174,6 +177,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -201,8 +210,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -220,7 +233,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -237,7 +250,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -260,7 +273,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -351,10 +364,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "DBTLSCipher13" "${ZBX_DBTLSCIPHER13}" fi - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -384,8 +403,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HistoryStorageTypes" "${ZBX_HISTORYSTORAGETYPES}" update_config_var $ZBX_CONFIG "HistoryStorageDateIndex" "${ZBX_HISTORYSTORAGEDATEINDEX}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "StatsAllowedIP" "${ZBX_STATSALLOWEDIP}" update_config_var $ZBX_CONFIG "StartPollers" "${ZBX_STARTPOLLERS}" diff --git a/Dockerfiles/server-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/server-mysql/ubuntu/docker-entrypoint.sh index e0c2e89ab..8b9a4359a 100755 --- a/Dockerfiles/server-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/server-mysql/ubuntu/docker-entrypoint.sh @@ -139,8 +139,11 @@ update_config_multiple_var() { # Check prerequisites for MySQL database check_variables_mysql() { - : ${DB_SERVER_HOST:="mysql-server"} - : ${DB_SERVER_PORT:="3306"} + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + : ${DB_SERVER_HOST:="mysql-server"} + : ${DB_SERVER_PORT:="3306"} + fi + USE_DB_ROOT_USER=false CREATE_ZBX_DB_USER=false file_env MYSQL_USER @@ -174,6 +177,12 @@ check_variables_mysql() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -201,8 +210,12 @@ db_tls_params() { check_db_connect_mysql() { echo "********************" - echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" - echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" + echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + else + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then if [ "${USE_DB_ROOT_USER}" == "true" ]; then @@ -220,7 +233,7 @@ check_db_connect_mysql() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ROOT_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ROOT_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT @@ -237,7 +250,7 @@ mysql_query() { export MYSQL_PWD="${DB_SERVER_ROOT_PASS}" - result=$(mysql --silent --skip-column-names -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + result=$(mysql --silent --skip-column-names $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} -e "$query" $ssl_opts) unset MYSQL_PWD @@ -260,7 +273,7 @@ exec_sql_file() { $command "$sql_script" | mysql --silent --skip-column-names \ --default-character-set=${DB_CHARACTER_SET} \ - -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} \ + $mysql_connect_args \ -u ${DB_SERVER_ROOT_USER} $ssl_opts \ ${DB_SERVER_DBNAME} 1>/dev/null @@ -351,10 +364,16 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "DBTLSCipher13" "${ZBX_DBTLSCIPHER13}" fi - update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + update_config_var $ZBX_CONFIG "DBHost" "${DB_SERVER_HOST}" + update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" + else + update_config_var $ZBX_CONFIG "DBHost" + update_config_var $ZBX_CONFIG "DBPort" + fi + update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" update_config_var $ZBX_CONFIG "DBName" "${DB_SERVER_DBNAME}" update_config_var $ZBX_CONFIG "DBSchema" "${DB_SERVER_SCHEMA}" - update_config_var $ZBX_CONFIG "DBPort" "${DB_SERVER_PORT}" if [ -n "${ZBX_VAULTDBPATH}" ] && [ -n "${ZBX_VAULTURL}" ]; then update_config_var $ZBX_CONFIG "Vault" "${ZBX_VAULT}" @@ -384,8 +403,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HistoryStorageTypes" "${ZBX_HISTORYSTORAGETYPES}" update_config_var $ZBX_CONFIG "HistoryStorageDateIndex" "${ZBX_HISTORYSTORAGEDATEINDEX}" - update_config_var $ZBX_CONFIG "DBSocket" "${DB_SERVER_SOCKET}" - update_config_var $ZBX_CONFIG "StatsAllowedIP" "${ZBX_STATSALLOWEDIP}" update_config_var $ZBX_CONFIG "StartPollers" "${ZBX_STARTPOLLERS}" diff --git a/Dockerfiles/web-apache-mysql/alpine/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/alpine/docker-entrypoint.sh index 922e02667..b882666fc 100755 --- a/Dockerfiles/web-apache-mysql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/alpine/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh index 8a4ae52db..fc0011add 100755 --- a/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh index 8a4ae52db..fc0011add 100755 --- a/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh index 6bdba0be4..f65473991 100755 --- a/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh index 33b2c8eb6..44a920314 100755 --- a/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh index 6e7d48e0f..5664473e7 100755 --- a/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh index 6e7d48e0f..5664473e7 100755 --- a/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh index af7c288b8..b00c05bdc 100755 --- a/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh index b18ad927e..08b65d2f0 100755 --- a/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh @@ -67,6 +67,12 @@ check_variables() { DB_SERVER_ZBX_PASS=${MYSQL_PASSWORD:-"zabbix"} DB_SERVER_DBNAME=${MYSQL_DATABASE:-"zabbix"} + + if [ ! -n "${DB_SERVER_SOCKET}" ]; then + mysql_connect_args="-h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT}" + else + mysql_connect_args="-S ${DB_SERVER_SOCKET}" + fi } db_tls_params() { @@ -95,6 +101,9 @@ check_db_connect() { echo "********************" echo "* DB_SERVER_HOST: ${DB_SERVER_HOST}" echo "* DB_SERVER_PORT: ${DB_SERVER_PORT}" + if [ -n "${DB_SERVER_SOCKET}" ]; then + echo "* DB_SERVER_SOCKET: ${DB_SERVER_SOCKET}" + fi echo "* DB_SERVER_DBNAME: ${DB_SERVER_DBNAME}" if [ "${DEBUG_MODE,,}" == "true" ]; then echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" @@ -108,7 +117,7 @@ check_db_connect() { export MYSQL_PWD="${DB_SERVER_ZBX_PASS}" - while [ ! "$(mysqladmin ping -h ${DB_SERVER_HOST} -P ${DB_SERVER_PORT} -u ${DB_SERVER_ZBX_USER} \ + while [ ! "$(mysqladmin ping $mysql_connect_args -u ${DB_SERVER_ZBX_USER} \ --silent --connect_timeout=10 $ssl_opts)" ]; do echo "**** MySQL server is not available. Waiting $WAIT_TIMEOUT seconds..." sleep $WAIT_TIMEOUT diff --git a/docker-compose_v3_alpine_mysql_latest.yaml b/docker-compose_v3_alpine_mysql_latest.yaml index 883b60370..2ceab5e22 100644 --- a/docker-compose_v3_alpine_mysql_latest.yaml +++ b/docker-compose_v3_alpine_mysql_latest.yaml @@ -7,6 +7,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -123,6 +124,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -183,6 +185,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -237,6 +240,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -428,6 +432,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -484,6 +489,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_alpine_mysql_local.yaml b/docker-compose_v3_alpine_mysql_local.yaml index 8c36984b3..fd924f1f2 100644 --- a/docker-compose_v3_alpine_mysql_local.yaml +++ b/docker-compose_v3_alpine_mysql_local.yaml @@ -44,6 +44,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -174,6 +175,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -241,6 +243,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -302,6 +305,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -524,6 +528,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -580,6 +585,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_centos_mysql_latest.yaml b/docker-compose_v3_centos_mysql_latest.yaml index 08180b6c9..f9c5bd374 100644 --- a/docker-compose_v3_centos_mysql_latest.yaml +++ b/docker-compose_v3_centos_mysql_latest.yaml @@ -7,6 +7,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -123,6 +124,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -183,6 +185,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -237,6 +240,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -427,6 +431,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -483,6 +488,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_centos_mysql_local.yaml b/docker-compose_v3_centos_mysql_local.yaml index ac7c80d9d..753efc961 100644 --- a/docker-compose_v3_centos_mysql_local.yaml +++ b/docker-compose_v3_centos_mysql_local.yaml @@ -44,6 +44,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -174,6 +175,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -241,6 +243,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -302,6 +305,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -521,6 +525,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -577,6 +582,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_ol_mysql_latest.yaml b/docker-compose_v3_ol_mysql_latest.yaml index 96369d8ee..536a27790 100644 --- a/docker-compose_v3_ol_mysql_latest.yaml +++ b/docker-compose_v3_ol_mysql_latest.yaml @@ -7,6 +7,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -123,6 +124,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -183,6 +185,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -237,6 +240,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -427,6 +431,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -483,6 +488,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_ol_mysql_local.yaml b/docker-compose_v3_ol_mysql_local.yaml index c60c4a822..e29066419 100644 --- a/docker-compose_v3_ol_mysql_local.yaml +++ b/docker-compose_v3_ol_mysql_local.yaml @@ -44,6 +44,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -174,6 +175,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -241,6 +243,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -302,6 +305,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -521,6 +525,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -577,6 +582,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_ubuntu_mysql_latest.yaml b/docker-compose_v3_ubuntu_mysql_latest.yaml index a775f48a3..838ffdf6f 100644 --- a/docker-compose_v3_ubuntu_mysql_latest.yaml +++ b/docker-compose_v3_ubuntu_mysql_latest.yaml @@ -6,6 +6,7 @@ services: - "10051:10051" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -120,6 +121,7 @@ services: - "10071:10051" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -177,6 +179,7 @@ services: - "8443:8443" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -230,6 +233,7 @@ services: - "443:8443" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -419,6 +423,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -475,6 +480,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/docker-compose_v3_ubuntu_mysql_local.yaml b/docker-compose_v3_ubuntu_mysql_local.yaml index 2b78cd53e..e562abdbc 100644 --- a/docker-compose_v3_ubuntu_mysql_local.yaml +++ b/docker-compose_v3_ubuntu_mysql_local.yaml @@ -43,6 +43,7 @@ services: - "10051:10051" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro @@ -171,6 +172,7 @@ services: - "10071:10051" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro @@ -237,6 +239,7 @@ services: - "8443:8443" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/apache2:/etc/ssl/apache2:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -297,6 +300,7 @@ services: - "443:8443" volumes: - /etc/localtime:/etc/localtime:ro +# - dbsocket:/var/run/mysqld/ - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro deploy: @@ -515,6 +519,7 @@ services: # - --ssl-key=/run/secrets/server-key.pem volumes: - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw +# - dbsocket:/var/run/mysqld/ env_file: - ./env_vars/.env_db_mysql secrets: @@ -571,6 +576,7 @@ networks: volumes: snmptraps: +# dbsocket: secrets: MYSQL_USER: diff --git a/env_vars/.env_db_mysql b/env_vars/.env_db_mysql index b9f0d2afb..a11e1b391 100644 --- a/env_vars/.env_db_mysql +++ b/env_vars/.env_db_mysql @@ -1,5 +1,6 @@ # DB_SERVER_HOST=mysql-server # DB_SERVER_PORT=3306 +# DB_SERVER_SOCKET=/var/run/mysqld/mysqld.sock # MYSQL_USER=zabbix MYSQL_USER_FILE=/run/secrets/MYSQL_USER # MYSQL_PASSWORD=zabbix diff --git a/env_vars/.env_db_mysql_proxy b/env_vars/.env_db_mysql_proxy index 1a12b5bf8..5efa465ca 100644 --- a/env_vars/.env_db_mysql_proxy +++ b/env_vars/.env_db_mysql_proxy @@ -1,5 +1,6 @@ # DB_SERVER_HOST=mysql-server # DB_SERVER_PORT=3306 +# DB_SERVER_SOCKET=/var/run/mysqld/mysqld.sock # MYSQL_USER=zabbix MYSQL_USER=zabbix # MYSQL_USER_FILE=/run/secrets/MYSQL_USER