diff options
Diffstat (limited to 'app-misc/elasticsearch/files')
-rw-r--r-- | app-misc/elasticsearch/files/elasticsearch.conf.4 | 62 | ||||
-rw-r--r-- | app-misc/elasticsearch/files/elasticsearch.init.8 | 70 |
2 files changed, 132 insertions, 0 deletions
diff --git a/app-misc/elasticsearch/files/elasticsearch.conf.4 b/app-misc/elasticsearch/files/elasticsearch.conf.4 new file mode 100644 index 000000000000..a76bc5b7be38 --- /dev/null +++ b/app-misc/elasticsearch/files/elasticsearch.conf.4 @@ -0,0 +1,62 @@ +################################ +# Elasticsearch +################################ + +# Elasticsearch home directory +#ES_HOME=/usr/share/elasticsearch + +# Elasticsearch Java path +#ES_JAVA_HOME= + +# Elasticsearch configuration directory +#CONF_DIR=/etc/elasticsearch + +# Elasticsearch data directory +#DATA_DIR=/var/lib/elasticsearch + +# Elasticsearch logs directory +#LOG_DIR=/var/log/elasticsearch + +# Additional Java OPTS +#ES_JAVA_OPTS= + +################################ +# Elasticsearch service +################################ + +# When executing the init script, this user will be used to run the elasticsearch service. +# The default value is 'elasticsearch' and is declared in the init.d file. +# Note that this setting is only used by the init script. If changed, make sure that +# the configured user can read and write into the data, work, plugins and log directories. +# For systemd service, the user is usually configured in file /usr/lib/systemd/system/elasticsearch.service +#ES_USER=elasticsearch +#ES_GROUP=elasticsearch + +# The number of seconds to wait before checking if Elasticsearch started successfully as a daemon process +#ES_STARTUP_SLEEP_TIME=5 + +################################ +# System properties +################################ + +# Specifies the maximum file descriptor number that can be opened by this process +# When using Systemd, this setting is ignored and the LimitNOFILE defined in +# /usr/lib/systemd/system/elasticsearch.service takes precedence +MAX_OPEN_FILES=65536 + +# The maximum number of bytes of memory that may be locked into RAM +# Set to "unlimited" if you use the 'bootstrap.memory_lock: true' option +# in elasticsearch.yml. +# When using Systemd, the LimitMEMLOCK property must be set +# in /usr/lib/systemd/system/elasticsearch.service +MAX_LOCKED_MEMORY=unlimited + +# Maximum number of VMA (Virtual Memory Areas) a process can own +# When using Systemd, this setting is ignored and the 'vm.max_map_count' +# property is set at boot time in /usr/lib/sysctl.d/elasticsearch.conf +#MAX_MAP_COUNT=262144 + +# https://www.elastic.co/guide/en/elasticsearch/reference/master/max-number-of-threads.html +MAX_THREADS=4096 + +rc_ulimit="-l $MAX_LOCKED_MEMORY -n $MAX_OPEN_FILES -u $MAX_THREADS" diff --git a/app-misc/elasticsearch/files/elasticsearch.init.8 b/app-misc/elasticsearch/files/elasticsearch.init.8 new file mode 100644 index 000000000000..e45ece0829b1 --- /dev/null +++ b/app-misc/elasticsearch/files/elasticsearch.init.8 @@ -0,0 +1,70 @@ +#!/sbin/openrc-run + +name="Elasticsearch" +description="Elasticsearch Server" + +ES_INSTANCE=${RC_SVCNAME#*.} + +if [ -n "${ES_INSTANCE}" ] && [ ${RC_SVCNAME} != "elasticsearch" ]; then + ES_BASE_PATH="/var/lib/elasticsearch/${ES_INSTANCE}" + CONF_DIR="/etc/elasticsearch/${ES_INSTANCE}" + DEFAULT_LOG_DIR="/var/log/elasticsearch/${ES_INSTANCE}" +else + ES_BASE_PATH="/var/lib/elasticsearch/_default" + CONF_DIR="/etc/elasticsearch" + DEFAULT_LOG_DIR="/var/log/elasticsearch/_default" +fi + +ES_HOME=${ES_HOME:="/usr/share/elasticsearch"} +ES_USER=${ES_USER:="elasticsearch"} +ES_GROUP=${ES_GROUP:="elasticsearch"} +ES_STARTUP_SLEEP_TIME=${ES_STARTUP_TIME:=5} +ES_JAVA_HOME=${ES_JAVA_HOME:=$(java-config -g JAVA_HOME)} +MAX_OPEN_FILES=${MAX_OPEN_FILES:=65536} +MAX_MAP_COUNT=${MAX_MAP_COUNT:=262144} + +DATA_DIR=${DATA_DIR:="${ES_BASE_PATH}/data"} +LOG_DIR=${LOG_DIR:="${DEFAULT_LOG_DIR}"} + +if [ -f "${CONF_DIR}/elasticsearch.in.sh" ]; then + ES_INCLUDE="${CONF_DIR}/elasticsearch.in.sh" +fi + +export ES_INCLUDE +export ES_JAVA_HOME +export ES_JAVA_OPTS +export ES_JVM_OPTIONS +export ES_STARTUP_SLEEP_TIME +export ES_PATH_CONF="${CONF_DIR}" + +pidfile="/run/elasticsearch/${RC_SVCNAME}.pid" + +command="/usr/share/elasticsearch/bin/elasticsearch" +command_args="-Epath.logs=${LOG_DIR} -Epath.data=${DATA_DIR}" +command_args_background="--daemonize --pidfile=${pidfile}" +command_user="${ES_USER}:${ES_GROUP}" +required_files="${CONF_DIR}/elasticsearch.yml" +retry="TERM/30/KILL/30" + +depend() { + use net +} + +start_pre() { + if [ -n "${MAX_MAP_COUNT}" -a -f /proc/sys/vm/max_map_count ]; then + sysctl -q -w vm.max_map_count=${MAX_MAP_COUNT} + fi + + checkpath -d -o "${ES_USER}:${ES_GROUP}" -m750 "/var/lib/elasticsearch" + checkpath -d -o "${ES_USER}:${ES_GROUP}" -m750 "/var/log/elasticsearch" + checkpath -d -o "${ES_USER}:${ES_GROUP}" -m750 "/run/elasticsearch" + checkpath -d -o "${ES_USER}:${ES_GROUP}" -m750 "${ES_BASE_PATH}" + checkpath -d -o "${ES_USER}:${ES_GROUP}" -m750 "${LOG_DIR}" + + # fails to start without keystore + if [ ! -f "${CONF_DIR}/elasticsearch.keystore" ]; then + "${ES_HOME}/bin/elasticsearch-keystore" create + else + "${ES_HOME}/bin/elasticsearch-keystore" upgrade + fi +} |