diff options
author | Tomáš Mózes <hydrapolic@gmail.com> | 2016-12-18 13:19:50 +0000 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2016-12-19 01:18:47 +1100 |
commit | ab586eb83c097cf29b13f5cb927eb2443c92ecb1 (patch) | |
tree | 0c06762fcb8b9fc658537e40758e11bd47b8e19a /app-admin/logstash-bin | |
parent | scons-utils.eclass: Switch to get_nproc from multiprocessing.eclass (diff) | |
download | gentoo-ab586eb83c097cf29b13f5cb927eb2443c92ecb1.tar.gz gentoo-ab586eb83c097cf29b13f5cb927eb2443c92ecb1.tar.bz2 gentoo-ab586eb83c097cf29b13f5cb927eb2443c92ecb1.zip |
app-admin/logstash-bin: fix initscript
Diffstat (limited to 'app-admin/logstash-bin')
-rw-r--r-- | app-admin/logstash-bin/files/logstash.confd2 | 37 | ||||
-rw-r--r-- | app-admin/logstash-bin/files/logstash.initd4 | 73 | ||||
-rw-r--r-- | app-admin/logstash-bin/logstash-bin-5.0.1-r1.ebuild | 64 |
3 files changed, 174 insertions, 0 deletions
diff --git a/app-admin/logstash-bin/files/logstash.confd2 b/app-admin/logstash-bin/files/logstash.confd2 new file mode 100644 index 000000000000..dd861d0633f3 --- /dev/null +++ b/app-admin/logstash-bin/files/logstash.confd2 @@ -0,0 +1,37 @@ +############################### +# Default settings for logstash +############################### + +# Set a home directory +#LS_HOME=/var/lib/logstash + +# Arguments to pass to logstash agent +#LS_OPTS="" + +# Arguments to pass to java +#LS_HEAP_SIZE="500m" +#LS_JAVA_OPTS="-Djava.io.tmpdir=$HOME" + +# pidfiles location +#LS_PIDFILE=/run/logstash/logstash.pid + +# user id to be invoked as +#LS_USER=logstash +#LS_GROUP=logstash + +# logstash logging +#LS_LOG_DIR=/var/log/logstash +#LS_USE_GC_LOGGING="true" + +# logstash configuration directory +#LS_CONF_DIR=/etc/logstash/conf.d + +# Open file limit +#LS_OPEN_FILES=16384 + +# Nice level +#LS_NICE=19 + +# If this is set to 1, then when `stop` is called, if the process has +# not exited within a reasonable time, SIGKILL will be sent next. +KILL_ON_STOP_TIMEOUT=0 diff --git a/app-admin/logstash-bin/files/logstash.initd4 b/app-admin/logstash-bin/files/logstash.initd4 new file mode 100644 index 000000000000..b9e9055ea779 --- /dev/null +++ b/app-admin/logstash-bin/files/logstash.initd4 @@ -0,0 +1,73 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +LS_USER=${LS_USER:-logstash} +LS_GROUP=${LS_GROUP:-$LS_USER} +LS_LOG_DIR=${LS_LOG_DIR:-/var/log/logstash} +LS_CONF_DIR=${LS_CONF_DIR:-/etc/logstash/conf.d} +LS_HOME=${LS_HOME:-/var/lib/logstash} +LS_HEAP_SIZE=${LS_HEAP_SIZE:-500m} +LS_NICE=${LS_NICE:-19} +LS_JAVA_OPTS=${LS_JAVA_OPTS:-"-Djava.io.tmpdir=${LS_HOME}"} +LS_USE_GC_LOGGING=${LS_USE_GC_LOGGING:-false} +LS_OPEN_FILES=${LS_OPEN_FILES:-16384} +KILL_ON_STOP_TIMEOUT=${KILL_ON_STOP_TIMEOUT:-0} + +LS_INSTALL_DIR="/opt/logstash" + +command="${LS_INSTALL_DIR}/bin/logstash" +command_args="--path.config ${LS_CONF_DIR} --path.logs ${LS_LOG_DIR} ${LS_OPTS}" +command_background="true" +pidfile=${LS_PIDFILE:-"/run/logstash/logstash.pid"} + +start_stop_daemon_args="--user ${LS_USER}:${LS_GROUP} \ + --chdir ${LS_HOME} + --nicelevel ${LS_NICE} + --env LS_HEAP_SIZE=${LS_HEAP_SIZE} + --env LS_JAVA_OPTS=${LS_JAVA_OPTS} + --env LS_USE_GC_LOGGING=${LS_USE_GC_LOGGING}" + +extra_commands="checkconfig" +extra_started_commands="reload" + +checkconfig() { + if [ ! -f ${LS_CONF_DIR}/* ]; then + eerror "Please put your configuration in ${LS_CONF_DIR}" + exit 1 + fi + + ebegin "Checking your configuration" + ${command} ${command_args} --config.test_and_exit + eend $? "Configuration error. Please fix your configuration files." +} + +reload() { + checkconfig || return 1 + ebegin "Reloading configuration" + start-stop-daemon --signal HUP --pidfile "${pidfile}" + eend $? +} + +start_pre() { + checkconfig || return 1 + + rc_ulimit="-n ${LS_OPEN_FILES}" + + checkpath -d -o "${LS_USER}":"${LS_GROUP}" -m750 "${LS_INSTALL_DIR}/data" + checkpath -d -o "${LS_USER}":"${LS_GROUP}" -m750 "$(dirname "${pidfile}")" + checkpath -d -o "${LS_USER}":"${LS_GROUP}" -m750 "${LS_LOG_DIR}" + checkpath -f -o "${LS_USER}":"${LS_GROUP}" -m640 "${LS_LOG_DIR}/logstash-plain.log" +} + +stop() { + ebegin "Stopping logstash" + if [ "${KILL_ON_STOP_TIMEOUT}" == "1" ]; then + start-stop-daemon --stop \ + --pidfile=${pidfile} \ + --retry=TERM/5/KILL/5 + else + start-stop-daemon --stop \ + --pidfile=${pidfile} + fi +} diff --git a/app-admin/logstash-bin/logstash-bin-5.0.1-r1.ebuild b/app-admin/logstash-bin/logstash-bin-5.0.1-r1.ebuild new file mode 100644 index 000000000000..6bd8d2c8d96b --- /dev/null +++ b/app-admin/logstash-bin/logstash-bin-5.0.1-r1.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit user + +MY_PN="${PN/-bin}" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="Tool for managing events and logs" +HOMEPAGE="https://www.elastic.co/products/logstash" +SRC_URI="https://artifacts.elastic.co/downloads/${MY_PN}/${MY_P}.zip" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +RESTRICT="strip" +QA_PREBUILT="opt/logstash/vendor/jruby/lib/jni/*/libjffi*.so" + +DEPEND="" +RDEPEND="virtual/jre:1.8" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + enewgroup ${MY_PN} + enewuser ${MY_PN} -1 -1 /var/lib/${MY_PN} ${MY_PN} +} + +src_install() { + keepdir /etc/"${MY_PN}"/{conf.d,patterns,plugins} + keepdir "/var/log/${MY_PN}" + + insinto "/usr/share/${MY_PN}" + doins "${FILESDIR}/agent.conf.sample" + + insinto "/opt/${MY_PN}" + doins -r . + fperms 0755 "/opt/${MY_PN}/bin/${MY_PN}" "/opt/${MY_PN}/vendor/jruby/bin/jruby" "/opt/${MY_PN}/bin/logstash-plugin" + + insinto /etc/logrotate.d + newins "${FILESDIR}/${MY_PN}.logrotate" "${MY_PN}" + + newconfd "${FILESDIR}/${MY_PN}.confd2" "${MY_PN}" + newinitd "${FILESDIR}/${MY_PN}.initd4" "${MY_PN}" +} + +pkg_postinst() { + ewarn "The default user changed from root to ${MY_PN}. If you wish to run as root (for" + ewarn "example to read local logs), be sure to change LS_USER and LS_GROUP in" + ewarn "/etc/conf.d/${MY_PN}" + einfo + einfo "Getting started with logstash:" + einfo " https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html" + einfo "" + einfo "Packages that might be interesting:" + einfo " app-misc/elasticsearch" + einfo " dev-python/elasticsearch-curator" + einfo " www-apps/kibana-bin" +} |