zabbix/templates/entrypoints/java-gateway.sh

59 lines
1.6 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
readonly ENTRYPOINT_LIBS="/usr/lib/docker-entrypoint"
source "${ENTRYPOINT_LIBS}/debug.sh"
source "${ENTRYPOINT_LIBS}/logging.sh"
: "${JAVA:=/usr/bin/java}"
readonly ZBX_GATEWAY_CONFIG="${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml"
readonly ZABBIX_JAVA_DIR="/usr/sbin/zabbix_java"
readonly JAVA_CLASSPATH="lib/*:bin/*:ext_lib/*"
run_service() {
info "** Preparing Zabbix Java Gateway"
: "${ZBX_TIMEOUT:=3}"
[[ -f "$ZBX_GATEWAY_CONFIG" ]] || error "Missing configuration file: $ZBX_GATEWAY_CONFIG"
cd "$ZABBIX_JAVA_DIR"
local -a java_opts=(
-server
"-Dlogback.configurationFile=${ZBX_GATEWAY_CONFIG}"
)
if [[ -n "${ZBX_JAVA_OPTS:-}" ]]; then
read -r -a extra_java_opts <<< "${ZBX_JAVA_OPTS}"
java_opts+=("${extra_java_opts[@]}")
fi
local -a zabbix_opts=(
"-Dsun.rmi.transport.tcp.responseTimeout=${ZBX_TIMEOUT}000"
"-Dzabbix.listenPort=${ZBX_LISTEN_PORT:-10052}"
"-Dzabbix.timeout=${ZBX_TIMEOUT}"
)
[[ -n "${ZBX_LISTEN_IP:-}" ]] && zabbix_opts+=("-Dzabbix.listenIP=${ZBX_LISTEN_IP}")
[[ -n "${ZBX_START_POLLERS:-}" ]] && zabbix_opts+=("-Dzabbix.startPollers=${ZBX_START_POLLERS}")
[[ -n "${ZBX_PROPERTIES_FILE:-}" ]] && zabbix_opts+=("-Dzabbix.propertiesFile=${ZBX_PROPERTIES_FILE}")
local -a cmd=(
"$JAVA"
"${java_opts[@]}"
-classpath "$JAVA_CLASSPATH"
"${zabbix_opts[@]}"
com.zabbix.gateway.JavaGateway
)
exec "${cmd[@]}"
}
if [[ $# -eq 0 || "${1:-}" == -* ]]; then
run_service
fi
exec "$@"