diff --git a/sysutils/graylog/Makefile b/sysutils/graylog/Makefile index da6582b23829..19049f6d91d8 100644 --- a/sysutils/graylog/Makefile +++ b/sysutils/graylog/Makefile @@ -1,74 +1,76 @@ PORTNAME= graylog DISTVERSION= 4.3.9 +PORTREVISION= 1 CATEGORIES= sysutils java MASTER_SITES= https://downloads.graylog.org/releases/ DISTFILES= graylog/${DISTNAME}${EXTRACT_SUFX} \ graylog-integrations/graylog-integrations-plugins-${DISTVERSION}${EXTRACT_SUFX} MAINTAINER= dch@FreeBSD.org COMMENT= Tool for centralized log collection WWW= https://www.graylog.org/ LICENSE= APACHE20 SSPLv1 LICENSE_COMB= multi LICENSE_NAME_SSPLv1= Server Side Public License LICENSE_FILE_SSPLv1= ${WRKSRC}/LICENSE LICENSE_PERMS_SSPLv1= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept USES= cpe tar:tgz USE_JAVA= yes -JAVA_VERSION= 1.8+ +JAVA_VERSION= 8+ JAVA_EXTRACT= yes JAVA_RUN= yes NO_BUILD= yes NO_ARCH= yes USE_RC_SUBR= graylog SUB_FILES= log4j2.xml pkg-message GRAYLOGUSER?= graylog GRAYLOGGROUP?= ${GRAYLOGUSER} USERS= ${GRAYLOGUSER} GROUPS= ${GRAYLOGGROUP} GRAYLOG_DATA_DIR= /var/db/graylog GRAYLOG_LOGS_DIR= /var/log/graylog SUB_LIST= GRAYLOG_DATA_DIR=${GRAYLOG_DATA_DIR} \ GRAYLOG_LOGS_DIR=${GRAYLOG_LOGS_DIR} \ GRAYLOGGROUP=${GRAYLOGGROUP} \ - GRAYLOGUSER=${GRAYLOGUSER} + GRAYLOGUSER=${GRAYLOGUSER} \ + JAVA_HOME=${JAVA_HOME} PLIST_SUB= DISTVERSION=${DISTVERSION} \ GRAYLOG_DATA_DIR=${GRAYLOG_DATA_DIR} \ GRAYLOG_LOGS_DIR=${GRAYLOG_LOGS_DIR} \ GRAYLOGGROUP=${GRAYLOGGROUP} \ GRAYLOGUSER=${GRAYLOGUSER} \ PORTNAME=${PORTNAME} post-extract: ${REINPLACE_CMD} -E \ -e 's,^bin_dir .+,bin_dir = ${LOCALBASE}/share/graylog/bin,' \ -e 's,^data_dir .+,data_dir = /var/db/graylog,' \ -e 's,^message_journal_dir .+,message_journal_dir = ${GRAYLOG_DATA_DIR}/journal,' \ -e 's,^node_id_file .+,node_id_file = ${ETCDIR}/server/node-id,' \ -e 's,^plugin_dir .+,plugin_dir = ${LOCALBASE}/share/graylog/plugin,' \ ${WRKSRC}/graylog.conf.example do-install: @${MKDIR} ${STAGEDIR}${DATADIR}/plugin @${MKDIR} ${STAGEDIR}${ETCDIR}/server @${MKDIR} ${STAGEDIR}${GRAYLOG_DATA_DIR}/journal @${MKDIR} ${STAGEDIR}${GRAYLOG_LOGS_DIR} ${INSTALL_DATA} ${WRKSRC}/graylog.jar ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${WRKSRC}/graylog.conf.example \ ${STAGEDIR}${ETCDIR}/graylog.conf.sample ${INSTALL_DATA} ${WRKDIR}/log4j2.xml \ ${STAGEDIR}${ETCDIR}/log4j2.xml.sample cd ${WRKDIR}/graylog-integrations-plugins-${DISTVERSION}/plugin && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/plugin/ cd ${WRKSRC}/plugin && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/plugin/ .include diff --git a/sysutils/graylog/files/graylog.in b/sysutils/graylog/files/graylog.in index 3530a2a57120..24d9b77c225a 100644 --- a/sysutils/graylog/files/graylog.in +++ b/sysutils/graylog/files/graylog.in @@ -1,116 +1,123 @@ #!/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 +# +# graylog_java_home (path): +# Default value: %%JAVA_HOME%% +# Set it to the root of the JDK to use. . /etc/rc.subr name=graylog rcvar=graylog_enable load_rc_config $name : ${graylog_enable:="NO"} : ${graylog_user:="%%GRAYLOGUSER%%"} : ${graylog_group:="%%GRAYLOGGROUP%%"} : ${graylog_config:="%%ETCDIR%%/graylog.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%%/log4j2.xml"} +: ${graylog_java_home:="%%JAVA_HOME%%"} java_options=" \ -Djava.awt.headless=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}" +export JAVA_HOME=${graylog_java_home} + 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"