From 5ea1f85385b59e402183768a246528f2f18882b2 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Thu, 18 Feb 2021 13:22:41 -0500 Subject: [PATCH] Review Java Gateway startup script --- .../rhel/conf/usr/sbin/zabbix_java_gateway | 24 +++-- proxy-mysql/rhel/docker-entrypoint.sh | 1 + proxy-sqlite3/rhel/docker-entrypoint.sh | 1 + server-mysql/rhel/docker-entrypoint.sh | 1 + web-nginx-mysql/rhel/docker-entrypoint.sh | 94 ++----------------- 5 files changed, 26 insertions(+), 95 deletions(-) diff --git a/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway b/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway index e77d407f6..00bab5546 100755 --- a/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway +++ b/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway @@ -1,26 +1,34 @@ + JAVA=${JAVA:-"/usr/bin/java"} -DAEMON=${DAEMON:-"/usr/sbin/zabbix_java"} JAVA_OPTIONS="-server $JAVA_OPTIONS" JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" -cd $DAEMON +cd /usr/sbin/zabbix_java -CLASSPATH="$DAEMON/lib" +CLASSPATH="lib" for jar in `find lib bin ext_lib -name "*.jar"`; do - if [ $jar != *junit* ]; then - CLASSPATH="$CLASSPATH:$DAEMON/$jar" - fi + CLASSPATH="$CLASSPATH:$jar" done -ZABBIX_OPTIONS="" +if [ -n "$ZBX_LISTEN_IP" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenIP=$ZBX_LISTEN_IP" +fi +if [ -n "$ZBX_LISTEN_PORT" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenPort=$ZBX_LISTEN_PORT" +fi if [ -n "$ZBX_START_POLLERS" ]; then ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.startPollers=$ZBX_START_POLLERS" fi if [ -n "$ZBX_TIMEOUT" ]; then - ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.timeout=$ZBX_TIMEOUT -Dsun.rmi.transport.tcp.responseTimeout=${ZBX_TIMEOUT}000" + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.timeout=$ZBX_TIMEOUT" +fi +if [ -n "$ZBX_PROPERTIES_FILE" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.propertiesFile=$ZBX_PROPERTIES_FILE" fi +tcp_timeout=${ZBX_TIMEOUT:=3}000 +ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dsun.rmi.transport.tcp.responseTimeout=$tcp_timeout" COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway" diff --git a/proxy-mysql/rhel/docker-entrypoint.sh b/proxy-mysql/rhel/docker-entrypoint.sh index b8b9fede5..49e1cb0c1 100755 --- a/proxy-mysql/rhel/docker-entrypoint.sh +++ b/proxy-mysql/rhel/docker-entrypoint.sh @@ -316,6 +316,7 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HostnameItem" "${ZBX_HOSTNAMEITEM}" fi + update_config_var $ZBX_CONFIG "ListenIP" "${ZBX_LISTENIP}" update_config_var $ZBX_CONFIG "ListenPort" "${ZBX_LISTENPORT}" update_config_var $ZBX_CONFIG "SourceIP" "${ZBX_SOURCEIP}" diff --git a/proxy-sqlite3/rhel/docker-entrypoint.sh b/proxy-sqlite3/rhel/docker-entrypoint.sh index 5a068a347..bce53c036 100755 --- a/proxy-sqlite3/rhel/docker-entrypoint.sh +++ b/proxy-sqlite3/rhel/docker-entrypoint.sh @@ -124,6 +124,7 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "HostnameItem" "${ZBX_HOSTNAMEITEM}" fi + update_config_var $ZBX_CONFIG "ListenIP" "${ZBX_LISTENIP}" update_config_var $ZBX_CONFIG "ListenPort" "${ZBX_LISTENPORT}" update_config_var $ZBX_CONFIG "SourceIP" "${ZBX_SOURCEIP}" diff --git a/server-mysql/rhel/docker-entrypoint.sh b/server-mysql/rhel/docker-entrypoint.sh index fc1a18e05..b00ebcbf5 100755 --- a/server-mysql/rhel/docker-entrypoint.sh +++ b/server-mysql/rhel/docker-entrypoint.sh @@ -299,6 +299,7 @@ update_zbx_config() { ZBX_CONFIG=$ZABBIX_ETC_DIR/zabbix_server.conf + update_config_var $ZBX_CONFIG "ListenIP" "${ZBX_LISTENIP}" update_config_var $ZBX_CONFIG "ListenPort" "${ZBX_LISTENPORT}" update_config_var $ZBX_CONFIG "SourceIP" "${ZBX_SOURCEIP}" diff --git a/web-nginx-mysql/rhel/docker-entrypoint.sh b/web-nginx-mysql/rhel/docker-entrypoint.sh index b6e020df5..964f41825 100755 --- a/web-nginx-mysql/rhel/docker-entrypoint.sh +++ b/web-nginx-mysql/rhel/docker-entrypoint.sh @@ -11,22 +11,20 @@ fi # Default Zabbix installation name # Used only by Zabbix web-interface -ZBX_SERVER_NAME=${ZBX_SERVER_NAME:-"Zabbix docker"} +: ${ZBX_SERVER_NAME:="Zabbix docker"} # Default Zabbix server host -ZBX_SERVER_HOST=${ZBX_SERVER_HOST:-"zabbix-server"} +: ${ZBX_SERVER_HOST:="zabbix-server"} # Default Zabbix server port number -ZBX_SERVER_PORT=${ZBX_SERVER_PORT:-"10051"} +: ${ZBX_SERVER_PORT:="10051"} # Default timezone for web interface -PHP_TZ=${PHP_TZ:-"Europe/Riga"} +: ${PHP_TZ:="Europe/Riga"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" # Configuration files directory ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory -ZBX_FRONTEND_PATH="/usr/share/zabbix" +ZABBIX_WWW_ROOT="/usr/share/zabbix" # usage: file_env VAR [DEFAULT] # as example: file_env 'MYSQL_PASSWORD' 'zabbix' @@ -59,83 +57,6 @@ file_env() { unset "$fileVar" } -escape_spec_char() { - local var_value=$1 - - var_value="${var_value//\\/\\\\}" - var_value="${var_value//[$'\n']/}" - var_value="${var_value//\//\\/}" - var_value="${var_value//./\\.}" - var_value="${var_value//\*/\\*}" - var_value="${var_value//^/\\^}" - var_value="${var_value//\$/\\\$}" - var_value="${var_value//\&/\\\&}" - var_value="${var_value//\[/\\[}" - var_value="${var_value//\]/\\]}" - - echo "$var_value" -} - -update_config_var() { - local config_path=$1 - local var_name=$2 - local var_value=$3 - local is_multiple=$4 - - if [ ! -f "$config_path" ]; then - echo "**** Configuration file '$config_path' does not exist" - return - fi - - echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'... " - - # Remove configuration parameter definition in case of unset parameter value - if [ -z "$var_value" ]; then - sed -i -e "/^$var_name=/d" "$config_path" - echo "removed" - return - fi - - # Remove value from configuration parameter in case of double quoted parameter value - if [ "$var_value" == '""' ]; then - sed -i -e "/^$var_name=/s/=.*/=/" "$config_path" - echo "undefined" - return - fi - - # Escaping characters in parameter value and name - var_value=$(escape_spec_char "$var_value") - var_name=$(escape_spec_char "$var_name") - - if [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then - sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path" - echo "updated" - elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then - sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path" - echo "added first occurrence" - else - sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path" - echo "added" - fi - -} - -update_config_multiple_var() { - local config_path=$1 - local var_name=$2 - local var_value=$3 - - var_value="${var_value%\"}" - var_value="${var_value#\"}" - - local IFS=, - local OPT_LIST=($var_value) - - for value in "${OPT_LIST[@]}"; do - update_config_var $config_path $var_name $value true - done -} - # Check prerequisites for MySQL database check_variables() { : ${DB_SERVER_HOST:="mysql-server"} @@ -206,7 +127,6 @@ check_db_connect() { fi echo "* DB_SERVER_ZBX_USER: ${DB_SERVER_ZBX_USER}" echo "* DB_SERVER_ZBX_PASS: ${DB_SERVER_ZBX_PASS}" - echo "********************" fi echo "********************" @@ -296,8 +216,8 @@ prepare_zbx_web_config() { export ZBX_SSO_SETTINGS=${ZBX_SSO_SETTINGS:-""} if [ -n "${ZBX_SESSION_NAME}" ]; then - cp "$ZBX_FRONTEND_PATH/include/defines.inc.php" "/tmp/defines.inc.php_tmp" - sed "/ZBX_SESSION_NAME/s/'[^']*'/'${ZBX_SESSION_NAME}'/2" "/tmp/defines.inc.php_tmp" > "$ZBX_FRONTEND_PATH/include/defines.inc.php" + cp "$ZABBIX_WWW_ROOT/include/defines.inc.php" "/tmp/defines.inc.php_tmp" + sed "/ZBX_SESSION_NAME/s/'[^']*'/'${ZBX_SESSION_NAME}'/2" "/tmp/defines.inc.php_tmp" > "$ZABBIX_WWW_ROOT/include/defines.inc.php" rm -f "/tmp/defines.inc.php_tmp" fi