diff options
Diffstat (limited to 'sysutils/logstash7/files/logstash.in')
-rw-r--r-- | sysutils/logstash7/files/logstash.in | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/sysutils/logstash7/files/logstash.in b/sysutils/logstash7/files/logstash.in new file mode 100644 index 000000000000..a68ee4062264 --- /dev/null +++ b/sysutils/logstash7/files/logstash.in @@ -0,0 +1,121 @@ +#!/bin/sh + +# Configuration settings for logstash in /etc/rc.conf: +# +# PROVIDE: logstash +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown +# +# logstash_enable (bool): +# Default value: "NO" +# Flag that determines whether Logstash is enabled. +# +# logstash_home (string): +# Default value: "/usr/local/logstash" +# Logstash installation directory. +# +# logstash_config (string): +# Default value: /usr/local/etc/${name} +# Logstash configuration path. +# +# logstash_log (bool): +# Set to "NO" by default. +# Set it to "YES" to enable logstash logging to file +# Default output to /var/log/logstash.log +# +# logstash_log_file (string): +# Default value: "${logdir}/${name}.log" +# Log file path. +# +# logstash_java_home (string): +# Default value: "/usr/local/openjdk8" +# Root directory of the desired Java SDK. +# The JAVA_HOME environment variable is set with the contents of this +# variable. +# +# logstash_java_opts (string): +# Default value: "" +# Options to pass to the Java Virtual Machine. +# The JAVA_OPTS environment variable is set with the contents of this +# variable. +# +# logstash_opts (string): +# Default value: "" +# Additional command line flags for logstash, eg. "-r" +# + +. /etc/rc.subr + +name=logstash +rcvar=logstash_enable + +load_rc_config ${name} + +logdir="/var/log" + +: ${logstash_enable="NO"} +: ${logstash_user="logstash"} +: ${logstash_group="logstash"} +: ${logstash_home="%%LOGSTASH_HOME%%"} +: ${logstash_config="%%ETCDIR%%"} +: ${logstash_log="YES"} +: ${logstash_log_dir="${logdir}/${name}"} +: ${logstash_java_home="%%JAVA_HOME%%"} +: ${logstash_java_opts=""} +: ${logstash_opts=""} + +pidfile=/var/run/${name}/${name}.pid + +extra_commands="configtest reload" +start_precmd="logstash_precmd" +configtest_cmd=configtest + +logstash_cmd="${logstash_home}/bin/logstash" +procname="${logstash_java_home}/bin/java" + +logstash_chdir=${logstash_home} +logstash_log_options="" + +if checkyesno logstash_log; then + logstash_log_options=" -l ${logstash_log_dir}" +fi + +logstash_args="--path.settings ${logstash_config} ${logstash_log_options} ${logstash_opts}" + +JAVA_OPTS="${logstash_java_opts}" +JAVA_HOME="${logstash_java_home}" +export JAVA_OPTS +export JAVA_HOME + +command="/usr/sbin/daemon" +command_args="-f -p ${pidfile} ${logstash_cmd} ${logstash_args}" +required_files="${logstash_home} ${logstash_java_home} ${logstash_cmd} ${logstash_config}" + +# Include /usr/local/bin in path because Logstash startup scripts +# assume bash is in path. +PATH=/usr/local/bin:$PATH + +logstash_precmd() +{ + /usr/bin/install -d -o ${logstash_user} -g ${logstash_group} -m 755 ${pidfile%/*} + /usr/bin/install -d -o ${logstash_user} -g ${logstash_group} -m 755 ${logstash_log_dir} + /usr/bin/install -d -o ${logstash_user} -g ${logstash_group} -m 755 /var/db/logstash + /usr/bin/install -d -o ${logstash_user} -g ${logstash_group} -m 755 /var/run/logstash + + if [ -d ${logstash_home}/data/queue ]; then + chown ${logstash_user}:${logstash_group} ${logstash_home}/data/queue + fi +} + +configtest() +{ + echo "${name} configtest:" + echo "WARNING: this does not check validity of Grok patterns!" + echo "WARNING: this does not check validity of Grok patterns!" + echo "WARNING: this does not check validity of Grok patterns!" + ${logstash_cmd} --path.settings ${logstash_config} --config.test_and_exit +} + + +run_rc_command "$1" |