117 lines
3 KiB
Bash
117 lines
3 KiB
Bash
#!/bin/sh
|
|
#
|
|
# PROVIDE: graylog
|
|
# REQUIRE: NETWORKING SERVERS
|
|
# BEFORE: DAEMON
|
|
# KEYWORD: shutdown
|
|
#
|
|
|
|
# graylog_enable (bool):
|
|
# Default value: "NO"
|
|
# Flag that determines whether graylog is enabled
|
|
#
|
|
# graylog_user (username):
|
|
# Default value: "graylog"
|
|
# Name of the graylog user account
|
|
#
|
|
# graylog_group (group):
|
|
# Default value: "graylog"
|
|
# Name of the graylog group
|
|
#
|
|
# graylog_config (string)
|
|
# Default value %%ETCDIR%%/server/server.conf
|
|
# Path to the graylog configuration file
|
|
#
|
|
# graylog_min_mem (string):
|
|
# Default value: 256m
|
|
# Minumum JVM heap size
|
|
#
|
|
# graylog_max_mem (string):
|
|
# Default value: 1g
|
|
# Maximum JVM heap size
|
|
#
|
|
# graylog_dir (string):
|
|
# Default value: %%DATADIR%%
|
|
# Path to the graylog installation.
|
|
#
|
|
# graylog_data_dir (string):
|
|
# Default vaule: %%GRAYLOG_DATA_DIR%%
|
|
# Storage location for the graylog journal
|
|
#
|
|
# graylog_run_dir (string):
|
|
# Default value: /var/graylog
|
|
# Path to the graylog run folder.
|
|
#
|
|
# graylog_log_config (string):
|
|
# Default value: %%ETCDIR%%/server/log4j2.xml
|
|
# Path to the Graylog Server logfile
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=graylog
|
|
rcvar=graylog_enable
|
|
load_rc_config $name
|
|
|
|
: ${graylog_enable:="NO"}
|
|
: ${graylog_user:="%%GRAYLOGUSER%%"}
|
|
: ${graylog_group:="%%GRAYLOGGROUP%%"}
|
|
: ${graylog_config:="%%ETCDIR%%/server/server.conf"}
|
|
: ${graylog_min_mem:="256m"}
|
|
: ${graylog_max_mem:="1g"}
|
|
: ${graylog_dir:="%%DATADIR%%"}
|
|
: ${graylog_data_dir:="%%GRAYLOG_DATA_DIR%%"}
|
|
: ${graylog_logs_dir:="%%GRAYLOG_LOGS_DIR%%"}
|
|
: ${graylog_run_dir:="/var/run/graylog"}
|
|
: ${graylog_log_config:="%%ETCDIR%%/server/log4j2.xml"}
|
|
|
|
java_options=" \
|
|
-Djava.awt.headless=true \
|
|
-Djava.net.preferIPv4Stack=true \
|
|
-Dapp=${name} \
|
|
-Dlog4j.configurationFile=${graylog_log_config} \
|
|
-Xms${graylog_min_mem} \
|
|
-Xmx${graylog_max_mem} \
|
|
-XX:-OmitStackTraceInFastThrow \
|
|
-XX:+AggressiveOpts \
|
|
-XX:+CMSClassUnloadingEnabled \
|
|
-XX:+CMSConcurrentMTEnabled \
|
|
-XX:+CMSParallelRemarkEnabled \
|
|
-XX:+DisableExplicitGC \
|
|
-XX:+HeapDumpOnOutOfMemoryError \
|
|
-XX:+ResizeTLAB \
|
|
-XX:+UseCMSInitiatingOccupancyOnly \
|
|
-XX:+UseCompressedOops \
|
|
-XX:+UseConcMarkSweepGC \
|
|
-XX:+UseFastAccessorMethods \
|
|
-XX:+UseParNewGC \
|
|
-XX:CMSInitiatingOccupancyFraction=75 \
|
|
-XX:NewRatio=1 \
|
|
"
|
|
|
|
app_pidfile="${graylog_run_dir}/${name}.pid"
|
|
pidfile="${graylog_run_dir}/daemon.pid"
|
|
command="/usr/sbin/daemon"
|
|
|
|
command_args=" \
|
|
-c \
|
|
-t ${name} \
|
|
-r \
|
|
-p ${app_pidfile} \
|
|
-P ${pidfile} \
|
|
%%LOCALBASE%%/bin/java \
|
|
${java_options} \
|
|
-jar ${graylog_dir}/graylog.jar server \
|
|
--no-pid-file \
|
|
--configfile ${graylog_config}"
|
|
|
|
required_files="%%LOCALBASE%%/bin/java ${graylog_config}"
|
|
|
|
graylog_precmd() {
|
|
install -d -o ${graylog_user} -g ${graylog_group} -m 750 "${graylog_data_dir}"
|
|
install -d -o ${graylog_user} -g ${graylog_group} -m 750 "${graylog_logs_dir}"
|
|
install -d -o ${graylog_user} -g ${graylog_group} -m 750 "${graylog_run_dir}"
|
|
}
|
|
|
|
start_precmd="graylog_precmd"
|
|
|
|
run_rc_command "$1"
|