From ari@delish.ish.com.au  Wed May 23 16:48:21 2012
Return-Path: <ari@delish.ish.com.au>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7BD06106566B
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 23 May 2012 16:48:21 +0000 (UTC)
	(envelope-from ari@delish.ish.com.au)
Received: from delish.ish.com.au (delish.ish.com.au [203.29.62.201])
	by mx1.freebsd.org (Postfix) with ESMTP id 04B968FC0A
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 23 May 2012 16:48:20 +0000 (UTC)
Received: from delish.ish.com.au (localhost [127.0.0.1])
	by delish.ish.com.au (8.14.5/8.14.5) with ESMTP id q4NGXeIb099250
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 24 May 2012 02:33:40 +1000 (EST)
	(envelope-from ari@delish.ish.com.au)
Received: (from root@localhost)
	by delish.ish.com.au (8.14.5/8.14.5/Submit) id q4NGXeDs099249;
	Thu, 24 May 2012 02:33:40 +1000 (EST)
	(envelope-from ari)
Message-Id: <201205231633.q4NGXeDs099249@delish.ish.com.au>
Date: Thu, 24 May 2012 02:33:40 +1000 (EST)
From: Daniel Solsona <daniel@ish.com.au>
Reply-To: <daniel@ish.com.au>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: New port: sysutils/logstash (log monitoring and collecting tool)
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         168266
>Category:       ports
>Synopsis:       New port: sysutils/logstash (log monitoring and collecting tool)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    madpilot
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed May 23 16:50:02 UTC 2012
>Closed-Date:    Wed Jul 17 23:20:33 UTC 2013
>Last-Modified:  Wed Jul 17 23:30:00 UTC 2013
>Originator:     Charlie &
>Release:        FreeBSD 9.0-RELEASE amd64
>Organization:
ish
>Environment:
>Description:
log monitoring and collecting tool
>How-To-Repeat:
>Fix:
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#       logstash
#       logstash/Makefile
#       logstash/distinfo
#       logstash/files
#       logstash/files/logstash.conf.example
#       logstash/files/logstash.in
#       logstash/files/elasticsearch.yml.example
#       logstash/pkg-descr
#
echo c - logstash
mkdir -p logstash > /dev/null 2>&1
echo x - logstash/Makefile
sed 's/^X//' >logstash/Makefile << '58caac783f1d72028817b3f79ec306ec'
X#
X# $FreeBSD$
X
XPORTNAME=      logstash
XPORTVERSION=   1.1.0
XCATEGORIES=    sysutils
XMASTER_SITES=  http://semicomplete.com/files/logstash/
XDISTFILES=     ${DISTNAME}-monolithic.jar
XEXTRACT_ONLY=
X
XMAINTAINER=    daniel@ish.com.au
XCOMMENT=       Tool for managing events and logs
X
XUSE_JAVA=      yes
XJAVA_VERSION=  1.5+
X
XNO_BUILD=      yes
X
XUSE_RC_SUBR=   logstash
X
XLOGSTASH_HOME?=        ${PREFIX}/logstash
XLOGSTASH_JAR?= ${DISTNAME}-monolithic.jar
XLOGSTASH_DATA_DIR?=    /var/db/logstash
X
XSUB_LIST=      LOGSTASH_DATA_DIR=${LOGSTASH_DATA_DIR} JAVA_HOME=${JAVA_HOME}
XSUB_LIST+=     LOGSTASH_HOME=${LOGSTASH_HOME} LOGSTASH_JAR=${LOGSTASH_JAR}
X
X#.if !target(pre-install)
X#pre-install:
X#.endif
X
X.include <bsd.port.pre.mk>
Xpre-install:
X       if [ ! -d /var/run/${PORTNAME} ] ; then \
X               ${MKDIR} /var/run/${PORTNAME} ;\
X       fi
X       if [ ! -d ${PREFIX}/etc/${PORTNAME} ] ; then \
X               ${MKDIR} ${PREFIX}/etc/${PORTNAME} ;\
X       fi
X       if [ ! -d "${LOGSTASH_HOME}" ] ; then \
X               ${MKDIR} "${LOGSTASH_HOME}";\
X       fi
X       if [ ! -d "${LOGSTASH_DATA_DIR}" ] ; then \
X               ${MKDIR} "${LOGSTASH_DATA_DIR}";\
X       fi
X
Xdo-install:
X       ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR} ${LOGSTASH_HOME}/
X       ${INSTALL_SCRIPT} ${FILESDIR}/logstash.conf.example ${PREFIX}/etc/${PORTNAME}/
X       ${INSTALL_SCRIPT} ${FILESDIR}/elasticsearch.yml.example ${PREFIX}/etc/${PORTNAME}/
X
X.include <bsd.port.post.mk>
58caac783f1d72028817b3f79ec306ec
echo x - logstash/distinfo
sed 's/^X//' >logstash/distinfo << '8a7498b9608da6df76161c7712d9c4de'
XSHA256 (logstash-1.1.0-monolithic.jar) = 6c9f491865b5eed569e029f6ad9f3343f346cfa04d04314e7aadea7b9578490f
XSIZE (logstash-1.1.0-monolithic.jar) = 40923996
8a7498b9608da6df76161c7712d9c4de
echo c - logstash/files
mkdir -p logstash/files > /dev/null 2>&1
echo x - logstash/files/logstash.conf.example
sed 's/^X//' >logstash/files/logstash.conf.example << '4c550ba74a641aa7b4e05a6f0e5312ba'
Xinput {
X  file {
X    type => "system logs"
X
X  #  # Wildcards work, here :)
X  #  path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
X    path => [ "/var/log/messages" ]
X  #}
X
X  #file {
X  #  type => "Hudson-access"
X  #  path => "/var/log/www/hudson.ish.com.au-access_log"
X  #}
X
X  #file {
X  #          type => "Syslog"
X  #  path => "/var/log/messages"
X  #}
X}
X
Xoutput {
X  # Emit events to stdout for easy debugging of what is going through
X  # logstash.
X  #stdout { }
X
X  # This will use elasticsearch to store your logs.
X  # The 'embedded' option will cause logstash to run the elasticsearch
X  # server in the same process, so you don't have to worry about
X  # how to download, configure, or run elasticsearch!
X  elasticsearch { 
X     embedded => true
X     #embedded_http_port => 9200
X     #cluster => elasticsearch
X     #host => host
X     #port => port
X      
X  }
X}
4c550ba74a641aa7b4e05a6f0e5312ba
echo x - logstash/files/logstash.in
sed 's/^X//' >logstash/files/logstash.in << '0f1ca7b587c13466a7f3a6fad7064657'
X#!/bin/sh
X
X# $FreeBSD:
X# PROVIDE: logstash
X# REQUIRE: LOGIN
X# KEYWORD: shutdown
X
X#
X# Configuration settings for logstash in /etc/rc.conf:
X#
X# logstash_enable (bool):
X#   Set to "NO" by default.
X#   Set it to "YES" to enable logstash
X#
X# logstash_mode :
X#   Set to "standalone" by default.
X#   Valid options:
X#     "standalone": agent, web & elasticsearch
X#     "web": Starts logstash as a web ui
X#     "agent": Justs works as a log shipper 
X#
X# logstash_logging (bool):
X#   Set to "NO" by default.
X#   Set it to "YES" to enable logstash logging to file
X#   Default output to /var/log/logstash.log
X#
X
X. /etc/rc.subr
X
Xname="logstash"
Xrcvar=logstash_enable
X
Xpiddir="/var/run/${name}"
Xpidfile="${piddir}/${name}.pid"
X
Xif [ -d $piddir ]; then
X       mkdir -p $piddir
Xfi
X
Xlogdir="/var/log"
Xcommand="/usr/sbin/daemon"
X
Xload_rc_config "${name}"
X
X: ${logstash_enable="NO"}
X: ${logstash_home="%%LOGSTASH_HOME%%"}
X: ${logstash_config="%%PREFIX%%/etc/${name}/${name}.conf"}
X: ${logstash_jar="%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}
X: ${logstash_java_home="%%JAVA_HOME%%"}
X: ${logstash_log="NO"}
X: ${logstash_mode="standalone"}
X: ${logstash_port="9292"}
X: ${logstash_elastic_backend=""}
X: ${logstash_log_file="${logdir}/${name}.log"}
X: ${logstash_elastic_datadir="%%LOGSTASH_DATA_DIR%%"}
X
Xjava_cmd="${logstash_java_home}/bin/java"
Xprocname="${java_cmd}"
X
Xlogstash_chdir=${logstash_home}
Xlogstash_log_options=""
Xlogstash_elastic_options=""
X
Xif [ ${logstash_log} == "YES" ]; then
X       logstash_log_options=" --log ${logstash_log_file}" 
Xfi
X
Xif [ ${logstash_mode} == "standalone" ]; then
X       logstash_args="agent -f ${logstash_config} -- web --port ${logstash_port} --backend elasticsearch:///?local 
${logstash_log_options}"
X       logstash_elastic_options=" -Des.path.data=${logstash_elastic_datadir}"
Xelif [ ${logstash_mode} == "agent" ];then
X       logstash_args="agent -f ${logstash_config} ${logstash_log_options}"
Xelif [ ${logstash_mode} == "web" ];then
X       logstash_args="web --port ${logstash_port} --backend elasticsearch://${logstash_elastic_backend}/ ${logstash_log_options}"
Xfi
X
Xcommand_args="-f -p ${pidfile} ${java_cmd} ${logstash_elastic_options} -jar ${logstash_jar} ${logstash_args}"
Xrequired_files="${java_cmd} ${logstash_config}"
X
Xrun_rc_command "$1"
0f1ca7b587c13466a7f3a6fad7064657
echo x - logstash/files/elasticsearch.yml.example
sed 's/^X//' >logstash/files/elasticsearch.yml.example << '84e5fab083858da6b10cddebb8aeef03'
X##################### ElasticSearch Configuration Example #####################
X
X# This file contains an overview of various configuration settings,
X# targeted at operations staff. Application developers should
X# consult the guide at <http://elasticsearch.org/guide>.
X#
X# The installation procedure is covered at
X# <http://elasticsearch.org/guide/reference/setup/installation.html>.
X#
X# ElasticSearch comes with reasonable defaults for most settings,
X# so you can try it out without bothering with configuration.
X#
X# Most of the time, these defaults are just fine for running a production
X# cluster. If you're fine-tuning your cluster, or wondering about the
X# effect of certain configuration option, please _do ask_ on the
X# mailing list or IRC channel [http://elasticsearch.org/community].
X
X# Any element in the configuration can be replaced with environment variables
X# by placing them in ${...} notation. For example:
X#
X# node.rack: ${RACK_ENV_VAR}
X
X# See <http://elasticsearch.org/guide/reference/setup/configuration.html>
X# for information on supported formats and syntax for the configuration file.
X
X
X################################### Cluster ###################################
X
X# Cluster name identifies your cluster for auto-discovery. If you're running
X# multiple clusters on the same network, make sure you're using unique names.
X#
X# cluster.name: elasticsearch
X
X
X#################################### Node #####################################
X
X# Node names are generated dynamically on startup, so you're relieved
X# from configuring them manually. You can tie this node to a specific name:
X#
X# node.name: "Franz Kafka"
X
X# Every node can be configured to allow or deny being eligible as the master,
X# and to allow or deny to store the data.
X#
X# Allow this node to be eligible as a master node (enabled by default):
X#
X# node.master: true
X#
X# Allow this node to store data (enabled by default):
X#
X# node.data: true
X
X# You can exploit these settings to design advanced cluster topologies.
X#
X# 1. You want this node to never become a master node, only to hold data.
X#    This will be the "workhorse" of your cluster.
X#

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->madpilot 
Responsible-Changed-By: madpilot 
Responsible-Changed-When: Tue May 29 21:54:55 UTC 2012 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Tue, 29 May 2012 23:56:25 +0200

 Thanks a lot for your submission.
 
 Unluckily the shar archive got truncated, it misses the pkg-descr. Could 
 you please send it again?
 
 Thanks.
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>

From: Aristedes Maniatis <ari@ish.com.au>
To: bug-followup@FreeBSD.org, daniel@ish.com.au, madpilot@FreeBSD.org
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Fri, 01 Jun 2012 19:40:29 +1000

 This is a multi-part message in MIME format.
 --------------050106040302030903050004
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Please find attached the full shar.
 
 Thanks
 Ari
 
 -- 
 -------------------------->
 Aristedes Maniatis
 ish
 http://www.ish.com.au
 Level 1, 30 Wilson Street Newtown 2042 Australia
 phone +61 2 9550 5001   fax +61 2 9550 4001
 GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
 
 
 --------------050106040302030903050004
 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
  name="logstash.shar"
 Content-Transfer-Encoding: 8bit
 Content-Disposition: attachment;
  filename="logstash.shar"
 
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
 # have default permissions.
 #
 # This archive contains:
 #
 #	logstash
 #	logstash/Makefile
 #	logstash/distinfo
 #	logstash/files
 #	logstash/files/logstash.conf.example
 #	logstash/files/logstash.in
 #	logstash/files/elasticsearch.yml.example
 #	logstash/pkg-descr
 #
 echo c - logstash
 mkdir -p logstash > /dev/null 2>&1
 echo x - logstash/Makefile
 sed 's/^X//' >logstash/Makefile << '58caac783f1d72028817b3f79ec306ec'
 X#
 X# $FreeBSD$
 X
 XPORTNAME=	logstash
 XPORTVERSION=	1.1.0
 XCATEGORIES=	sysutils
 XMASTER_SITES=	http://semicomplete.com/files/logstash/
 XDISTFILES=	${DISTNAME}-monolithic.jar
 XEXTRACT_ONLY=
 X
 XMAINTAINER=	daniel@ish.com.au
 XCOMMENT=	Tool for managing events and logs
 X
 XUSE_JAVA=	yes
 XJAVA_VERSION=	1.5+
 X
 XNO_BUILD=	yes
 X
 XUSE_RC_SUBR=	logstash
 X
 XLOGSTASH_HOME?=	${PREFIX}/logstash
 XLOGSTASH_JAR?=	${DISTNAME}-monolithic.jar
 XLOGSTASH_DATA_DIR?=	/var/db/logstash
 X
 XSUB_LIST=	LOGSTASH_DATA_DIR=${LOGSTASH_DATA_DIR} JAVA_HOME=${JAVA_HOME}
 XSUB_LIST+=	LOGSTASH_HOME=${LOGSTASH_HOME} LOGSTASH_JAR=${LOGSTASH_JAR}
 X
 X#.if !target(pre-install)
 X#pre-install:
 X#.endif
 X
 X.include <bsd.port.pre.mk>
 Xpre-install:
 X	if [ ! -d /var/run/${PORTNAME} ] ; then \
 X		${MKDIR} /var/run/${PORTNAME} ;\
 X	fi
 X	if [ ! -d ${PREFIX}/etc/${PORTNAME} ] ; then \
 X		${MKDIR} ${PREFIX}/etc/${PORTNAME} ;\
 X	fi
 X	if [ ! -d "${LOGSTASH_HOME}" ] ; then \
 X		${MKDIR} "${LOGSTASH_HOME}";\
 X	fi
 X	if [ ! -d "${LOGSTASH_DATA_DIR}" ] ; then \
 X		${MKDIR} "${LOGSTASH_DATA_DIR}";\
 X	fi
 X
 Xdo-install:
 X	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR} ${LOGSTASH_HOME}/
 X	${INSTALL_SCRIPT} ${FILESDIR}/logstash.conf.example ${PREFIX}/etc/${PORTNAME}/
 X	${INSTALL_SCRIPT} ${FILESDIR}/elasticsearch.yml.example ${PREFIX}/etc/${PORTNAME}/
 X
 X.include <bsd.port.post.mk>
 58caac783f1d72028817b3f79ec306ec
 echo x - logstash/distinfo
 sed 's/^X//' >logstash/distinfo << '8a7498b9608da6df76161c7712d9c4de'
 XSHA256 (logstash-1.1.0-monolithic.jar) = 6c9f491865b5eed569e029f6ad9f3343f346cfa04d04314e7aadea7b9578490f
 XSIZE (logstash-1.1.0-monolithic.jar) = 40923996
 8a7498b9608da6df76161c7712d9c4de
 echo c - logstash/files
 mkdir -p logstash/files > /dev/null 2>&1
 echo x - logstash/files/logstash.conf.example
 sed 's/^X//' >logstash/files/logstash.conf.example << '4c550ba74a641aa7b4e05a6f0e5312ba'
 Xinput {
 X  file {
 X    type => "system logs"
 X
 X  #  # Wildcards work, here :)
 X  #  path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
 X    path => [ "/var/log/messages" ]
 X  #}
 X
 X  #file {
 X  #  type => "Hudson-access"
 X  #  path => "/var/log/www/hudson.ish.com.au-access_log"
 X  #}
 X
 X  #file {
 X  #          type => "Syslog"
 X  #  path => "/var/log/messages"
 X  #}
 X}
 X
 Xoutput {
 X  # Emit events to stdout for easy debugging of what is going through
 X  # logstash.
 X  #stdout { }
 X
 X  # This will use elasticsearch to store your logs.
 X  # The 'embedded' option will cause logstash to run the elasticsearch
 X  # server in the same process, so you don't have to worry about
 X  # how to download, configure, or run elasticsearch!
 X  elasticsearch { 
 X     embedded => true
 X     #embedded_http_port => 9200
 X     #cluster => elasticsearch
 X     #host => host
 X     #port => port
 X      
 X  }
 X}
 4c550ba74a641aa7b4e05a6f0e5312ba
 echo x - logstash/files/logstash.in
 sed 's/^X//' >logstash/files/logstash.in << '0f1ca7b587c13466a7f3a6fad7064657'
 X#!/bin/sh
 X
 X# $FreeBSD:
 X# PROVIDE: logstash
 X# REQUIRE: LOGIN
 X# KEYWORD: shutdown
 X
 X#
 X# Configuration settings for logstash in /etc/rc.conf:
 X#
 X# logstash_enable (bool):
 X#   Set to "NO" by default.
 X#   Set it to "YES" to enable logstash
 X#
 X# logstash_mode :
 X#   Set to "standalone" by default.
 X#   Valid options:
 X#     "standalone": agent, web & elasticsearch
 X#     "web": Starts logstash as a web ui
 X#     "agent": Justs works as a log shipper 
 X#
 X# logstash_logging (bool):
 X#   Set to "NO" by default.
 X#   Set it to "YES" to enable logstash logging to file
 X#   Default output to /var/log/logstash.log
 X#
 X
 X. /etc/rc.subr
 X
 Xname="logstash"
 Xrcvar=logstash_enable
 X
 Xpiddir="/var/run/${name}"
 Xpidfile="${piddir}/${name}.pid"
 X
 Xif [ -d $piddir ]; then
 X	mkdir -p $piddir
 Xfi
 X
 Xlogdir="/var/log"
 Xcommand="/usr/sbin/daemon"
 X
 Xload_rc_config "${name}"
 X
 X: ${logstash_enable="NO"}
 X: ${logstash_home="%%LOGSTASH_HOME%%"}
 X: ${logstash_config="%%PREFIX%%/etc/${name}/${name}.conf"}
 X: ${logstash_jar="%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}
 X: ${logstash_java_home="%%JAVA_HOME%%"}
 X: ${logstash_log="NO"}
 X: ${logstash_mode="standalone"}
 X: ${logstash_port="9292"}
 X: ${logstash_elastic_backend=""}
 X: ${logstash_log_file="${logdir}/${name}.log"}
 X: ${logstash_elastic_datadir="%%LOGSTASH_DATA_DIR%%"}
 X
 Xjava_cmd="${logstash_java_home}/bin/java"
 Xprocname="${java_cmd}"
 X
 Xlogstash_chdir=${logstash_home}
 Xlogstash_log_options=""
 Xlogstash_elastic_options=""
 X
 Xif [ ${logstash_log} == "YES" ]; then
 X	logstash_log_options=" --log ${logstash_log_file}" 
 Xfi
 X
 Xif [ ${logstash_mode} == "standalone" ]; then
 X	logstash_args="agent -f ${logstash_config} -- web --port ${logstash_port} --backend elasticsearch:///?local ${logstash_log_options}"
 X	logstash_elastic_options=" -Des.path.data=${logstash_elastic_datadir}"
 Xelif [ ${logstash_mode} == "agent" ];then
 X	logstash_args="agent -f ${logstash_config} ${logstash_log_options}"
 Xelif [ ${logstash_mode} == "web" ];then
 X	logstash_args="web --port ${logstash_port} --backend elasticsearch://${logstash_elastic_backend}/ ${logstash_log_options}"
 Xfi
 X
 Xcommand_args="-f -p ${pidfile} ${java_cmd} ${logstash_elastic_options} -jar ${logstash_jar} ${logstash_args}"
 Xrequired_files="${java_cmd} ${logstash_config}"
 X
 Xrun_rc_command "$1"
 0f1ca7b587c13466a7f3a6fad7064657
 echo x - logstash/files/elasticsearch.yml.example
 sed 's/^X//' >logstash/files/elasticsearch.yml.example << '84e5fab083858da6b10cddebb8aeef03'
 X##################### ElasticSearch Configuration Example #####################
 X
 X# This file contains an overview of various configuration settings,
 X# targeted at operations staff. Application developers should
 X# consult the guide at <http://elasticsearch.org/guide>.
 X#
 X# The installation procedure is covered at
 X# <http://elasticsearch.org/guide/reference/setup/installation.html>.
 X#
 X# ElasticSearch comes with reasonable defaults for most settings,
 X# so you can try it out without bothering with configuration.
 X#
 X# Most of the time, these defaults are just fine for running a production
 X# cluster. If you're fine-tuning your cluster, or wondering about the
 X# effect of certain configuration option, please _do ask_ on the
 X# mailing list or IRC channel [http://elasticsearch.org/community].
 X
 X# Any element in the configuration can be replaced with environment variables
 X# by placing them in ${...} notation. For example:
 X#
 X# node.rack: ${RACK_ENV_VAR}
 X
 X# See <http://elasticsearch.org/guide/reference/setup/configuration.html>
 X# for information on supported formats and syntax for the configuration file.
 X
 X
 X################################### Cluster ###################################
 X
 X# Cluster name identifies your cluster for auto-discovery. If you're running
 X# multiple clusters on the same network, make sure you're using unique names.
 X#
 X# cluster.name: elasticsearch
 X
 X
 X#################################### Node #####################################
 X
 X# Node names are generated dynamically on startup, so you're relieved
 X# from configuring them manually. You can tie this node to a specific name:
 X#
 X# node.name: "Franz Kafka"
 X
 X# Every node can be configured to allow or deny being eligible as the master,
 X# and to allow or deny to store the data.
 X#
 X# Allow this node to be eligible as a master node (enabled by default):
 X#
 X# node.master: true
 X#
 X# Allow this node to store data (enabled by default):
 X#
 X# node.data: true
 X
 X# You can exploit these settings to design advanced cluster topologies.
 X#
 X# 1. You want this node to never become a master node, only to hold data.
 X#    This will be the "workhorse" of your cluster.
 X#
 X# node.master: false
 X# node.data: true
 X#
 X# 2. You want this node to only serve as a master: to not store any data and
 X#    to have free resources. This will be the "coordinator" of your cluster.
 X#
 X# node.master: true
 X# node.data: false
 X#
 X# 3. You want this node to be neither master nor data node, but
 X#    to act as a "search load balancer" (fetching data from nodes,
 X#    aggregating results, etc.)
 X#
 X# node.master: false
 X# node.data: false
 X
 X# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
 X# Node Info API [http://localhost:9200/_cluster/nodes] or GUI tools
 X# such as <http://github.com/lukas-vlcek/bigdesk> and
 X# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state.
 X
 X# A node can have generic attributes associated with it, which can later be used
 X# for customized shard allocation filtering, or allocation awareness. An attribute
 X# is a simple key value pair, similar to node.key: value, here is an example:
 X#
 X# node.rack: rack314
 X
 X
 X#################################### Index ####################################
 X
 X# You can set a number of options (such as shard/replica options, mapping
 X# or analyzer definitions, translog settings, ...) for indices globally,
 X# in this file.
 X#
 X# Note, that it makes more sense to configure index settings specifically for
 X# a certain index, either when creating it or by using the index templates API.
 X#
 X# See <http://elasticsearch.org/guide/reference/index-modules/> and
 X# <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.html>
 X# for more information.
 X
 X# Set the number of shards (splits) of an index (5 by default):
 X#
 X# index.number_of_shards: 5
 X
 X# Set the number of replicas (additional copies) of an index (1 by default):
 X#
 X# index.number_of_replicas: 1
 X
 X# Note, that for development on a local machine, with small indices, it usually
 X# makes sense to "disable" the distributed features:
 X#
 X# index.number_of_shards: 1
 X# index.number_of_replicas: 0
 X
 X# These settings directly affect the performance of index and search operations
 X# in your cluster. Assuming you have enough machines to hold shards and
 X# replicas, the rule of thumb is:
 X#
 X# 1. Having more *shards* enhances the _indexing_ performance and allows to
 X#    _distribute_ a big index across machines.
 X# 2. Having more *replicas* enhances the _search_ performance and improves the
 X#    cluster _availability_.
 X#
 X# The "number_of_shards" is a one-time setting for an index.
 X#
 X# The "number_of_replicas" can be increased or decreased anytime,
 X# by using the Index Update Settings API.
 X#
 X# ElasticSearch takes care about load balancing, relocating, gathering the
 X# results from nodes, etc. Experiment with different settings to fine-tune
 X# your setup.
 X
 X# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect
 X# the index status.
 X
 X
 X#################################### Paths ####################################
 X
 X# Path to directory containing configuration (this file and logging.yml):
 X#
 X# path.conf: /path/to/conf
 X
 X# Path to directory where to store index data allocated for this node.
 X#
 X# path.data: /path/to/data
 X#
 X# Can optionally include more than one location, causing data to be striped across
 X# the locations (à la RAID 0) on a file level, favouring locations with most free
 X# space on creation. For example:
 X#
 X# path.data: /path/to/data1,/path/to/data2
 X
 X# Path to temporary files:
 X#
 X# path.work: /path/to/work
 X
 X# Path to log files:
 X#
 X# path.logs: /path/to/logs
 X
 X# Path to where plugins are installed:
 X#
 X# path.plugins: /path/to/plugins
 X
 X
 X################################### Memory ####################################
 X
 X# ElasticSearch performs poorly when JVM starts swapping: you should ensure that
 X# it _never_ swaps.
 X#
 X# Set this property to true to lock the memory:
 X#
 X# bootstrap.mlockall: true
 X
 X# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
 X# to the same value, and that the machine has enough memory to allocate
 X# for ElasticSearch, leaving enough memory for the operating system itself.
 X#
 X# You should also make sure that the ElasticSearch process is allowed to lock
 X# the memory, eg. by using `ulimit -l unlimited`.
 X
 X
 X############################## Network And HTTP ###############################
 X
 X# ElasticSearch, by default, binds itself to the 0.0.0.0 address, and listens
 X# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
 X# communication. (the range means that if the port is busy, it will automatically
 X# try the next port).
 X
 X# Set the bind address specifically (IPv4 or IPv6):
 X#
 X# network.bind_host: 192.168.0.1
 X
 X# Set the address other nodes will use to communicate with this node. If not
 X# set, it is automatically derived. It must point to an actual IP address.
 X#
 X# network.publish_host: 192.168.0.1
 X
 X# Set both 'bind_host' and 'publish_host':
 X#
 X# network.host: 192.168.0.1
 X
 X# Set a custom port for the node to node communication (9300 by default):
 X#
 X# transport.port: 9300
 X
 X# Enable compression for all communication between nodes (disabled by default):
 X#
 X# transport.tcp.compress: true
 X
 X# Set a custom port to listen for HTTP traffic:
 X#
 X# http.port: 9200
 X
 X# Set a custom allowed content length:
 X#
 X# http.max_content_length: 100mb
 X
 X# Disable HTTP completely:
 X#
 X# http.enabled: false
 X
 X
 X################################### Gateway ###################################
 X
 X# The gateway allows for persisting the cluster state between full cluster
 X# restarts. Every change to the state (such as adding an index) will be stored
 X# in the gateway, and when the cluster starts up for the first time,
 X# it will read its state from the gateway.
 X
 X# There are several types of gateway implementations. For more information,
 X# see <http://elasticsearch.org/guide/reference/modules/gateway>.
 X
 X# The default gateway type is the "local" gateway (recommended):
 X#
 X# gateway.type: local
 X
 X# Settings below control how and when to start the initial recovery process on
 X# a full cluster restart (to reuse as much local data as possible).
 X
 X# Allow recovery process after N nodes in a cluster are up:
 X#
 X# gateway.recover_after_nodes: 1
 X
 X# Set the timeout to initiate the recovery process, once the N nodes
 X# from previous setting are up (accepts time value):
 X#
 X# gateway.recover_after_time: 5m
 X
 X# Set how many nodes are expected in this cluster. Once these N nodes
 X# are up, begin recovery process immediately:
 X#
 X# gateway.expected_nodes: 2
 X
 X
 X############################# Recovery Throttling #############################
 X
 X# These settings allow to control the process of shards allocation between
 X# nodes during initial recovery, replica allocation, rebalancing,
 X# or when adding and removing nodes.
 X
 X# Set the number of concurrent recoveries happening on a node:
 X#
 X# 1. During the initial recovery
 X#
 X# cluster.routing.allocation.node_initial_primaries_recoveries: 4
 X#
 X# 2. During adding/removing nodes, rebalancing, etc
 X#
 X# cluster.routing.allocation.node_concurrent_recoveries: 2
 X
 X# Set to throttle throughput when recovering (eg. 100mb, by default unlimited):
 X#
 X# indices.recovery.max_size_per_sec: 0
 X
 X# Set to limit the number of open concurrent streams when
 X# recovering a shard from a peer:
 X#
 X# indices.recovery.concurrent_streams: 5
 X
 X
 X################################## Discovery ##################################
 X
 X# Discovery infrastructure ensures nodes can be found within a cluster
 X# and master node is elected. Multicast discovery is the default.
 X
 X# Set to ensure a node sees N other master eligible nodes to be considered
 X# operational within the cluster. Set this option to a higher value (2-4)
 X# for large clusters:
 X#
 X# discovery.zen.minimum_master_nodes: 1
 X
 X# Set the time to wait for ping responses from other nodes when discovering.
 X# Set this option to a higher value on a slow or congested network
 X# to minimize discovery failures:
 X#
 X# discovery.zen.ping.timeout: 3s
 X
 X# See <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>
 X# for more information.
 X
 X# Unicast discovery allows to explicitly control which nodes will be used
 X# to discover the cluster. It can be used when multicast is not present,
 X# or to restrict the cluster communication-wise.
 X#
 X# 1. Disable multicast discovery (enabled by default):
 X#
 X# discovery.zen.ping.multicast.enabled: false
 X#
 X# 2. Configure an initial list of master nodes in the cluster
 X#    to perform discovery when new nodes (master or data) are started:
 X#
 X# discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
 X
 X# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
 X#
 X# You have to install the cloud-aws plugin for enabling the EC2 discovery.
 X#
 X# See <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>
 X# for more information.
 X#
 X# See <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>
 X# for a step-by-step tutorial.
 X
 X
 X################################## Slow Log ##################################
 X
 X# Shard level query and fetch threshold logging.
 X
 X#index.search.slowlog.level: TRACE
 X#index.search.slowlog.threshold.query.warn: 10s
 X#index.search.slowlog.threshold.query.info: 5s
 X#index.search.slowlog.threshold.query.debug: 2s
 X#index.search.slowlog.threshold.query.trace: 500ms
 X
 X#index.search.slowlog.threshold.fetch.warn: 1s
 X#index.search.slowlog.threshold.fetch.info: 800ms
 X#index.search.slowlog.threshold.fetch.debug: 500ms
 X#index.search.slowlog.threshold.fetch.trace: 200ms
 84e5fab083858da6b10cddebb8aeef03
 echo x - logstash/pkg-descr
 sed 's/^X//' >logstash/pkg-descr << 'e951d49595615b1bac2b63587f1fb181'
 Xlogstash is a tool for managing events and logs.
 XYou can use it to collect logs, parse them, and
 Xstore them for later use (like, for searching).
 XSpeaking of searching, logstash comes with a web
 Xinterface for searching and drilling into all of
 Xyour logs.
 X
 XWWW:	http://logstash.net/
 e951d49595615b1bac2b63587f1fb181
 exit
 
 
 --------------050106040302030903050004--

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Mon, 4 Jun 2012 14:34:02 +0200

 Thank you again.
 
 Looking at your submission I noticed a few problems:
 
 - including separated bsd.port.pre.mk and bsd.port.post.mk when
 there is no need to do that. separating these includes should be
 done only and only if doing some processing of options or other
 ports system variables defined by those includes. For parsing options
 using bsd.port.opsion.mk is preferred though.
 
 - is there any reason for the operations being done in pre-install
 target not to be done in do-install?
 
 - commented out tests and unnecessary Makefile parts should be removed
 before final submission
 
 - this port is missing a plist, either as make variables or as pkg-plist
 file. This is a very important part of making a port, the ports system
 needs this information to track installed files and allow for package
 creation and clean deinstallation of port/package.
 
 All this is exaplained in detail in the porter's handook:
 
 http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/
 
 if you find any missing information or unclear parts please report that
 so we can fix it.
 
 I also see that your port is installing example configuration files, so
 you should pay spacial attention to chapter 7.3 "Configuration Files" of
 the porter's handbook and set up the Makefile and plist of the port
 accordingly.
 
 One last detail, at the start of the port makefile, before the
 $FreeBSD$ line there should be the following lines(I'm pasting from
 the example in the porter's handbook):
 
 # New ports collection makefile for:	oneko
 # Date created:        5 December 1994
 # Whom:                asami
 #
 
 which your submission is missing.
 
 Please fix these issues, thanks!
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>
State-Changed-From-To: open->feedback 
State-Changed-By: madpilot 
State-Changed-When: Mon Jun 4 12:46:40 UTC 2012 
State-Changed-Why:  
Ask for submitter fix. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 

From: Aristedes Maniatis <ari@ish.com.au>
To: bug-followup@FreeBSD.org, daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Sat, 09 Jun 2012 10:15:41 +1000

 Thanks for your feedback. This is our first port, so we'll try and fix these things.

From: Anthony Garcia <agarcia@experts-exchange.com>
To: bug-followup@FreeBSD.org, daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Thu, 18 Oct 2012 13:42:57 -0700

 Hello,
 I was looking into porting logstash to freebsd myself and I was glad 
 someone else had already had done it.
 Is there any update on the plist?
 
 -- 
 ~Anthony Garcia
 

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, daniel@ish.com.au,
	Anthony Garcia <agarcia@experts-exchange.com>
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Mon, 22 Oct 2012 13:43:19 +0200

 --tKW2IUtsqtDRztdT
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Hi!
 
 I have fixed the submission and updated it to version 1.1.1.
 
 I'm attaching the shar archieve. for testing. Feedback if appreciated
 from all users.
 
 If you (the submitter) are still interested in maintaining the port I'll
 wait for your approval before committing it.
 
 If you need any clearifications about my changes to the port feel free
 to ask.
 
 Thanks!
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>
 
 --tKW2IUtsqtDRztdT
 Content-Type: application/x-shar
 Content-Disposition: attachment; filename="logstash.shar"
 Content-Transfer-Encoding: quoted-printable
 
 # This is a shell archive.  Save it in a file, remove anything before=0A# t=
 his line, and then unpack it by entering "sh file".  Note, it may=0A# creat=
 e directories; files and directories will be owned by you and=0A# have defa=
 ult permissions.=0A#=0A# This archive contains:=0A#=0A#	logstash=0A#	logsta=
 sh/distinfo=0A#	logstash/Makefile=0A#	logstash/pkg-descr=0A#	logstash/pkg-p=
 list=0A#	logstash/files=0A#	logstash/files/logstash.conf.sample=0A#	logstas=
 h/files/elasticsearch.yml.sample=0A#	logstash/files/logstash.in=0A#=0Aecho =
 c - logstash=0Amkdir -p logstash > /dev/null 2>&1=0Aecho x - logstash/disti=
 nfo=0Ased 's/^X//' >logstash/distinfo << '8a7498b9608da6df76161c7712d9c4de'=
 =0AXSHA256 (logstash-1.1.1-monolithic.jar) =3D 36f462b50efad0773b3ff94920d1=
 de500faa236cb0d81439110b50b08978444d=0AXSIZE (logstash-1.1.1-monolithic.jar=
 ) =3D 53813805=0A8a7498b9608da6df76161c7712d9c4de=0Aecho x - logstash/Makef=
 ile=0Ased 's/^X//' >logstash/Makefile << '58caac783f1d72028817b3f79ec306ec'=
 =0AX# $FreeBSD$=0AX=0AXPORTNAME=3D	logstash=0AXPORTVERSION=3D	1.1.1=0AXCATE=
 GORIES=3D	sysutils java=0AXMASTER_SITES=3D	http://semicomplete.com/files/lo=
 gstash/=0AXDISTNAME=3D	${PORTNAME}-${PORTVERSION}-monolithic=0AXEXTRACT_SUF=
 X=3D	.jar=0AXEXTRACT_ONLY=3D=0AX=0AXMAINTAINER=3D	daniel@ish.com.au=0AXCOMM=
 ENT=3D	Tool for managing events and logs=0AX=0AXUSE_JAVA=3D	yes=0AXJAVA_VER=
 SION=3D	1.5+=0AX=0AXNO_BUILD=3D	yes=0AX=0AXUSE_RC_SUBR=3D	logstash=0AX=0AXL=
 OGSTASH_HOME?=3D	${PREFIX}/${PORTNAME}=0AXLOGSTASH_HOME_REL?=3D	${LOGSTASH_=
 HOME:S,^${PREFIX}/,,}=0AXLOGSTASH_JAR?=3D	${DISTNAME}${EXTRACT_SUFX}=0AXLOG=
 STASH_RUN?=3D	/var/run/${PORTNAME}=0AXLOGSTASH_DATA_DIR?=3D	/var/db/${PORTN=
 AME}=0AX=0AXSUB_LIST=3D	LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR} JAVA_HOME=
 =3D${JAVA_HOME} \=0AX		LOGSTASH_HOME=3D${LOGSTASH_HOME} LOGSTASH_JAR=3D${LO=
 GSTASH_JAR}=0AXPLIST_SUB+=3D	LOGSTASH_HOME=3D${LOGSTASH_HOME_REL} LOGSTASH_=
 JAR=3D${LOGSTASH_JAR} \=0AX		LOGSTASH_RUN=3D${LOGSTASH_RUN} \=0AX		LOGSTASH=
 _DATA_DIR=3D${LOGSTASH_DATA_DIR}=0AX=0AXdo-install:=0AX	${MKDIR} ${LOGSTASH=
 _RUN}=0AX	${MKDIR} ${ETCDIR}=0AX	${MKDIR} ${LOGSTASH_HOME}=0AX	${MKDIR} ${L=
 OGSTASH_DATA_DIR}=0AX	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_=
 JAR} ${LOGSTASH_HOME}=0AX	${INSTALL_DATA} ${FILESDIR}/logstash.conf.sample =
 ${ETCDIR}=0AX	@if [ ! -f ${ETCDIR}/logstash.conf ]; then \=0AX		${CP} -p ${=
 ETCDIR}/logstash.conf.sample ${ETCDIR}/logstash.conf ; \=0AX	fi=0AX	${INSTA=
 LL_DATA} ${FILESDIR}/elasticsearch.yml.sample ${ETCDIR}=0AX	@if [ ! -f ${ET=
 CDIR}/elasticsearch.yml ]; then \=0AX		${CP} -p ${ETCDIR}/elasticsearch.yml=
 =2Esample ${ETCDIR}/elasticsearch.yml ; \=0AX	fi=0AX=0AX.include <bsd.port.=
 mk>=0A58caac783f1d72028817b3f79ec306ec=0Aecho x - logstash/pkg-descr=0Ased =
 's/^X//' >logstash/pkg-descr << 'e951d49595615b1bac2b63587f1fb181'=0AXlogst=
 ash is a tool for managing events and logs. You can use it to=0AXcollect lo=
 gs, parse them, and store them for later use (like, for=0AXsearching). Spea=
 king of searching, logstash comes with a web interface=0AXfor searching and=
  drilling into all of your logs.=0AX=0AXWWW:	http://logstash.net/=0Ae951d49=
 595615b1bac2b63587f1fb181=0Aecho x - logstash/pkg-plist=0Ased 's/^X//' >log=
 stash/pkg-plist << 'b88d9aee40fac03c7f8520b4cf627738'=0AX%%LOGSTASH_HOME%%/=
 %%LOGSTASH_JAR%%=0AX@exec mkdir -p %%LOGSTASH_RUN%%=0AX@exec mkdir -p %%LOG=
 STASH_DATA_DIR%%=0AX@unexec if cmp -s %D/%%ETCDIR%%/logstash.conf.sample %D=
 /%%ETCDIR%%/logstash.conf; then rm -f %D/%%ETCDIR%%/logstash.conf; fi=0AX%%=
 ETCDIR%%/logstash.conf.sample=0AX@exec if [ ! -f  %D/%%ETCDIR%%/logstash.co=
 nf ] ; then cp -p %D/%F %B/logstash.conf; fi=0AX@unexec if cmp -s %D/%%ETCD=
 IR%%/elasticsearch.yml.sample %D/%%ETCDIR%%/elasticsearch.yml; then rm -f %=
 D/%%ETCDIR%%/elasticsearch.yml; fi=0AX%%ETCDIR%%/elasticsearch.yml.sample=
 =0AX@exec if [ ! -f  %D/%%ETCDIR%%/elasticsearch.yml ] ; then cp -p %D/%F %=
 B/elasticsearch.yml; fi=0AX@dirrmtry %%LOGSTASH_DATA_DIR%%=0AX@dirrmtry %%L=
 OGSTASH_HOME%%=0AX@dirrmtry %%ETCDIR%%=0AX@dirrmtry %%LOGSTASH_RUN%%=0Ab88d=
 9aee40fac03c7f8520b4cf627738=0Aecho c - logstash/files=0Amkdir -p logstash/=
 files > /dev/null 2>&1=0Aecho x - logstash/files/logstash.conf.sample=0Ased=
  's/^X//' >logstash/files/logstash.conf.sample << '8c0433569bd185de29414aeb=
 59f76651'=0AXinput {=0AX  file {=0AX    type =3D> "system logs"=0AX=0AX  # =
  # Wildcards work, here :)=0AX  #  path =3D> [ "/var/log/*.log", "/var/log/=
 messages", "/var/log/syslog" ]=0AX    path =3D> [ "/var/log/messages" ]=0AX=
   #}=0AX=0AX  #file {=0AX  #  type =3D> "Hudson-access"=0AX  #  path =3D> "=
 /var/log/www/hudson.ish.com.au-access_log"=0AX  #}=0AX=0AX  #file {=0AX  # =
          type =3D> "Syslog"=0AX  #  path =3D> "/var/log/messages"=0AX  #}=
 =0AX}=0AX=0AXoutput {=0AX  # Emit events to stdout for easy debugging of wh=
 at is going through=0AX  # logstash.=0AX  #stdout { }=0AX=0AX  # This will =
 use elasticsearch to store your logs.=0AX  # The 'embedded' option will cau=
 se logstash to run the elasticsearch=0AX  # server in the same process, so =
 you don't have to worry about=0AX  # how to download, configure, or run ela=
 sticsearch!=0AX  elasticsearch { =0AX     embedded =3D> true=0AX     #embed=
 ded_http_port =3D> 9200=0AX     #cluster =3D> elasticsearch=0AX     #host =
 =3D> host=0AX     #port =3D> port=0AX      =0AX  }=0AX}=0A8c0433569bd185de2=
 9414aeb59f76651=0Aecho x - logstash/files/elasticsearch.yml.sample=0Ased 's=
 /^X//' >logstash/files/elasticsearch.yml.sample << '598eb73269d83d65a71b10e=
 972503bc9'=0AX##################### ElasticSearch Configuration Example ###=
 ##################=0AX=0AX# This file contains an overview of various confi=
 guration settings,=0AX# targeted at operations staff. Application developer=
 s should=0AX# consult the guide at <http://elasticsearch.org/guide>.=0AX#=
 =0AX# The installation procedure is covered at=0AX# <http://elasticsearch.o=
 rg/guide/reference/setup/installation.html>.=0AX#=0AX# ElasticSearch comes =
 with reasonable defaults for most settings,=0AX# so you can try it out with=
 out bothering with configuration.=0AX#=0AX# Most of the time, these default=
 s are just fine for running a production=0AX# cluster. If you're fine-tunin=
 g your cluster, or wondering about the=0AX# effect of certain configuration=
  option, please _do ask_ on the=0AX# mailing list or IRC channel [http://el=
 asticsearch.org/community].=0AX=0AX# Any element in the configuration can b=
 e replaced with environment variables=0AX# by placing them in ${...} notati=
 on. For example:=0AX#=0AX# node.rack: ${RACK_ENV_VAR}=0AX=0AX# See <http://=
 elasticsearch.org/guide/reference/setup/configuration.html>=0AX# for inform=
 ation on supported formats and syntax for the configuration file.=0AX=0AX=
 =0AX################################### Cluster ###########################=
 ########=0AX=0AX# Cluster name identifies your cluster for auto-discovery. =
 If you're running=0AX# multiple clusters on the same network, make sure you=
 're using unique names.=0AX#=0AX# cluster.name: elasticsearch=0AX=0AX=0AX##=
 ################################## Node ###################################=
 ##=0AX=0AX# Node names are generated dynamically on startup, so you're reli=
 eved=0AX# from configuring them manually. You can tie this node to a specif=
 ic name:=0AX#=0AX# node.name: "Franz Kafka"=0AX=0AX# Every node can be conf=
 igured to allow or deny being eligible as the master,=0AX# and to allow or =
 deny to store the data.=0AX#=0AX# Allow this node to be eligible as a maste=
 r node (enabled by default):=0AX#=0AX# node.master: true=0AX#=0AX# Allow th=
 is node to store data (enabled by default):=0AX#=0AX# node.data: true=0AX=
 =0AX# You can exploit these settings to design advanced cluster topologies.=
 =0AX#=0AX# 1. You want this node to never become a master node, only to hol=
 d data.=0AX#    This will be the "workhorse" of your cluster.=0AX#=0AX# nod=
 e.master: false=0AX# node.data: true=0AX#=0AX# 2. You want this node to onl=
 y serve as a master: to not store any data and=0AX#    to have free resourc=
 es. This will be the "coordinator" of your cluster.=0AX#=0AX# node.master: =
 true=0AX# node.data: false=0AX#=0AX# 3. You want this node to be neither ma=
 ster nor data node, but=0AX#    to act as a "search load balancer" (fetchin=
 g data from nodes,=0AX#    aggregating results, etc.)=0AX#=0AX# node.master=
 : false=0AX# node.data: false=0AX=0AX# Use the Cluster Health API [http://l=
 ocalhost:9200/_cluster/health], the=0AX# Node Info API [http://localhost:92=
 00/_cluster/nodes] or GUI tools=0AX# such as <http://github.com/lukas-vlcek=
 /bigdesk> and=0AX# <http://mobz.github.com/elasticsearch-head> to inspect t=
 he cluster state.=0AX=0AX# A node can have generic attributes associated wi=
 th it, which can later be used=0AX# for customized shard allocation filteri=
 ng, or allocation awareness. An attribute=0AX# is a simple key value pair, =
 similar to node.key: value, here is an example:=0AX#=0AX# node.rack: rack31=
 4=0AX=0AX=0AX#################################### Index ###################=
 #################=0AX=0AX# You can set a number of options (such as shard/r=
 eplica options, mapping=0AX# or analyzer definitions, translog settings, ..=
 =2E) for indices globally,=0AX# in this file.=0AX#=0AX# Note, that it makes=
  more sense to configure index settings specifically for=0AX# a certain ind=
 ex, either when creating it or by using the index templates API.=0AX#=0AX# =
 See <http://elasticsearch.org/guide/reference/index-modules/> and=0AX# <htt=
 p://elasticsearch.org/guide/reference/api/admin-indices-create-index.html>=
 =0AX# for more information.=0AX=0AX# Set the number of shards (splits) of a=
 n index (5 by default):=0AX#=0AX# index.number_of_shards: 5=0AX=0AX# Set th=
 e number of replicas (additional copies) of an index (1 by default):=0AX#=
 =0AX# index.number_of_replicas: 1=0AX=0AX# Note, that for development on a =
 local machine, with small indices, it usually=0AX# makes sense to "disable"=
  the distributed features:=0AX#=0AX# index.number_of_shards: 1=0AX# index.n=
 umber_of_replicas: 0=0AX=0AX# These settings directly affect the performanc=
 e of index and search operations=0AX# in your cluster. Assuming you have en=
 ough machines to hold shards and=0AX# replicas, the rule of thumb is:=0AX#=
 =0AX# 1. Having more *shards* enhances the _indexing_ performance and allow=
 s to=0AX#    _distribute_ a big index across machines.=0AX# 2. Having more =
 *replicas* enhances the _search_ performance and improves the=0AX#    clust=
 er _availability_.=0AX#=0AX# The "number_of_shards" is a one-time setting f=
 or an index.=0AX#=0AX# The "number_of_replicas" can be increased or decreas=
 ed anytime,=0AX# by using the Index Update Settings API.=0AX#=0AX# ElasticS=
 earch takes care about load balancing, relocating, gathering the=0AX# resul=
 ts from nodes, etc. Experiment with different settings to fine-tune=0AX# yo=
 ur setup.=0AX=0AX# Use the Index Status API (<http://localhost:9200/A/_stat=
 us>) to inspect=0AX# the index status.=0AX=0AX=0AX#########################=
 ########### Paths ####################################=0AX=0AX# Path to dir=
 ectory containing configuration (this file and logging.yml):=0AX#=0AX# path=
 =2Econf: /path/to/conf=0AX=0AX# Path to directory where to store index data=
  allocated for this node.=0AX#=0AX# path.data: /path/to/data=0AX#=0AX# Can =
 optionally include more than one location, causing data to be striped acros=
 s=0AX# the locations (=C3=83=C2=A0 la RAID 0) on a file level, favouring lo=
 cations with most free=0AX# space on creation. For example:=0AX#=0AX# path.=
 data: /path/to/data1,/path/to/data2=0AX=0AX# Path to temporary files:=0AX#=
 =0AX# path.work: /path/to/work=0AX=0AX# Path to log files:=0AX#=0AX# path.l=
 ogs: /path/to/logs=0AX=0AX# Path to where plugins are installed:=0AX#=0AX# =
 path.plugins: /path/to/plugins=0AX=0AX=0AX#################################=
 ## Memory ####################################=0AX=0AX# ElasticSearch perfo=
 rms poorly when JVM starts swapping: you should ensure that=0AX# it _never_=
  swaps.=0AX#=0AX# Set this property to true to lock the memory:=0AX#=0AX# b=
 ootstrap.mlockall: true=0AX=0AX# Make sure that the ES_MIN_MEM and ES_MAX_M=
 EM environment variables are set=0AX# to the same value, and that the machi=
 ne has enough memory to allocate=0AX# for ElasticSearch, leaving enough mem=
 ory for the operating system itself.=0AX#=0AX# You should also make sure th=
 at the ElasticSearch process is allowed to lock=0AX# the memory, eg. by usi=
 ng `ulimit -l unlimited`.=0AX=0AX=0AX############################## Network=
  And HTTP ###############################=0AX=0AX# ElasticSearch, by defaul=
 t, binds itself to the 0.0.0.0 address, and listens=0AX# on port [9200-9300=
 ] for HTTP traffic and on port [9300-9400] for node-to-node=0AX# communicat=
 ion. (the range means that if the port is busy, it will automatically=0AX# =
 try the next port).=0AX=0AX# Set the bind address specifically (IPv4 or IPv=
 6):=0AX#=0AX# network.bind_host: 192.168.0.1=0AX=0AX# Set the address other=
  nodes will use to communicate with this node. If not=0AX# set, it is autom=
 atically derived. It must point to an actual IP address.=0AX#=0AX# network.=
 publish_host: 192.168.0.1=0AX=0AX# Set both 'bind_host' and 'publish_host':=
 =0AX#=0AX# network.host: 192.168.0.1=0AX=0AX# Set a custom port for the nod=
 e to node communication (9300 by default):=0AX#=0AX# transport.port: 9300=
 =0AX=0AX# Enable compression for all communication between nodes (disabled =
 by default):=0AX#=0AX# transport.tcp.compress: true=0AX=0AX# Set a custom p=
 ort to listen for HTTP traffic:=0AX#=0AX# http.port: 9200=0AX=0AX# Set a cu=
 stom allowed content length:=0AX#=0AX# http.max_content_length: 100mb=0AX=
 =0AX# Disable HTTP completely:=0AX#=0AX# http.enabled: false=0AX=0AX=0AX###=
 ################################ Gateway ##################################=
 #=0AX=0AX# The gateway allows for persisting the cluster state between full=
  cluster=0AX# restarts. Every change to the state (such as adding an index)=
  will be stored=0AX# in the gateway, and when the cluster starts up for the=
  first time,=0AX# it will read its state from the gateway.=0AX=0AX# There a=
 re several types of gateway implementations. For more information,=0AX# see=
  <http://elasticsearch.org/guide/reference/modules/gateway>.=0AX=0AX# The d=
 efault gateway type is the "local" gateway (recommended):=0AX#=0AX# gateway=
 =2Etype: local=0AX=0AX# Settings below control how and when to start the in=
 itial recovery process on=0AX# a full cluster restart (to reuse as much loc=
 al data as possible).=0AX=0AX# Allow recovery process after N nodes in a cl=
 uster are up:=0AX#=0AX# gateway.recover_after_nodes: 1=0AX=0AX# Set the tim=
 eout to initiate the recovery process, once the N nodes=0AX# from previous =
 setting are up (accepts time value):=0AX#=0AX# gateway.recover_after_time: =
 5m=0AX=0AX# Set how many nodes are expected in this cluster. Once these N n=
 odes=0AX# are up, begin recovery process immediately:=0AX#=0AX# gateway.exp=
 ected_nodes: 2=0AX=0AX=0AX############################# Recovery Throttling=
  #############################=0AX=0AX# These settings allow to control the=
  process of shards allocation between=0AX# nodes during initial recovery, r=
 eplica allocation, rebalancing,=0AX# or when adding and removing nodes.=0AX=
 =0AX# Set the number of concurrent recoveries happening on a node:=0AX#=0AX=
 # 1. During the initial recovery=0AX#=0AX# cluster.routing.allocation.node_=
 initial_primaries_recoveries: 4=0AX#=0AX# 2. During adding/removing nodes, =
 rebalancing, etc=0AX#=0AX# cluster.routing.allocation.node_concurrent_recov=
 eries: 2=0AX=0AX# Set to throttle throughput when recovering (eg. 100mb, by=
  default unlimited):=0AX#=0AX# indices.recovery.max_size_per_sec: 0=0AX=0AX=
 # Set to limit the number of open concurrent streams when=0AX# recovering a=
  shard from a peer:=0AX#=0AX# indices.recovery.concurrent_streams: 5=0AX=0A=
 X=0AX################################## Discovery #########################=
 #########=0AX=0AX# Discovery infrastructure ensures nodes can be found with=
 in a cluster=0AX# and master node is elected. Multicast discovery is the de=
 fault.=0AX=0AX# Set to ensure a node sees N other master eligible nodes to =
 be considered=0AX# operational within the cluster. Set this option to a hig=
 her value (2-4)=0AX# for large clusters:=0AX#=0AX# discovery.zen.minimum_ma=
 ster_nodes: 1=0AX=0AX# Set the time to wait for ping responses from other n=
 odes when discovering.=0AX# Set this option to a higher value on a slow or =
 congested network=0AX# to minimize discovery failures:=0AX#=0AX# discovery.=
 zen.ping.timeout: 3s=0AX=0AX# See <http://elasticsearch.org/guide/reference=
 /modules/discovery/zen.html>=0AX# for more information.=0AX=0AX# Unicast di=
 scovery allows to explicitly control which nodes will be used=0AX# to disco=
 ver the cluster. It can be used when multicast is not present,=0AX# or to r=
 estrict the cluster communication-wise.=0AX#=0AX# 1. Disable multicast disc=
 overy (enabled by default):=0AX#=0AX# discovery.zen.ping.multicast.enabled:=
  false=0AX#=0AX# 2. Configure an initial list of master nodes in the cluste=
 r=0AX#    to perform discovery when new nodes (master or data) are started:=
 =0AX#=0AX# discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3=
 [portX-portY]"]=0AX=0AX# EC2 discovery allows to use AWS EC2 API in order t=
 o perform discovery.=0AX#=0AX# You have to install the cloud-aws plugin for=
  enabling the EC2 discovery.=0AX#=0AX# See <http://elasticsearch.org/guide/=
 reference/modules/discovery/ec2.html>=0AX# for more information.=0AX#=0AX# =
 See <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.htm=
 l>=0AX# for a step-by-step tutorial.=0AX=0AX=0AX###########################=
 ####### Slow Log ##################################=0AX=0AX# Shard level qu=
 ery and fetch threshold logging.=0AX=0AX#index.search.slowlog.level: TRACE=
 =0AX#index.search.slowlog.threshold.query.warn: 10s=0AX#index.search.slowlo=
 g.threshold.query.info: 5s=0AX#index.search.slowlog.threshold.query.debug: =
 2s=0AX#index.search.slowlog.threshold.query.trace: 500ms=0AX=0AX#index.sear=
 ch.slowlog.threshold.fetch.warn: 1s=0AX#index.search.slowlog.threshold.fetc=
 h.info: 800ms=0AX#index.search.slowlog.threshold.fetch.debug: 500ms=0AX#ind=
 ex.search.slowlog.threshold.fetch.trace: 200ms=0A598eb73269d83d65a71b10e972=
 503bc9=0Aecho x - logstash/files/logstash.in=0Ased 's/^X//' >logstash/files=
 /logstash.in << '0f1ca7b587c13466a7f3a6fad7064657'=0AX#!/bin/sh=0AX=0AX# $F=
 reeBSD:=0AX# PROVIDE: logstash=0AX# REQUIRE: LOGIN=0AX# KEYWORD: shutdown=
 =0AX=0AX#=0AX# Configuration settings for logstash in /etc/rc.conf:=0AX#=0A=
 X# logstash_enable (bool):=0AX#   Set to "NO" by default.=0AX#   Set it to =
 "YES" to enable logstash=0AX#=0AX# logstash_mode :=0AX#   Set to "standalon=
 e" by default.=0AX#   Valid options:=0AX#     "standalone": agent, web & el=
 asticsearch=0AX#     "web": Starts logstash as a web ui=0AX#     "agent": J=
 usts works as a log shipper =0AX#=0AX# logstash_logging (bool):=0AX#   Set =
 to "NO" by default.=0AX#   Set it to "YES" to enable logstash logging to fi=
 le=0AX#   Default output to /var/log/logstash.log=0AX#=0AX=0AX. /etc/rc.sub=
 r=0AX=0AXname=3D"logstash"=0AXrcvar=3Dlogstash_enable=0AX=0AXpiddir=3D"/var=
 /run/${name}"=0AXpidfile=3D"${piddir}/${name}.pid"=0AX=0AXif [ -d $piddir ]=
 ; then=0AX	mkdir -p $piddir=0AXfi=0AX=0AXlogdir=3D"/var/log"=0AXcommand=3D"=
 /usr/sbin/daemon"=0AX=0AXload_rc_config "${name}"=0AX=0AX: ${logstash_enabl=
 e=3D"NO"}=0AX: ${logstash_home=3D"%%LOGSTASH_HOME%%"}=0AX: ${logstash_confi=
 g=3D"%%PREFIX%%/etc/${name}/${name}.conf"}=0AX: ${logstash_jar=3D"%%LOGSTAS=
 H_HOME%%/%%LOGSTASH_JAR%%"}=0AX: ${logstash_java_home=3D"%%JAVA_HOME%%"}=0A=
 X: ${logstash_log=3D"NO"}=0AX: ${logstash_mode=3D"standalone"}=0AX: ${logst=
 ash_port=3D"9292"}=0AX: ${logstash_elastic_backend=3D""}=0AX: ${logstash_lo=
 g_file=3D"${logdir}/${name}.log"}=0AX: ${logstash_elastic_datadir=3D"%%LOGS=
 TASH_DATA_DIR%%"}=0AX=0AXjava_cmd=3D"${logstash_java_home}/bin/java"=0AXpro=
 cname=3D"${java_cmd}"=0AX=0AXlogstash_chdir=3D${logstash_home}=0AXlogstash_=
 log_options=3D""=0AXlogstash_elastic_options=3D""=0AX=0AXif [ ${logstash_lo=
 g} =3D=3D "YES" ]; then=0AX	logstash_log_options=3D" --log ${logstash_log_f=
 ile}" =0AXfi=0AX=0AXif [ ${logstash_mode} =3D=3D "standalone" ]; then=0AX	l=
 ogstash_args=3D"agent -f ${logstash_config} -- web --port ${logstash_port} =
 --backend elasticsearch:///?local ${logstash_log_options}"=0AX	logstash_ela=
 stic_options=3D" -Des.path.data=3D${logstash_elastic_datadir}"=0AXelif [ ${=
 logstash_mode} =3D=3D "agent" ];then=0AX	logstash_args=3D"agent -f ${logsta=
 sh_config} ${logstash_log_options}"=0AXelif [ ${logstash_mode} =3D=3D "web"=
  ];then=0AX	logstash_args=3D"web --port ${logstash_port} --backend elastics=
 earch://${logstash_elastic_backend}/ ${logstash_log_options}"=0AXfi=0AX=0AX=
 command_args=3D"-f -p ${pidfile} ${java_cmd} ${logstash_elastic_options} -j=
 ar ${logstash_jar} ${logstash_args}"=0AXrequired_files=3D"${java_cmd} ${log=
 stash_config}"=0AX=0AXrun_rc_command "$1"=0A0f1ca7b587c13466a7f3a6fad706465=
 7=0Aexit=0A=0A
 --tKW2IUtsqtDRztdT--

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Fri, 09 Nov 2012 09:48:22 +0100

 Hi, have you seen my last followup to your submission, I have a fixed 
 port which I could commit with your approval since you are the maintainer.
 
 Could you please test it and give feedback? thank you.
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>
Responsible-Changed-From-To: madpilot->freebsd-ports-bugs 
Responsible-Changed-By: madpilot 
Responsible-Changed-When: Tue Nov 27 13:20:52 UTC 2012 
Responsible-Changed-Why:  
Back to pool. Submitter vanished. If anyone is interested in maintaining 
this port ping me. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 
State-Changed-From-To: feedback->open 
State-Changed-By: madpilot 
State-Changed-When: Sat Dec 8 20:15:35 UTC 2012 
State-Changed-Why:  
Return to open status. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 
State-Changed-From-To: open->closed 
State-Changed-By: miwi 
State-Changed-When: Fri Feb 15 08:39:09 UTC 2013 
State-Changed-Why:  
submitter timeout. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 

From: "Regis A. Despres" <regis.despres@gmail.com>
To: bug-followup@FreeBSD.org,
 daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Tue, 26 Mar 2013 14:44:36 +0100

 Hey there,
 
 Really interested in make this one alive.
 Let me know if i can do some long term thing for it.
 
 
 Regards,
 
 
 -- 
 Regis A. Despres
   

From: Daniel Solsona <daniel@ish.com.au>
To: "Regis A. Despres" <regis.despres@gmail.com>
Cc: bug-followup@FreeBSD.org
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Wed, 27 Mar 2013 09:52:24 +1100

 Hi,
 
 I couple of weeks ago I went back to use logstash and finished the port.
 
 I'll try to send it today.
 
 On 27/03/13 12:44 AM, Regis A. Despres wrote:
 > Hey there,
 >
 > Really interested in make this one alive.
 > Let me know if i can do some long term thing for it.
 >
 >
 > Regards,
 >
 >
 

From: "Regis A. Despres" <regis.despres@gmail.com>
To: bug-followup@FreeBSD.org,
 daniel@ish.com.au
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Sat, 4 May 2013 18:57:14 +0200

 Hey Daniel,
 
 You might have forgot to push it live =)
 Anything i can do in order to make this alive ?
 
 
 -- 
 Regis A. Despres
 
State-Changed-From-To: closed->open 
State-Changed-By: mat 
State-Changed-When: Mon Jul 8 13:55:28 UTC 2013 
State-Changed-Why:  
There seems to be some interest in the port still, maybe a change of maintainer ? 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 

From: "Regis A. Despres" <regis.despres@gmail.com>
To: bug-followup@FreeBSD.org
Cc: Guido Falsi <madpilot@FreeBSD.org>,
 "daniel@ish.com.au" <daniel@ish.com.au>
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Mon, 8 Jul 2013 23:00:38 +0200

 --Apple-Mail=_5DBA56F5-6601-44C8-A39F-C15CB61FE666
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=us-ascii
 
 Hello hello,
 
 Tested on a fresh 9.1 install.
 Works like a charm.
 One character difference into logstash.conf.sample that was throwing a =
 error.=20
 
 Regards,
 
 
 --=20
 Regis A. Despres
 
 
 --Apple-Mail=_5DBA56F5-6601-44C8-A39F-C15CB61FE666
 Content-Disposition: attachment;
 	filename=logstash.shar
 Content-Type: application/octet-stream;
 	x-unix-mode=0644;
 	name="logstash.shar"
 Content-Transfer-Encoding: quoted-printable
 
 #=20This=20is=20a=20shell=20archive.=20=20Save=20it=20in=20a=20file,=20=
 remove=20anything=20before=0A#=20this=20line,=20and=20then=20unpack=20it=20=
 by=20entering=20"sh=20file".=20=20Note,=20it=20may=0A#=20create=20=
 directories;=20files=20and=20directories=20will=20be=20owned=20by=20you=20=
 and=0A#=20have=20default=20permissions.=0A#=0A#=20This=20archive=20=
 contains:=0A#=0A#=09logstash=0A#=09logstash/distinfo=0A#=09=
 logstash/Makefile=0A#=09logstash/pkg-descr=0A#=09logstash/pkg-plist=0A#=09=
 logstash/files=0A#=09logstash/files/logstash.conf.sample=0A#=09=
 logstash/files/elasticsearch.yml.sample=0A#=09logstash/files/logstash.in=0A=
 #=0Aecho=20c=20-=20logstash=0Amkdir=20-p=20logstash=20>=20/dev/null=20=
 2>&1=0Aecho=20x=20-=20logstash/distinfo=0Ased=20's/^X//'=20=
 >logstash/distinfo=20<<=20'8a7498b9608da6df76161c7712d9c4de'=0AXSHA256=20=
 (logstash-1.1.1-monolithic.jar)=20=3D=20=
 36f462b50efad0773b3ff94920d1de500faa236cb0d81439110b50b08978444d=0AXSIZE=20=
 (logstash-1.1.1-monolithic.jar)=20=3D=2053813805=0A=
 8a7498b9608da6df76161c7712d9c4de=0Aecho=20x=20-=20logstash/Makefile=0A=
 sed=20's/^X//'=20>logstash/Makefile=20<<=20=
 '58caac783f1d72028817b3f79ec306ec'=0AX#=20$FreeBSD$=0AX=0AXPORTNAME=3D=09=
 logstash=0AXPORTVERSION=3D=091.1.1=0AXCATEGORIES=3D=09sysutils=20java=0A=
 XMASTER_SITES=3D=09http://semicomplete.com/files/logstash/=0AXDISTNAME=3D=09=
 ${PORTNAME}-${PORTVERSION}-monolithic=0AXEXTRACT_SUFX=3D=09.jar=0A=
 XEXTRACT_ONLY=3D=0AX=0AXMAINTAINER=3D=09daniel@ish.com.au=0AXCOMMENT=3D=09=
 Tool=20for=20managing=20events=20and=20logs=0AX=0AXUSE_JAVA=3D=09yes=0A=
 XJAVA_VERSION=3D=091.5+=0AX=0AXNO_BUILD=3D=09yes=0AX=0AXUSE_RC_SUBR=3D=09=
 logstash=0AX=0AXLOGSTASH_HOME?=3D=09${PREFIX}/${PORTNAME}=0A=
 XLOGSTASH_HOME_REL?=3D=09${LOGSTASH_HOME:S,^${PREFIX}/,,}=0A=
 XLOGSTASH_JAR?=3D=09${DISTNAME}${EXTRACT_SUFX}=0AXLOGSTASH_RUN?=3D=09=
 /var/run/${PORTNAME}=0AXLOGSTASH_DATA_DIR?=3D=09/var/db/${PORTNAME}=0AX=0A=
 XSUB_LIST=3D=09LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=20=
 JAVA_HOME=3D${JAVA_HOME}=20\=0AX=09=09LOGSTASH_HOME=3D${LOGSTASH_HOME}=20=
 LOGSTASH_JAR=3D${LOGSTASH_JAR}=0AXPLIST_SUB+=3D=09=
 LOGSTASH_HOME=3D${LOGSTASH_HOME_REL}=20LOGSTASH_JAR=3D${LOGSTASH_JAR}=20=
 \=0AX=09=09LOGSTASH_RUN=3D${LOGSTASH_RUN}=20\=0AX=09=09=
 LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=0AX=0AXdo-install:=0AX=09=
 ${MKDIR}=20${LOGSTASH_RUN}=0AX=09${MKDIR}=20${ETCDIR}=0AX=09${MKDIR}=20=
 ${LOGSTASH_HOME}=0AX=09${MKDIR}=20${LOGSTASH_DATA_DIR}=0AX=09=
 ${INSTALL_DATA}=20${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR}=20=
 ${LOGSTASH_HOME}=0AX=09${INSTALL_DATA}=20=
 ${FILESDIR}/logstash.conf.sample=20${ETCDIR}=0AX=09@if=20[=20!=20-f=20=
 ${ETCDIR}/logstash.conf=20];=20then=20\=0AX=09=09${CP}=20-p=20=
 ${ETCDIR}/logstash.conf.sample=20${ETCDIR}/logstash.conf=20;=20\=0AX=09=
 fi=0AX=09${INSTALL_DATA}=20${FILESDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}=0AX=09@if=20[=20!=20-f=20${ETCDIR}/elasticsearch.yml=20];=20=
 then=20\=0AX=09=09${CP}=20-p=20${ETCDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}/elasticsearch.yml=20;=20\=0AX=09fi=0AX=0AX.include=20=
 <bsd.port.mk>=0A58caac783f1d72028817b3f79ec306ec=0Aecho=20x=20-=20=
 logstash/pkg-descr=0Ased=20's/^X//'=20>logstash/pkg-descr=20<<=20=
 'e951d49595615b1bac2b63587f1fb181'=0AXlogstash=20is=20a=20tool=20for=20=
 managing=20events=20and=20logs.=20You=20can=20use=20it=20to=0AXcollect=20=
 logs,=20parse=20them,=20and=20store=20them=20for=20later=20use=20(like,=20=
 for=0AXsearching).=20Speaking=20of=20searching,=20logstash=20comes=20=
 with=20a=20web=20interface=0AXfor=20searching=20and=20drilling=20into=20=
 all=20of=20your=20logs.=0AX=0AXWWW:=09http://logstash.net/=0A=
 e951d49595615b1bac2b63587f1fb181=0Aecho=20x=20-=20logstash/pkg-plist=0A=
 sed=20's/^X//'=20>logstash/pkg-plist=20<<=20=
 'b88d9aee40fac03c7f8520b4cf627738'=0AX%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%=0A=
 X@exec=20mkdir=20-p=20%%LOGSTASH_RUN%%=0AX@exec=20mkdir=20-p=20=
 %%LOGSTASH_DATA_DIR%%=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/logstash.conf.sample=20%D/%%ETCDIR%%/logstash.conf;=20then=20=
 rm=20-f=20%D/%%ETCDIR%%/logstash.conf;=20fi=0A=
 X%%ETCDIR%%/logstash.conf.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/logstash.conf=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/logstash.conf;=20fi=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/elasticsearch.yml.sample=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20then=20rm=20-f=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20fi=0A=
 X%%ETCDIR%%/elasticsearch.yml.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/elasticsearch.yml=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/elasticsearch.yml;=20fi=0AX@dirrmtry=20%%LOGSTASH_DATA_DIR%%=0A=
 X@dirrmtry=20%%LOGSTASH_HOME%%=0AX@dirrmtry=20%%ETCDIR%%=0AX@dirrmtry=20=
 %%LOGSTASH_RUN%%=0Ab88d9aee40fac03c7f8520b4cf627738=0Aecho=20c=20-=20=
 logstash/files=0Amkdir=20-p=20logstash/files=20>=20/dev/null=202>&1=0A=
 echo=20x=20-=20logstash/files/logstash.conf.sample=0Ased=20's/^X//'=20=
 >logstash/files/logstash.conf.sample=20<<=20=
 '8c0433569bd185de29414aeb59f76651'=0AXinput=20{=0AX=20=20file=20{=0AX=20=20=
 =20=20type=20=3D>=20"system=20logs"=0AX=0AX=20=20#=20=20#=20Wildcards=20=
 work,=20here=20:)=0AX=20=20#=20=20path=20=3D>=20[=20"/var/log/*.log",=20=
 "/var/log/messages",=20"/var/log/syslog"=20]=0AX=20=20=20=20path=20=3D>=20=
 [=20"/var/log/messages"=20]=0AX=20=20}=0AX=0AX=20=20#file=20{=0AX=20=20#=20=
 =20type=20=3D>=20"Hudson-access"=0AX=20=20#=20=20path=20=3D>=20=
 "/var/log/www/hudson.ish.com.au-access_log"=0AX=20=20#}=0AX=0AX=20=20=
 #file=20{=0AX=20=20#=20=20=20=20=20=20=20=20=20=20type=20=3D>=20"Syslog"=0A=
 X=20=20#=20=20path=20=3D>=20"/var/log/messages"=0AX=20=20#}=0AX}=0AX=0A=
 Xoutput=20{=0AX=20=20#=20Emit=20events=20to=20stdout=20for=20easy=20=
 debugging=20of=20what=20is=20going=20through=0AX=20=20#=20logstash.=0AX=20=
 =20#stdout=20{=20}=0AX=0AX=20=20#=20This=20will=20use=20elasticsearch=20=
 to=20store=20your=20logs.=0AX=20=20#=20The=20'embedded'=20option=20will=20=
 cause=20logstash=20to=20run=20the=20elasticsearch=0AX=20=20#=20server=20=
 in=20the=20same=20process,=20so=20you=20don't=20have=20to=20worry=20=
 about=0AX=20=20#=20how=20to=20download,=20configure,=20or=20run=20=
 elasticsearch!=0AX=20=20elasticsearch=20{=20=0AX=20=20=20=20=20embedded=20=
 =3D>=20true=0AX=20=20=20=20=20#embedded_http_port=20=3D>=209200=0AX=20=20=
 =20=20=20#cluster=20=3D>=20elasticsearch=0AX=20=20=20=20=20#host=20=3D>=20=
 host=0AX=20=20=20=20=20#port=20=3D>=20port=0AX=20=20=20=20=20=20=0AX=20=20=
 }=0AX}=0A8c0433569bd185de29414aeb59f76651=0Aecho=20x=20-=20=
 logstash/files/elasticsearch.yml.sample=0Ased=20's/^X//'=20=
 >logstash/files/elasticsearch.yml.sample=20<<=20=
 '598eb73269d83d65a71b10e972503bc9'=0AX#####################=20=
 ElasticSearch=20Configuration=20Example=20#####################=0AX=0AX#=20=
 This=20file=20contains=20an=20overview=20of=20various=20configuration=20=
 settings,=0AX#=20targeted=20at=20operations=20staff.=20Application=20=
 developers=20should=0AX#=20consult=20the=20guide=20at=20=
 <http://elasticsearch.org/guide>.=0AX#=0AX#=20The=20installation=20=
 procedure=20is=20covered=20at=0AX#=20=
 <http://elasticsearch.org/guide/reference/setup/installation.html>.=0AX#=0A=
 X#=20ElasticSearch=20comes=20with=20reasonable=20defaults=20for=20most=20=
 settings,=0AX#=20so=20you=20can=20try=20it=20out=20without=20bothering=20=
 with=20configuration.=0AX#=0AX#=20Most=20of=20the=20time,=20these=20=
 defaults=20are=20just=20fine=20for=20running=20a=20production=0AX#=20=
 cluster.=20If=20you're=20fine-tuning=20your=20cluster,=20or=20wondering=20=
 about=20the=0AX#=20effect=20of=20certain=20configuration=20option,=20=
 please=20_do=20ask_=20on=20the=0AX#=20mailing=20list=20or=20IRC=20=
 channel=20[http://elasticsearch.org/community].=0AX=0AX#=20Any=20element=20=
 in=20the=20configuration=20can=20be=20replaced=20with=20environment=20=
 variables=0AX#=20by=20placing=20them=20in=20${...}=20notation.=20For=20=
 example:=0AX#=0AX#=20node.rack:=20${RACK_ENV_VAR}=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/setup/configuration.html>=0AX#=20=
 for=20information=20on=20supported=20formats=20and=20syntax=20for=20the=20=
 configuration=20file.=0AX=0AX=0AX###################################=20=
 Cluster=20###################################=0AX=0AX#=20Cluster=20name=20=
 identifies=20your=20cluster=20for=20auto-discovery.=20If=20you're=20=
 running=0AX#=20multiple=20clusters=20on=20the=20same=20network,=20make=20=
 sure=20you're=20using=20unique=20names.=0AX#=0AX#=20cluster.name:=20=
 elasticsearch=0AX=0AX=0AX####################################=20Node=20=
 #####################################=0AX=0AX#=20Node=20names=20are=20=
 generated=20dynamically=20on=20startup,=20so=20you're=20relieved=0AX#=20=
 from=20configuring=20them=20manually.=20You=20can=20tie=20this=20node=20=
 to=20a=20specific=20name:=0AX#=0AX#=20node.name:=20"Franz=20Kafka"=0AX=0A=
 X#=20Every=20node=20can=20be=20configured=20to=20allow=20or=20deny=20=
 being=20eligible=20as=20the=20master,=0AX#=20and=20to=20allow=20or=20=
 deny=20to=20store=20the=20data.=0AX#=0AX#=20Allow=20this=20node=20to=20=
 be=20eligible=20as=20a=20master=20node=20(enabled=20by=20default):=0AX#=0A=
 X#=20node.master:=20true=0AX#=0AX#=20Allow=20this=20node=20to=20store=20=
 data=20(enabled=20by=20default):=0AX#=0AX#=20node.data:=20true=0AX=0AX#=20=
 You=20can=20exploit=20these=20settings=20to=20design=20advanced=20=
 cluster=20topologies.=0AX#=0AX#=201.=20You=20want=20this=20node=20to=20=
 never=20become=20a=20master=20node,=20only=20to=20hold=20data.=0AX#=20=20=
 =20=20This=20will=20be=20the=20"workhorse"=20of=20your=20cluster.=0AX#=0A=
 X#=20node.master:=20false=0AX#=20node.data:=20true=0AX#=0AX#=202.=20You=20=
 want=20this=20node=20to=20only=20serve=20as=20a=20master:=20to=20not=20=
 store=20any=20data=20and=0AX#=20=20=20=20to=20have=20free=20resources.=20=
 This=20will=20be=20the=20"coordinator"=20of=20your=20cluster.=0AX#=0AX#=20=
 node.master:=20true=0AX#=20node.data:=20false=0AX#=0AX#=203.=20You=20=
 want=20this=20node=20to=20be=20neither=20master=20nor=20data=20node,=20=
 but=0AX#=20=20=20=20to=20act=20as=20a=20"search=20load=20balancer"=20=
 (fetching=20data=20from=20nodes,=0AX#=20=20=20=20aggregating=20results,=20=
 etc.)=0AX#=0AX#=20node.master:=20false=0AX#=20node.data:=20false=0AX=0A=
 X#=20Use=20the=20Cluster=20Health=20API=20=
 [http://localhost:9200/_cluster/health],=20the=0AX#=20Node=20Info=20API=20=
 [http://localhost:9200/_cluster/nodes]=20or=20GUI=20tools=0AX#=20such=20=
 as=20<http://github.com/lukas-vlcek/bigdesk>=20and=0AX#=20=
 <http://mobz.github.com/elasticsearch-head>=20to=20inspect=20the=20=
 cluster=20state.=0AX=0AX#=20A=20node=20can=20have=20generic=20attributes=20=
 associated=20with=20it,=20which=20can=20later=20be=20used=0AX#=20for=20=
 customized=20shard=20allocation=20filtering,=20or=20allocation=20=
 awareness.=20An=20attribute=0AX#=20is=20a=20simple=20key=20value=20pair,=20=
 similar=20to=20node.key:=20value,=20here=20is=20an=20example:=0AX#=0AX#=20=
 node.rack:=20rack314=0AX=0AX=0AX####################################=20=
 Index=20####################################=0AX=0AX#=20You=20can=20set=20=
 a=20number=20of=20options=20(such=20as=20shard/replica=20options,=20=
 mapping=0AX#=20or=20analyzer=20definitions,=20translog=20settings,=20=
 ...)=20for=20indices=20globally,=0AX#=20in=20this=20file.=0AX#=0AX#=20=
 Note,=20that=20it=20makes=20more=20sense=20to=20configure=20index=20=
 settings=20specifically=20for=0AX#=20a=20certain=20index,=20either=20=
 when=20creating=20it=20or=20by=20using=20the=20index=20templates=20API.=0A=
 X#=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/index-modules/>=20and=0AX#=20=
 <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.h=
 tml>=0AX#=20for=20more=20information.=0AX=0AX#=20Set=20the=20number=20of=20=
 shards=20(splits)=20of=20an=20index=20(5=20by=20default):=0AX#=0AX#=20=
 index.number_of_shards:=205=0AX=0AX#=20Set=20the=20number=20of=20=
 replicas=20(additional=20copies)=20of=20an=20index=20(1=20by=20default):=0A=
 X#=0AX#=20index.number_of_replicas:=201=0AX=0AX#=20Note,=20that=20for=20=
 development=20on=20a=20local=20machine,=20with=20small=20indices,=20it=20=
 usually=0AX#=20makes=20sense=20to=20"disable"=20the=20distributed=20=
 features:=0AX#=0AX#=20index.number_of_shards:=201=0AX#=20=
 index.number_of_replicas:=200=0AX=0AX#=20These=20settings=20directly=20=
 affect=20the=20performance=20of=20index=20and=20search=20operations=0AX#=20=
 in=20your=20cluster.=20Assuming=20you=20have=20enough=20machines=20to=20=
 hold=20shards=20and=0AX#=20replicas,=20the=20rule=20of=20thumb=20is:=0A=
 X#=0AX#=201.=20Having=20more=20*shards*=20enhances=20the=20_indexing_=20=
 performance=20and=20allows=20to=0AX#=20=20=20=20_distribute_=20a=20big=20=
 index=20across=20machines.=0AX#=202.=20Having=20more=20*replicas*=20=
 enhances=20the=20_search_=20performance=20and=20improves=20the=0AX#=20=20=
 =20=20cluster=20_availability_.=0AX#=0AX#=20The=20"number_of_shards"=20=
 is=20a=20one-time=20setting=20for=20an=20index.=0AX#=0AX#=20The=20=
 "number_of_replicas"=20can=20be=20increased=20or=20decreased=20anytime,=0A=
 X#=20by=20using=20the=20Index=20Update=20Settings=20API.=0AX#=0AX#=20=
 ElasticSearch=20takes=20care=20about=20load=20balancing,=20relocating,=20=
 gathering=20the=0AX#=20results=20from=20nodes,=20etc.=20Experiment=20=
 with=20different=20settings=20to=20fine-tune=0AX#=20your=20setup.=0AX=0A=
 X#=20Use=20the=20Index=20Status=20API=20=
 (<http://localhost:9200/A/_status>)=20to=20inspect=0AX#=20the=20index=20=
 status.=0AX=0AX=0AX####################################=20Paths=20=
 ####################################=0AX=0AX#=20Path=20to=20directory=20=
 containing=20configuration=20(this=20file=20and=20logging.yml):=0AX#=0A=
 X#=20path.conf:=20/path/to/conf=0AX=0AX#=20Path=20to=20directory=20where=20=
 to=20store=20index=20data=20allocated=20for=20this=20node.=0AX#=0AX#=20=
 path.data:=20/path/to/data=0AX#=0AX#=20Can=20optionally=20include=20more=20=
 than=20one=20location,=20causing=20data=20to=20be=20striped=20across=0A=
 X#=20the=20locations=20(=C3=83=C2=83=C3=82=C2=A0=20la=20RAID=200)=20on=20=
 a=20file=20level,=20favouring=20locations=20with=20most=20free=0AX#=20=
 space=20on=20creation.=20For=20example:=0AX#=0AX#=20path.data:=20=
 /path/to/data1,/path/to/data2=0AX=0AX#=20Path=20to=20temporary=20files:=0A=
 X#=0AX#=20path.work:=20/path/to/work=0AX=0AX#=20Path=20to=20log=20files:=0A=
 X#=0AX#=20path.logs:=20/path/to/logs=0AX=0AX#=20Path=20to=20where=20=
 plugins=20are=20installed:=0AX#=0AX#=20path.plugins:=20/path/to/plugins=0A=
 X=0AX=0AX###################################=20Memory=20=
 ####################################=0AX=0AX#=20ElasticSearch=20performs=20=
 poorly=20when=20JVM=20starts=20swapping:=20you=20should=20ensure=20that=0A=
 X#=20it=20_never_=20swaps.=0AX#=0AX#=20Set=20this=20property=20to=20true=20=
 to=20lock=20the=20memory:=0AX#=0AX#=20bootstrap.mlockall:=20true=0AX=0A=
 X#=20Make=20sure=20that=20the=20ES_MIN_MEM=20and=20ES_MAX_MEM=20=
 environment=20variables=20are=20set=0AX#=20to=20the=20same=20value,=20=
 and=20that=20the=20machine=20has=20enough=20memory=20to=20allocate=0AX#=20=
 for=20ElasticSearch,=20leaving=20enough=20memory=20for=20the=20operating=20=
 system=20itself.=0AX#=0AX#=20You=20should=20also=20make=20sure=20that=20=
 the=20ElasticSearch=20process=20is=20allowed=20to=20lock=0AX#=20the=20=
 memory,=20eg.=20by=20using=20`ulimit=20-l=20unlimited`.=0AX=0AX=0A=
 X##############################=20Network=20And=20HTTP=20=
 ###############################=0AX=0AX#=20ElasticSearch,=20by=20=
 default,=20binds=20itself=20to=20the=200.0.0.0=20address,=20and=20=
 listens=0AX#=20on=20port=20[9200-9300]=20for=20HTTP=20traffic=20and=20on=20=
 port=20[9300-9400]=20for=20node-to-node=0AX#=20communication.=20(the=20=
 range=20means=20that=20if=20the=20port=20is=20busy,=20it=20will=20=
 automatically=0AX#=20try=20the=20next=20port).=0AX=0AX#=20Set=20the=20=
 bind=20address=20specifically=20(IPv4=20or=20IPv6):=0AX#=0AX#=20=
 network.bind_host:=20192.168.0.1=0AX=0AX#=20Set=20the=20address=20other=20=
 nodes=20will=20use=20to=20communicate=20with=20this=20node.=20If=20not=0A=
 X#=20set,=20it=20is=20automatically=20derived.=20It=20must=20point=20to=20=
 an=20actual=20IP=20address.=0AX#=0AX#=20network.publish_host:=20=
 192.168.0.1=0AX=0AX#=20Set=20both=20'bind_host'=20and=20'publish_host':=0A=
 X#=0AX#=20network.host:=20192.168.0.1=0AX=0AX#=20Set=20a=20custom=20port=20=
 for=20the=20node=20to=20node=20communication=20(9300=20by=20default):=0A=
 X#=0AX#=20transport.port:=209300=0AX=0AX#=20Enable=20compression=20for=20=
 all=20communication=20between=20nodes=20(disabled=20by=20default):=0AX#=0A=
 X#=20transport.tcp.compress:=20true=0AX=0AX#=20Set=20a=20custom=20port=20=
 to=20listen=20for=20HTTP=20traffic:=0AX#=0AX#=20http.port:=209200=0AX=0A=
 X#=20Set=20a=20custom=20allowed=20content=20length:=0AX#=0AX#=20=
 http.max_content_length:=20100mb=0AX=0AX#=20Disable=20HTTP=20completely:=0A=
 X#=0AX#=20http.enabled:=20false=0AX=0AX=0A=
 X###################################=20Gateway=20=
 ###################################=0AX=0AX#=20The=20gateway=20allows=20=
 for=20persisting=20the=20cluster=20state=20between=20full=20cluster=0AX#=20=
 restarts.=20Every=20change=20to=20the=20state=20(such=20as=20adding=20an=20=
 index)=20will=20be=20stored=0AX#=20in=20the=20gateway,=20and=20when=20=
 the=20cluster=20starts=20up=20for=20the=20first=20time,=0AX#=20it=20will=20=
 read=20its=20state=20from=20the=20gateway.=0AX=0AX#=20There=20are=20=
 several=20types=20of=20gateway=20implementations.=20For=20more=20=
 information,=0AX#=20see=20=
 <http://elasticsearch.org/guide/reference/modules/gateway>.=0AX=0AX#=20=
 The=20default=20gateway=20type=20is=20the=20"local"=20gateway=20=
 (recommended):=0AX#=0AX#=20gateway.type:=20local=0AX=0AX#=20Settings=20=
 below=20control=20how=20and=20when=20to=20start=20the=20initial=20=
 recovery=20process=20on=0AX#=20a=20full=20cluster=20restart=20(to=20=
 reuse=20as=20much=20local=20data=20as=20possible).=0AX=0AX#=20Allow=20=
 recovery=20process=20after=20N=20nodes=20in=20a=20cluster=20are=20up:=0A=
 X#=0AX#=20gateway.recover_after_nodes:=201=0AX=0AX#=20Set=20the=20=
 timeout=20to=20initiate=20the=20recovery=20process,=20once=20the=20N=20=
 nodes=0AX#=20from=20previous=20setting=20are=20up=20(accepts=20time=20=
 value):=0AX#=0AX#=20gateway.recover_after_time:=205m=0AX=0AX#=20Set=20=
 how=20many=20nodes=20are=20expected=20in=20this=20cluster.=20Once=20=
 these=20N=20nodes=0AX#=20are=20up,=20begin=20recovery=20process=20=
 immediately:=0AX#=0AX#=20gateway.expected_nodes:=202=0AX=0AX=0A=
 X#############################=20Recovery=20Throttling=20=
 #############################=0AX=0AX#=20These=20settings=20allow=20to=20=
 control=20the=20process=20of=20shards=20allocation=20between=0AX#=20=
 nodes=20during=20initial=20recovery,=20replica=20allocation,=20=
 rebalancing,=0AX#=20or=20when=20adding=20and=20removing=20nodes.=0AX=0A=
 X#=20Set=20the=20number=20of=20concurrent=20recoveries=20happening=20on=20=
 a=20node:=0AX#=0AX#=201.=20During=20the=20initial=20recovery=0AX#=0AX#=20=
 cluster.routing.allocation.node_initial_primaries_recoveries:=204=0AX#=0A=
 X#=202.=20During=20adding/removing=20nodes,=20rebalancing,=20etc=0AX#=0A=
 X#=20cluster.routing.allocation.node_concurrent_recoveries:=202=0AX=0AX#=20=
 Set=20to=20throttle=20throughput=20when=20recovering=20(eg.=20100mb,=20=
 by=20default=20unlimited):=0AX#=0AX#=20=
 indices.recovery.max_size_per_sec:=200=0AX=0AX#=20Set=20to=20limit=20the=20=
 number=20of=20open=20concurrent=20streams=20when=0AX#=20recovering=20a=20=
 shard=20from=20a=20peer:=0AX#=0AX#=20=
 indices.recovery.concurrent_streams:=205=0AX=0AX=0A=
 X##################################=20Discovery=20=
 ##################################=0AX=0AX#=20Discovery=20infrastructure=20=
 ensures=20nodes=20can=20be=20found=20within=20a=20cluster=0AX#=20and=20=
 master=20node=20is=20elected.=20Multicast=20discovery=20is=20the=20=
 default.=0AX=0AX#=20Set=20to=20ensure=20a=20node=20sees=20N=20other=20=
 master=20eligible=20nodes=20to=20be=20considered=0AX#=20operational=20=
 within=20the=20cluster.=20Set=20this=20option=20to=20a=20higher=20value=20=
 (2-4)=0AX#=20for=20large=20clusters:=0AX#=0AX#=20=
 discovery.zen.minimum_master_nodes:=201=0AX=0AX#=20Set=20the=20time=20to=20=
 wait=20for=20ping=20responses=20from=20other=20nodes=20when=20=
 discovering.=0AX#=20Set=20this=20option=20to=20a=20higher=20value=20on=20=
 a=20slow=20or=20congested=20network=0AX#=20to=20minimize=20discovery=20=
 failures:=0AX#=0AX#=20discovery.zen.ping.timeout:=203s=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>=0A=
 X#=20for=20more=20information.=0AX=0AX#=20Unicast=20discovery=20allows=20=
 to=20explicitly=20control=20which=20nodes=20will=20be=20used=0AX#=20to=20=
 discover=20the=20cluster.=20It=20can=20be=20used=20when=20multicast=20is=20=
 not=20present,=0AX#=20or=20to=20restrict=20the=20cluster=20=
 communication-wise.=0AX#=0AX#=201.=20Disable=20multicast=20discovery=20=
 (enabled=20by=20default):=0AX#=0AX#=20=
 discovery.zen.ping.multicast.enabled:=20false=0AX#=0AX#=202.=20Configure=20=
 an=20initial=20list=20of=20master=20nodes=20in=20the=20cluster=0AX#=20=20=
 =20=20to=20perform=20discovery=20when=20new=20nodes=20(master=20or=20=
 data)=20are=20started:=0AX#=0AX#=20discovery.zen.ping.unicast.hosts:=20=
 ["host1",=20"host2:port",=20"host3[portX-portY]"]=0AX=0AX#=20EC2=20=
 discovery=20allows=20to=20use=20AWS=20EC2=20API=20in=20order=20to=20=
 perform=20discovery.=0AX#=0AX#=20You=20have=20to=20install=20the=20=
 cloud-aws=20plugin=20for=20enabling=20the=20EC2=20discovery.=0AX#=0AX#=20=
 See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>=0A=
 X#=20for=20more=20information.=0AX#=0AX#=20See=20=
 <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>=0A=
 X#=20for=20a=20step-by-step=20tutorial.=0AX=0AX=0A=
 X##################################=20Slow=20Log=20=
 ##################################=0AX=0AX#=20Shard=20level=20query=20=
 and=20fetch=20threshold=20logging.=0AX=0AX#index.search.slowlog.level:=20=
 TRACE=0AX#index.search.slowlog.threshold.query.warn:=2010s=0A=
 X#index.search.slowlog.threshold.query.info:=205s=0A=
 X#index.search.slowlog.threshold.query.debug:=202s=0A=
 X#index.search.slowlog.threshold.query.trace:=20500ms=0AX=0A=
 X#index.search.slowlog.threshold.fetch.warn:=201s=0A=
 X#index.search.slowlog.threshold.fetch.info:=20800ms=0A=
 X#index.search.slowlog.threshold.fetch.debug:=20500ms=0A=
 X#index.search.slowlog.threshold.fetch.trace:=20200ms=0A=
 598eb73269d83d65a71b10e972503bc9=0Aecho=20x=20-=20=
 logstash/files/logstash.in=0Ased=20's/^X//'=20=
 >logstash/files/logstash.in=20<<=20'0f1ca7b587c13466a7f3a6fad7064657'=0A=
 X#!/bin/sh=0AX=0AX#=20$FreeBSD:=0AX#=20PROVIDE:=20logstash=0AX#=20=
 REQUIRE:=20LOGIN=0AX#=20KEYWORD:=20shutdown=0AX=0AX#=0AX#=20=
 Configuration=20settings=20for=20logstash=20in=20/etc/rc.conf:=0AX#=0AX#=20=
 logstash_enable=20(bool):=0AX#=20=20=20Set=20to=20"NO"=20by=20default.=0A=
 X#=20=20=20Set=20it=20to=20"YES"=20to=20enable=20logstash=0AX#=0AX#=20=
 logstash_mode=20:=0AX#=20=20=20Set=20to=20"standalone"=20by=20default.=0A=
 X#=20=20=20Valid=20options:=0AX#=20=20=20=20=20"standalone":=20agent,=20=
 web=20&=20elasticsearch=0AX#=20=20=20=20=20"web":=20Starts=20logstash=20=
 as=20a=20web=20ui=0AX#=20=20=20=20=20"agent":=20Justs=20works=20as=20a=20=
 log=20shipper=20=0AX#=0AX#=20logstash_logging=20(bool):=0AX#=20=20=20Set=20=
 to=20"NO"=20by=20default.=0AX#=20=20=20Set=20it=20to=20"YES"=20to=20=
 enable=20logstash=20logging=20to=20file=0AX#=20=20=20Default=20output=20=
 to=20/var/log/logstash.log=0AX#=0AX=0AX.=20/etc/rc.subr=0AX=0A=
 Xname=3D"logstash"=0AXrcvar=3Dlogstash_enable=0AX=0A=
 Xpiddir=3D"/var/run/${name}"=0AXpidfile=3D"${piddir}/${name}.pid"=0AX=0A=
 Xif=20[=20-d=20$piddir=20];=20then=0AX=09mkdir=20-p=20$piddir=0AXfi=0AX=0A=
 Xlogdir=3D"/var/log"=0AXcommand=3D"/usr/sbin/daemon"=0AX=0A=
 Xload_rc_config=20"${name}"=0AX=0AX:=20${logstash_enable=3D"NO"}=0AX:=20=
 ${logstash_home=3D"%%LOGSTASH_HOME%%"}=0AX:=20=
 ${logstash_config=3D"%%PREFIX%%/etc/${name}/${name}.conf"}=0AX:=20=
 ${logstash_jar=3D"%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}=0AX:=20=
 ${logstash_java_home=3D"%%JAVA_HOME%%"}=0AX:=20${logstash_log=3D"NO"}=0A=
 X:=20${logstash_mode=3D"standalone"}=0AX:=20${logstash_port=3D"9292"}=0A=
 X:=20${logstash_elastic_backend=3D""}=0AX:=20=
 ${logstash_log_file=3D"${logdir}/${name}.log"}=0AX:=20=
 ${logstash_elastic_datadir=3D"%%LOGSTASH_DATA_DIR%%"}=0AX=0A=
 Xjava_cmd=3D"${logstash_java_home}/bin/java"=0AXprocname=3D"${java_cmd}"=0A=
 X=0AXlogstash_chdir=3D${logstash_home}=0AXlogstash_log_options=3D""=0A=
 Xlogstash_elastic_options=3D""=0AX=0AXif=20[=20${logstash_log}=20=3D=3D=20=
 "YES"=20];=20then=0AX=09logstash_log_options=3D"=20--log=20=
 ${logstash_log_file}"=20=0AXfi=0AX=0AXif=20[=20${logstash_mode}=20=3D=3D=20=
 "standalone"=20];=20then=0AX=09logstash_args=3D"agent=20-f=20=
 ${logstash_config}=20--=20web=20--port=20${logstash_port}=20--backend=20=
 elasticsearch:///?local=20${logstash_log_options}"=0AX=09=
 logstash_elastic_options=3D"=20=
 -Des.path.data=3D${logstash_elastic_datadir}"=0AXelif=20[=20=
 ${logstash_mode}=20=3D=3D=20"agent"=20];then=0AX=09logstash_args=3D"agent=20=
 -f=20${logstash_config}=20${logstash_log_options}"=0AXelif=20[=20=
 ${logstash_mode}=20=3D=3D=20"web"=20];then=0AX=09logstash_args=3D"web=20=
 --port=20${logstash_port}=20--backend=20=
 elasticsearch://${logstash_elastic_backend}/=20${logstash_log_options}"=0A=
 Xfi=0AX=0AXcommand_args=3D"-f=20-p=20${pidfile}=20${java_cmd}=20=
 ${logstash_elastic_options}=20-jar=20${logstash_jar}=20${logstash_args}"=0A=
 Xrequired_files=3D"${java_cmd}=20${logstash_config}"=0AX=0A=
 Xrun_rc_command=20"$1"=0A0f1ca7b587c13466a7f3a6fad7064657=0Aexit=0A=0A=
 
 --Apple-Mail=_5DBA56F5-6601-44C8-A39F-C15CB61FE666
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain;
 	charset=us-ascii
 
 
 
 
 --Apple-Mail=_5DBA56F5-6601-44C8-A39F-C15CB61FE666--
Responsible-Changed-From-To: freebsd-ports-bugs->madpilot 
Responsible-Changed-By: madpilot 
Responsible-Changed-When: Mon Jul 8 21:45:48 UTC 2013 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 

From: "Regis A. Despres" <regis.despres@gmail.com>
To: bug-followup@FreeBSD.org
Cc: Guido Falsi <madpilot@FreeBSD.org>,
 "daniel@ish.com.au" <daniel@ish.com.au>
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Tue, 9 Jul 2013 00:52:37 +0200

 --Apple-Mail=_C458E8B0-DA61-4FB5-A933-0F21F817CF7A
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=us-ascii
 
 Hello hello,
 
 In case of non response from Daniel, i'll go maintain this one as it's =
 stands for a really useful sysadmin tool.
 Attached shar updated accordingly.
 
 Regards,
 
 
 
 --=20
 Regis A. Despres
 
 
 --Apple-Mail=_C458E8B0-DA61-4FB5-A933-0F21F817CF7A
 Content-Disposition: attachment;
 	filename=logstash.shar
 Content-Type: application/octet-stream;
 	name="logstash.shar"
 Content-Transfer-Encoding: quoted-printable
 
 #=20This=20is=20a=20shell=20archive.=20=20Save=20it=20in=20a=20file,=20=
 remove=20anything=20before=0A#=20this=20line,=20and=20then=20unpack=20it=20=
 by=20entering=20"sh=20file".=20=20Note,=20it=20may=0A#=20create=20=
 directories;=20files=20and=20directories=20will=20be=20owned=20by=20you=20=
 and=0A#=20have=20default=20permissions.=0A#=0A#=20This=20archive=20=
 contains:=0A#=0A#=09logstash=0A#=09logstash/distinfo=0A#=09=
 logstash/Makefile=0A#=09logstash/pkg-descr=0A#=09logstash/pkg-plist=0A#=09=
 logstash/files=0A#=09logstash/files/logstash.conf.sample=0A#=09=
 logstash/files/elasticsearch.yml.sample=0A#=09logstash/files/logstash.in=0A=
 #=0Aecho=20c=20-=20logstash=0Amkdir=20-p=20logstash=20>=20/dev/null=20=
 2>&1=0Aecho=20x=20-=20logstash/distinfo=0Ased=20's/^X//'=20=
 >logstash/distinfo=20<<=20'8a7498b9608da6df76161c7712d9c4de'=0AXSHA256=20=
 (logstash-1.1.1-monolithic.jar)=20=3D=20=
 36f462b50efad0773b3ff94920d1de500faa236cb0d81439110b50b08978444d=0AXSIZE=20=
 (logstash-1.1.1-monolithic.jar)=20=3D=2053813805=0A=
 8a7498b9608da6df76161c7712d9c4de=0Aecho=20x=20-=20logstash/Makefile=0A=
 sed=20's/^X//'=20>logstash/Makefile=20<<=20=
 '58caac783f1d72028817b3f79ec306ec'=0AX#=20$FreeBSD$=0AX=0AXPORTNAME=3D=09=
 logstash=0AXPORTVERSION=3D=091.1.1=0AXCATEGORIES=3D=09sysutils=20java=0A=
 XMASTER_SITES=3D=09http://semicomplete.com/files/logstash/=0AXDISTNAME=3D=09=
 ${PORTNAME}-${PORTVERSION}-monolithic=0AXEXTRACT_SUFX=3D=09.jar=0A=
 XEXTRACT_ONLY=3D=0AX=0AXMAINTAINER=3D=09regis.despres@gmail.com=0A=
 XCOMMENT=3D=09Tool=20for=20managing=20events=20and=20logs=0AX=0A=
 XUSE_JAVA=3D=09yes=0AXJAVA_VERSION=3D=091.5+=0AX=0AXNO_BUILD=3D=09yes=0A=
 X=0AXUSE_RC_SUBR=3D=09logstash=0AX=0AXLOGSTASH_HOME?=3D=09=
 ${PREFIX}/${PORTNAME}=0AXLOGSTASH_HOME_REL?=3D=09=
 ${LOGSTASH_HOME:S,^${PREFIX}/,,}=0AXLOGSTASH_JAR?=3D=09=
 ${DISTNAME}${EXTRACT_SUFX}=0AXLOGSTASH_RUN?=3D=09/var/run/${PORTNAME}=0A=
 XLOGSTASH_DATA_DIR?=3D=09/var/db/${PORTNAME}=0AX=0AXSUB_LIST=3D=09=
 LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=20JAVA_HOME=3D${JAVA_HOME}=20\=0A=
 X=09=09LOGSTASH_HOME=3D${LOGSTASH_HOME}=20LOGSTASH_JAR=3D${LOGSTASH_JAR}=0A=
 XPLIST_SUB+=3D=09LOGSTASH_HOME=3D${LOGSTASH_HOME_REL}=20=
 LOGSTASH_JAR=3D${LOGSTASH_JAR}=20\=0AX=09=09LOGSTASH_RUN=3D${LOGSTASH_RUN}=
 =20\=0AX=09=09LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=0AX=0A=
 Xdo-install:=0AX=09${MKDIR}=20${LOGSTASH_RUN}=0AX=09${MKDIR}=20${ETCDIR}=0A=
 X=09${MKDIR}=20${LOGSTASH_HOME}=0AX=09${MKDIR}=20${LOGSTASH_DATA_DIR}=0A=
 X=09${INSTALL_DATA}=20${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR}=20=
 ${LOGSTASH_HOME}=0AX=09${INSTALL_DATA}=20=
 ${FILESDIR}/logstash.conf.sample=20${ETCDIR}=0AX=09@if=20[=20!=20-f=20=
 ${ETCDIR}/logstash.conf=20];=20then=20\=0AX=09=09${CP}=20-p=20=
 ${ETCDIR}/logstash.conf.sample=20${ETCDIR}/logstash.conf=20;=20\=0AX=09=
 fi=0AX=09${INSTALL_DATA}=20${FILESDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}=0AX=09@if=20[=20!=20-f=20${ETCDIR}/elasticsearch.yml=20];=20=
 then=20\=0AX=09=09${CP}=20-p=20${ETCDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}/elasticsearch.yml=20;=20\=0AX=09fi=0AX=0AX.include=20=
 <bsd.port.mk>=0A58caac783f1d72028817b3f79ec306ec=0Aecho=20x=20-=20=
 logstash/pkg-descr=0Ased=20's/^X//'=20>logstash/pkg-descr=20<<=20=
 'e951d49595615b1bac2b63587f1fb181'=0AXlogstash=20is=20a=20tool=20for=20=
 managing=20events=20and=20logs.=20You=20can=20use=20it=20to=0AXcollect=20=
 logs,=20parse=20them,=20and=20store=20them=20for=20later=20use=20(like,=20=
 for=0AXsearching).=20Speaking=20of=20searching,=20logstash=20comes=20=
 with=20a=20web=20interface=0AXfor=20searching=20and=20drilling=20into=20=
 all=20of=20your=20logs.=0AX=0AXWWW:=09http://logstash.net/=0A=
 e951d49595615b1bac2b63587f1fb181=0Aecho=20x=20-=20logstash/pkg-plist=0A=
 sed=20's/^X//'=20>logstash/pkg-plist=20<<=20=
 'b88d9aee40fac03c7f8520b4cf627738'=0AX%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%=0A=
 X@exec=20mkdir=20-p=20%%LOGSTASH_RUN%%=0AX@exec=20mkdir=20-p=20=
 %%LOGSTASH_DATA_DIR%%=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/logstash.conf.sample=20%D/%%ETCDIR%%/logstash.conf;=20then=20=
 rm=20-f=20%D/%%ETCDIR%%/logstash.conf;=20fi=0A=
 X%%ETCDIR%%/logstash.conf.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/logstash.conf=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/logstash.conf;=20fi=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/elasticsearch.yml.sample=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20then=20rm=20-f=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20fi=0A=
 X%%ETCDIR%%/elasticsearch.yml.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/elasticsearch.yml=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/elasticsearch.yml;=20fi=0AX@dirrmtry=20%%LOGSTASH_DATA_DIR%%=0A=
 X@dirrmtry=20%%LOGSTASH_HOME%%=0AX@dirrmtry=20%%ETCDIR%%=0AX@dirrmtry=20=
 %%LOGSTASH_RUN%%=0Ab88d9aee40fac03c7f8520b4cf627738=0Aecho=20c=20-=20=
 logstash/files=0Amkdir=20-p=20logstash/files=20>=20/dev/null=202>&1=0A=
 echo=20x=20-=20logstash/files/logstash.conf.sample=0Ased=20's/^X//'=20=
 >logstash/files/logstash.conf.sample=20<<=20=
 '8c0433569bd185de29414aeb59f76651'=0AXinput=20{=0AX=20=20file=20{=0AX=20=20=
 =20=20type=20=3D>=20"system=20logs"=0AX=0AX=20=20#=20=20#=20Wildcards=20=
 work,=20here=20:)=0AX=20=20#=20=20path=20=3D>=20[=20"/var/log/*.log",=20=
 "/var/log/messages",=20"/var/log/syslog"=20]=0AX=20=20=20=20path=20=3D>=20=
 [=20"/var/log/messages"=20]=0AX=20=20}=0AX=0AX=20=20#file=20{=0AX=20=20#=20=
 =20type=20=3D>=20"Hudson-access"=0AX=20=20#=20=20path=20=3D>=20=
 "/var/log/www/hudson.ish.com.au-access_log"=0AX=20=20#}=0AX=0AX=20=20=
 #file=20{=0AX=20=20#=20=20=20=20=20=20=20=20=20=20type=20=3D>=20"Syslog"=0A=
 X=20=20#=20=20path=20=3D>=20"/var/log/messages"=0AX=20=20#}=0AX}=0AX=0A=
 Xoutput=20{=0AX=20=20#=20Emit=20events=20to=20stdout=20for=20easy=20=
 debugging=20of=20what=20is=20going=20through=0AX=20=20#=20logstash.=0AX=20=
 =20#stdout=20{=20}=0AX=0AX=20=20#=20This=20will=20use=20elasticsearch=20=
 to=20store=20your=20logs.=0AX=20=20#=20The=20'embedded'=20option=20will=20=
 cause=20logstash=20to=20run=20the=20elasticsearch=0AX=20=20#=20server=20=
 in=20the=20same=20process,=20so=20you=20don't=20have=20to=20worry=20=
 about=0AX=20=20#=20how=20to=20download,=20configure,=20or=20run=20=
 elasticsearch!=0AX=20=20elasticsearch=20{=20=0AX=20=20=20=20=20embedded=20=
 =3D>=20true=0AX=20=20=20=20=20#embedded_http_port=20=3D>=209200=0AX=20=20=
 =20=20=20#cluster=20=3D>=20elasticsearch=0AX=20=20=20=20=20#host=20=3D>=20=
 host=0AX=20=20=20=20=20#port=20=3D>=20port=0AX=20=20=20=20=20=20=0AX=20=20=
 }=0AX}=0A8c0433569bd185de29414aeb59f76651=0Aecho=20x=20-=20=
 logstash/files/elasticsearch.yml.sample=0Ased=20's/^X//'=20=
 >logstash/files/elasticsearch.yml.sample=20<<=20=
 '598eb73269d83d65a71b10e972503bc9'=0AX#####################=20=
 ElasticSearch=20Configuration=20Example=20#####################=0AX=0AX#=20=
 This=20file=20contains=20an=20overview=20of=20various=20configuration=20=
 settings,=0AX#=20targeted=20at=20operations=20staff.=20Application=20=
 developers=20should=0AX#=20consult=20the=20guide=20at=20=
 <http://elasticsearch.org/guide>.=0AX#=0AX#=20The=20installation=20=
 procedure=20is=20covered=20at=0AX#=20=
 <http://elasticsearch.org/guide/reference/setup/installation.html>.=0AX#=0A=
 X#=20ElasticSearch=20comes=20with=20reasonable=20defaults=20for=20most=20=
 settings,=0AX#=20so=20you=20can=20try=20it=20out=20without=20bothering=20=
 with=20configuration.=0AX#=0AX#=20Most=20of=20the=20time,=20these=20=
 defaults=20are=20just=20fine=20for=20running=20a=20production=0AX#=20=
 cluster.=20If=20you're=20fine-tuning=20your=20cluster,=20or=20wondering=20=
 about=20the=0AX#=20effect=20of=20certain=20configuration=20option,=20=
 please=20_do=20ask_=20on=20the=0AX#=20mailing=20list=20or=20IRC=20=
 channel=20[http://elasticsearch.org/community].=0AX=0AX#=20Any=20element=20=
 in=20the=20configuration=20can=20be=20replaced=20with=20environment=20=
 variables=0AX#=20by=20placing=20them=20in=20${...}=20notation.=20For=20=
 example:=0AX#=0AX#=20node.rack:=20${RACK_ENV_VAR}=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/setup/configuration.html>=0AX#=20=
 for=20information=20on=20supported=20formats=20and=20syntax=20for=20the=20=
 configuration=20file.=0AX=0AX=0AX###################################=20=
 Cluster=20###################################=0AX=0AX#=20Cluster=20name=20=
 identifies=20your=20cluster=20for=20auto-discovery.=20If=20you're=20=
 running=0AX#=20multiple=20clusters=20on=20the=20same=20network,=20make=20=
 sure=20you're=20using=20unique=20names.=0AX#=0AX#=20cluster.name:=20=
 elasticsearch=0AX=0AX=0AX####################################=20Node=20=
 #####################################=0AX=0AX#=20Node=20names=20are=20=
 generated=20dynamically=20on=20startup,=20so=20you're=20relieved=0AX#=20=
 from=20configuring=20them=20manually.=20You=20can=20tie=20this=20node=20=
 to=20a=20specific=20name:=0AX#=0AX#=20node.name:=20"Franz=20Kafka"=0AX=0A=
 X#=20Every=20node=20can=20be=20configured=20to=20allow=20or=20deny=20=
 being=20eligible=20as=20the=20master,=0AX#=20and=20to=20allow=20or=20=
 deny=20to=20store=20the=20data.=0AX#=0AX#=20Allow=20this=20node=20to=20=
 be=20eligible=20as=20a=20master=20node=20(enabled=20by=20default):=0AX#=0A=
 X#=20node.master:=20true=0AX#=0AX#=20Allow=20this=20node=20to=20store=20=
 data=20(enabled=20by=20default):=0AX#=0AX#=20node.data:=20true=0AX=0AX#=20=
 You=20can=20exploit=20these=20settings=20to=20design=20advanced=20=
 cluster=20topologies.=0AX#=0AX#=201.=20You=20want=20this=20node=20to=20=
 never=20become=20a=20master=20node,=20only=20to=20hold=20data.=0AX#=20=20=
 =20=20This=20will=20be=20the=20"workhorse"=20of=20your=20cluster.=0AX#=0A=
 X#=20node.master:=20false=0AX#=20node.data:=20true=0AX#=0AX#=202.=20You=20=
 want=20this=20node=20to=20only=20serve=20as=20a=20master:=20to=20not=20=
 store=20any=20data=20and=0AX#=20=20=20=20to=20have=20free=20resources.=20=
 This=20will=20be=20the=20"coordinator"=20of=20your=20cluster.=0AX#=0AX#=20=
 node.master:=20true=0AX#=20node.data:=20false=0AX#=0AX#=203.=20You=20=
 want=20this=20node=20to=20be=20neither=20master=20nor=20data=20node,=20=
 but=0AX#=20=20=20=20to=20act=20as=20a=20"search=20load=20balancer"=20=
 (fetching=20data=20from=20nodes,=0AX#=20=20=20=20aggregating=20results,=20=
 etc.)=0AX#=0AX#=20node.master:=20false=0AX#=20node.data:=20false=0AX=0A=
 X#=20Use=20the=20Cluster=20Health=20API=20=
 [http://localhost:9200/_cluster/health],=20the=0AX#=20Node=20Info=20API=20=
 [http://localhost:9200/_cluster/nodes]=20or=20GUI=20tools=0AX#=20such=20=
 as=20<http://github.com/lukas-vlcek/bigdesk>=20and=0AX#=20=
 <http://mobz.github.com/elasticsearch-head>=20to=20inspect=20the=20=
 cluster=20state.=0AX=0AX#=20A=20node=20can=20have=20generic=20attributes=20=
 associated=20with=20it,=20which=20can=20later=20be=20used=0AX#=20for=20=
 customized=20shard=20allocation=20filtering,=20or=20allocation=20=
 awareness.=20An=20attribute=0AX#=20is=20a=20simple=20key=20value=20pair,=20=
 similar=20to=20node.key:=20value,=20here=20is=20an=20example:=0AX#=0AX#=20=
 node.rack:=20rack314=0AX=0AX=0AX####################################=20=
 Index=20####################################=0AX=0AX#=20You=20can=20set=20=
 a=20number=20of=20options=20(such=20as=20shard/replica=20options,=20=
 mapping=0AX#=20or=20analyzer=20definitions,=20translog=20settings,=20=
 ...)=20for=20indices=20globally,=0AX#=20in=20this=20file.=0AX#=0AX#=20=
 Note,=20that=20it=20makes=20more=20sense=20to=20configure=20index=20=
 settings=20specifically=20for=0AX#=20a=20certain=20index,=20either=20=
 when=20creating=20it=20or=20by=20using=20the=20index=20templates=20API.=0A=
 X#=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/index-modules/>=20and=0AX#=20=
 <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.h=
 tml>=0AX#=20for=20more=20information.=0AX=0AX#=20Set=20the=20number=20of=20=
 shards=20(splits)=20of=20an=20index=20(5=20by=20default):=0AX#=0AX#=20=
 index.number_of_shards:=205=0AX=0AX#=20Set=20the=20number=20of=20=
 replicas=20(additional=20copies)=20of=20an=20index=20(1=20by=20default):=0A=
 X#=0AX#=20index.number_of_replicas:=201=0AX=0AX#=20Note,=20that=20for=20=
 development=20on=20a=20local=20machine,=20with=20small=20indices,=20it=20=
 usually=0AX#=20makes=20sense=20to=20"disable"=20the=20distributed=20=
 features:=0AX#=0AX#=20index.number_of_shards:=201=0AX#=20=
 index.number_of_replicas:=200=0AX=0AX#=20These=20settings=20directly=20=
 affect=20the=20performance=20of=20index=20and=20search=20operations=0AX#=20=
 in=20your=20cluster.=20Assuming=20you=20have=20enough=20machines=20to=20=
 hold=20shards=20and=0AX#=20replicas,=20the=20rule=20of=20thumb=20is:=0A=
 X#=0AX#=201.=20Having=20more=20*shards*=20enhances=20the=20_indexing_=20=
 performance=20and=20allows=20to=0AX#=20=20=20=20_distribute_=20a=20big=20=
 index=20across=20machines.=0AX#=202.=20Having=20more=20*replicas*=20=
 enhances=20the=20_search_=20performance=20and=20improves=20the=0AX#=20=20=
 =20=20cluster=20_availability_.=0AX#=0AX#=20The=20"number_of_shards"=20=
 is=20a=20one-time=20setting=20for=20an=20index.=0AX#=0AX#=20The=20=
 "number_of_replicas"=20can=20be=20increased=20or=20decreased=20anytime,=0A=
 X#=20by=20using=20the=20Index=20Update=20Settings=20API.=0AX#=0AX#=20=
 ElasticSearch=20takes=20care=20about=20load=20balancing,=20relocating,=20=
 gathering=20the=0AX#=20results=20from=20nodes,=20etc.=20Experiment=20=
 with=20different=20settings=20to=20fine-tune=0AX#=20your=20setup.=0AX=0A=
 X#=20Use=20the=20Index=20Status=20API=20=
 (<http://localhost:9200/A/_status>)=20to=20inspect=0AX#=20the=20index=20=
 status.=0AX=0AX=0AX####################################=20Paths=20=
 ####################################=0AX=0AX#=20Path=20to=20directory=20=
 containing=20configuration=20(this=20file=20and=20logging.yml):=0AX#=0A=
 X#=20path.conf:=20/path/to/conf=0AX=0AX#=20Path=20to=20directory=20where=20=
 to=20store=20index=20data=20allocated=20for=20this=20node.=0AX#=0AX#=20=
 path.data:=20/path/to/data=0AX#=0AX#=20Can=20optionally=20include=20more=20=
 than=20one=20location,=20causing=20data=20to=20be=20striped=20across=0A=
 X#=20the=20locations=20(=C3=83=C2=83=C3=82=C2=A0=20la=20RAID=200)=20on=20=
 a=20file=20level,=20favouring=20locations=20with=20most=20free=0AX#=20=
 space=20on=20creation.=20For=20example:=0AX#=0AX#=20path.data:=20=
 /path/to/data1,/path/to/data2=0AX=0AX#=20Path=20to=20temporary=20files:=0A=
 X#=0AX#=20path.work:=20/path/to/work=0AX=0AX#=20Path=20to=20log=20files:=0A=
 X#=0AX#=20path.logs:=20/path/to/logs=0AX=0AX#=20Path=20to=20where=20=
 plugins=20are=20installed:=0AX#=0AX#=20path.plugins:=20/path/to/plugins=0A=
 X=0AX=0AX###################################=20Memory=20=
 ####################################=0AX=0AX#=20ElasticSearch=20performs=20=
 poorly=20when=20JVM=20starts=20swapping:=20you=20should=20ensure=20that=0A=
 X#=20it=20_never_=20swaps.=0AX#=0AX#=20Set=20this=20property=20to=20true=20=
 to=20lock=20the=20memory:=0AX#=0AX#=20bootstrap.mlockall:=20true=0AX=0A=
 X#=20Make=20sure=20that=20the=20ES_MIN_MEM=20and=20ES_MAX_MEM=20=
 environment=20variables=20are=20set=0AX#=20to=20the=20same=20value,=20=
 and=20that=20the=20machine=20has=20enough=20memory=20to=20allocate=0AX#=20=
 for=20ElasticSearch,=20leaving=20enough=20memory=20for=20the=20operating=20=
 system=20itself.=0AX#=0AX#=20You=20should=20also=20make=20sure=20that=20=
 the=20ElasticSearch=20process=20is=20allowed=20to=20lock=0AX#=20the=20=
 memory,=20eg.=20by=20using=20`ulimit=20-l=20unlimited`.=0AX=0AX=0A=
 X##############################=20Network=20And=20HTTP=20=
 ###############################=0AX=0AX#=20ElasticSearch,=20by=20=
 default,=20binds=20itself=20to=20the=200.0.0.0=20address,=20and=20=
 listens=0AX#=20on=20port=20[9200-9300]=20for=20HTTP=20traffic=20and=20on=20=
 port=20[9300-9400]=20for=20node-to-node=0AX#=20communication.=20(the=20=
 range=20means=20that=20if=20the=20port=20is=20busy,=20it=20will=20=
 automatically=0AX#=20try=20the=20next=20port).=0AX=0AX#=20Set=20the=20=
 bind=20address=20specifically=20(IPv4=20or=20IPv6):=0AX#=0AX#=20=
 network.bind_host:=20192.168.0.1=0AX=0AX#=20Set=20the=20address=20other=20=
 nodes=20will=20use=20to=20communicate=20with=20this=20node.=20If=20not=0A=
 X#=20set,=20it=20is=20automatically=20derived.=20It=20must=20point=20to=20=
 an=20actual=20IP=20address.=0AX#=0AX#=20network.publish_host:=20=
 192.168.0.1=0AX=0AX#=20Set=20both=20'bind_host'=20and=20'publish_host':=0A=
 X#=0AX#=20network.host:=20192.168.0.1=0AX=0AX#=20Set=20a=20custom=20port=20=
 for=20the=20node=20to=20node=20communication=20(9300=20by=20default):=0A=
 X#=0AX#=20transport.port:=209300=0AX=0AX#=20Enable=20compression=20for=20=
 all=20communication=20between=20nodes=20(disabled=20by=20default):=0AX#=0A=
 X#=20transport.tcp.compress:=20true=0AX=0AX#=20Set=20a=20custom=20port=20=
 to=20listen=20for=20HTTP=20traffic:=0AX#=0AX#=20http.port:=209200=0AX=0A=
 X#=20Set=20a=20custom=20allowed=20content=20length:=0AX#=0AX#=20=
 http.max_content_length:=20100mb=0AX=0AX#=20Disable=20HTTP=20completely:=0A=
 X#=0AX#=20http.enabled:=20false=0AX=0AX=0A=
 X###################################=20Gateway=20=
 ###################################=0AX=0AX#=20The=20gateway=20allows=20=
 for=20persisting=20the=20cluster=20state=20between=20full=20cluster=0AX#=20=
 restarts.=20Every=20change=20to=20the=20state=20(such=20as=20adding=20an=20=
 index)=20will=20be=20stored=0AX#=20in=20the=20gateway,=20and=20when=20=
 the=20cluster=20starts=20up=20for=20the=20first=20time,=0AX#=20it=20will=20=
 read=20its=20state=20from=20the=20gateway.=0AX=0AX#=20There=20are=20=
 several=20types=20of=20gateway=20implementations.=20For=20more=20=
 information,=0AX#=20see=20=
 <http://elasticsearch.org/guide/reference/modules/gateway>.=0AX=0AX#=20=
 The=20default=20gateway=20type=20is=20the=20"local"=20gateway=20=
 (recommended):=0AX#=0AX#=20gateway.type:=20local=0AX=0AX#=20Settings=20=
 below=20control=20how=20and=20when=20to=20start=20the=20initial=20=
 recovery=20process=20on=0AX#=20a=20full=20cluster=20restart=20(to=20=
 reuse=20as=20much=20local=20data=20as=20possible).=0AX=0AX#=20Allow=20=
 recovery=20process=20after=20N=20nodes=20in=20a=20cluster=20are=20up:=0A=
 X#=0AX#=20gateway.recover_after_nodes:=201=0AX=0AX#=20Set=20the=20=
 timeout=20to=20initiate=20the=20recovery=20process,=20once=20the=20N=20=
 nodes=0AX#=20from=20previous=20setting=20are=20up=20(accepts=20time=20=
 value):=0AX#=0AX#=20gateway.recover_after_time:=205m=0AX=0AX#=20Set=20=
 how=20many=20nodes=20are=20expected=20in=20this=20cluster.=20Once=20=
 these=20N=20nodes=0AX#=20are=20up,=20begin=20recovery=20process=20=
 immediately:=0AX#=0AX#=20gateway.expected_nodes:=202=0AX=0AX=0A=
 X#############################=20Recovery=20Throttling=20=
 #############################=0AX=0AX#=20These=20settings=20allow=20to=20=
 control=20the=20process=20of=20shards=20allocation=20between=0AX#=20=
 nodes=20during=20initial=20recovery,=20replica=20allocation,=20=
 rebalancing,=0AX#=20or=20when=20adding=20and=20removing=20nodes.=0AX=0A=
 X#=20Set=20the=20number=20of=20concurrent=20recoveries=20happening=20on=20=
 a=20node:=0AX#=0AX#=201.=20During=20the=20initial=20recovery=0AX#=0AX#=20=
 cluster.routing.allocation.node_initial_primaries_recoveries:=204=0AX#=0A=
 X#=202.=20During=20adding/removing=20nodes,=20rebalancing,=20etc=0AX#=0A=
 X#=20cluster.routing.allocation.node_concurrent_recoveries:=202=0AX=0AX#=20=
 Set=20to=20throttle=20throughput=20when=20recovering=20(eg.=20100mb,=20=
 by=20default=20unlimited):=0AX#=0AX#=20=
 indices.recovery.max_size_per_sec:=200=0AX=0AX#=20Set=20to=20limit=20the=20=
 number=20of=20open=20concurrent=20streams=20when=0AX#=20recovering=20a=20=
 shard=20from=20a=20peer:=0AX#=0AX#=20=
 indices.recovery.concurrent_streams:=205=0AX=0AX=0A=
 X##################################=20Discovery=20=
 ##################################=0AX=0AX#=20Discovery=20infrastructure=20=
 ensures=20nodes=20can=20be=20found=20within=20a=20cluster=0AX#=20and=20=
 master=20node=20is=20elected.=20Multicast=20discovery=20is=20the=20=
 default.=0AX=0AX#=20Set=20to=20ensure=20a=20node=20sees=20N=20other=20=
 master=20eligible=20nodes=20to=20be=20considered=0AX#=20operational=20=
 within=20the=20cluster.=20Set=20this=20option=20to=20a=20higher=20value=20=
 (2-4)=0AX#=20for=20large=20clusters:=0AX#=0AX#=20=
 discovery.zen.minimum_master_nodes:=201=0AX=0AX#=20Set=20the=20time=20to=20=
 wait=20for=20ping=20responses=20from=20other=20nodes=20when=20=
 discovering.=0AX#=20Set=20this=20option=20to=20a=20higher=20value=20on=20=
 a=20slow=20or=20congested=20network=0AX#=20to=20minimize=20discovery=20=
 failures:=0AX#=0AX#=20discovery.zen.ping.timeout:=203s=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>=0A=
 X#=20for=20more=20information.=0AX=0AX#=20Unicast=20discovery=20allows=20=
 to=20explicitly=20control=20which=20nodes=20will=20be=20used=0AX#=20to=20=
 discover=20the=20cluster.=20It=20can=20be=20used=20when=20multicast=20is=20=
 not=20present,=0AX#=20or=20to=20restrict=20the=20cluster=20=
 communication-wise.=0AX#=0AX#=201.=20Disable=20multicast=20discovery=20=
 (enabled=20by=20default):=0AX#=0AX#=20=
 discovery.zen.ping.multicast.enabled:=20false=0AX#=0AX#=202.=20Configure=20=
 an=20initial=20list=20of=20master=20nodes=20in=20the=20cluster=0AX#=20=20=
 =20=20to=20perform=20discovery=20when=20new=20nodes=20(master=20or=20=
 data)=20are=20started:=0AX#=0AX#=20discovery.zen.ping.unicast.hosts:=20=
 ["host1",=20"host2:port",=20"host3[portX-portY]"]=0AX=0AX#=20EC2=20=
 discovery=20allows=20to=20use=20AWS=20EC2=20API=20in=20order=20to=20=
 perform=20discovery.=0AX#=0AX#=20You=20have=20to=20install=20the=20=
 cloud-aws=20plugin=20for=20enabling=20the=20EC2=20discovery.=0AX#=0AX#=20=
 See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>=0A=
 X#=20for=20more=20information.=0AX#=0AX#=20See=20=
 <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>=0A=
 X#=20for=20a=20step-by-step=20tutorial.=0AX=0AX=0A=
 X##################################=20Slow=20Log=20=
 ##################################=0AX=0AX#=20Shard=20level=20query=20=
 and=20fetch=20threshold=20logging.=0AX=0AX#index.search.slowlog.level:=20=
 TRACE=0AX#index.search.slowlog.threshold.query.warn:=2010s=0A=
 X#index.search.slowlog.threshold.query.info:=205s=0A=
 X#index.search.slowlog.threshold.query.debug:=202s=0A=
 X#index.search.slowlog.threshold.query.trace:=20500ms=0AX=0A=
 X#index.search.slowlog.threshold.fetch.warn:=201s=0A=
 X#index.search.slowlog.threshold.fetch.info:=20800ms=0A=
 X#index.search.slowlog.threshold.fetch.debug:=20500ms=0A=
 X#index.search.slowlog.threshold.fetch.trace:=20200ms=0A=
 598eb73269d83d65a71b10e972503bc9=0Aecho=20x=20-=20=
 logstash/files/logstash.in=0Ased=20's/^X//'=20=
 >logstash/files/logstash.in=20<<=20'0f1ca7b587c13466a7f3a6fad7064657'=0A=
 X#!/bin/sh=0AX=0AX#=20$FreeBSD:=0AX#=20PROVIDE:=20logstash=0AX#=20=
 REQUIRE:=20LOGIN=0AX#=20KEYWORD:=20shutdown=0AX=0AX#=0AX#=20=
 Configuration=20settings=20for=20logstash=20in=20/etc/rc.conf:=0AX#=0AX#=20=
 logstash_enable=20(bool):=0AX#=20=20=20Set=20to=20"NO"=20by=20default.=0A=
 X#=20=20=20Set=20it=20to=20"YES"=20to=20enable=20logstash=0AX#=0AX#=20=
 logstash_mode=20:=0AX#=20=20=20Set=20to=20"standalone"=20by=20default.=0A=
 X#=20=20=20Valid=20options:=0AX#=20=20=20=20=20"standalone":=20agent,=20=
 web=20&=20elasticsearch=0AX#=20=20=20=20=20"web":=20Starts=20logstash=20=
 as=20a=20web=20ui=0AX#=20=20=20=20=20"agent":=20Justs=20works=20as=20a=20=
 log=20shipper=20=0AX#=0AX#=20logstash_logging=20(bool):=0AX#=20=20=20Set=20=
 to=20"NO"=20by=20default.=0AX#=20=20=20Set=20it=20to=20"YES"=20to=20=
 enable=20logstash=20logging=20to=20file=0AX#=20=20=20Default=20output=20=
 to=20/var/log/logstash.log=0AX#=0AX=0AX.=20/etc/rc.subr=0AX=0A=
 Xname=3D"logstash"=0AXrcvar=3Dlogstash_enable=0AX=0A=
 Xpiddir=3D"/var/run/${name}"=0AXpidfile=3D"${piddir}/${name}.pid"=0AX=0A=
 Xif=20[=20-d=20$piddir=20];=20then=0AX=09mkdir=20-p=20$piddir=0AXfi=0AX=0A=
 Xlogdir=3D"/var/log"=0AXcommand=3D"/usr/sbin/daemon"=0AX=0A=
 Xload_rc_config=20"${name}"=0AX=0AX:=20${logstash_enable=3D"NO"}=0AX:=20=
 ${logstash_home=3D"%%LOGSTASH_HOME%%"}=0AX:=20=
 ${logstash_config=3D"%%PREFIX%%/etc/${name}/${name}.conf"}=0AX:=20=
 ${logstash_jar=3D"%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}=0AX:=20=
 ${logstash_java_home=3D"%%JAVA_HOME%%"}=0AX:=20${logstash_log=3D"NO"}=0A=
 X:=20${logstash_mode=3D"standalone"}=0AX:=20${logstash_port=3D"9292"}=0A=
 X:=20${logstash_elastic_backend=3D""}=0AX:=20=
 ${logstash_log_file=3D"${logdir}/${name}.log"}=0AX:=20=
 ${logstash_elastic_datadir=3D"%%LOGSTASH_DATA_DIR%%"}=0AX=0A=
 Xjava_cmd=3D"${logstash_java_home}/bin/java"=0AXprocname=3D"${java_cmd}"=0A=
 X=0AXlogstash_chdir=3D${logstash_home}=0AXlogstash_log_options=3D""=0A=
 Xlogstash_elastic_options=3D""=0AX=0AXif=20[=20${logstash_log}=20=3D=3D=20=
 "YES"=20];=20then=0AX=09logstash_log_options=3D"=20--log=20=
 ${logstash_log_file}"=20=0AXfi=0AX=0AXif=20[=20${logstash_mode}=20=3D=3D=20=
 "standalone"=20];=20then=0AX=09logstash_args=3D"agent=20-f=20=
 ${logstash_config}=20--=20web=20--port=20${logstash_port}=20--backend=20=
 elasticsearch:///?local=20${logstash_log_options}"=0AX=09=
 logstash_elastic_options=3D"=20=
 -Des.path.data=3D${logstash_elastic_datadir}"=0AXelif=20[=20=
 ${logstash_mode}=20=3D=3D=20"agent"=20];then=0AX=09logstash_args=3D"agent=20=
 -f=20${logstash_config}=20${logstash_log_options}"=0AXelif=20[=20=
 ${logstash_mode}=20=3D=3D=20"web"=20];then=0AX=09logstash_args=3D"web=20=
 --port=20${logstash_port}=20--backend=20=
 elasticsearch://${logstash_elastic_backend}/=20${logstash_log_options}"=0A=
 Xfi=0AX=0AXcommand_args=3D"-f=20-p=20${pidfile}=20${java_cmd}=20=
 ${logstash_elastic_options}=20-jar=20${logstash_jar}=20${logstash_args}"=0A=
 Xrequired_files=3D"${java_cmd}=20${logstash_config}"=0AX=0A=
 Xrun_rc_command=20"$1"=0A0f1ca7b587c13466a7f3a6fad7064657=0Aexit=0A=0A=
 
 --Apple-Mail=_C458E8B0-DA61-4FB5-A933-0F21F817CF7A
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain;
 	charset=us-ascii
 
 
 
 
 
 --Apple-Mail=_C458E8B0-DA61-4FB5-A933-0F21F817CF7A--

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, daniel@ish.com.au, 
 "Regis A. Despres" <regis.despres@gmail.com>
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Tue, 09 Jul 2013 22:37:22 +0200

 Hi,
 
 Thanks for helping reviving this PR.
 
 Daniel, are you still interested in maintaining this port?
 
 I'll wait a few days more to give the original submitter time to reply 
 and state if he still is interested in being the maintainer.
 
 If there is no followup from him I'll commit with you as maintainer. Is 
 this Ok with you?
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>

From: "Regis A. Despres" <regis.despres@gmail.com>
To: Guido Falsi <madpilot@FreeBSD.org>
Cc: "bug-followup@FreeBSD.org" <bug-followup@FreeBSD.org>,
 "daniel@ish.com.au" <daniel@ish.com.au>
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Tue, 9 Jul 2013 23:47:17 +0200

 Hello Guido , Daniel
 
 For sure i'm ok with.
 
 
 Cdt,
 
 
 
 --=20
 Regis A. Despres
 
 Le 9 juil. 2013 =C3=A0 22:37, Guido Falsi <madpilot@FreeBSD.org> a =C3=A9cri=
 t :
 
 > Hi,
 >=20
 > Thanks for helping reviving this PR.
 >=20
 > Daniel, are you still interested in maintaining this port?
 >=20
 > I'll wait a few days more to give the original submitter time to reply and=
  state if he still is interested in being the maintainer.
 >=20
 > If there is no followup from him I'll commit with you as maintainer. Is th=
 is Ok with you?
 >=20
 > --=20
 > Guido Falsi <madpilot@FreeBSD.org>

From: Aristedes Maniatis <ari@ish.com.au>
To: bug-followup@FreeBSD.org, Daniel Solsona <dsolsona@gmail.com>
Cc:  
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Thu, 11 Jul 2013 19:04:34 +1000

 Unfortunately Daniel is no longer working in this job and he has gone over to a role in the Linux universe. I'd hate to see his work on this port go to waste though.
 
 Regis, as Daniel's ex-employer, you have my blessing to update this port and resolve any remaining issues with it. I've cced Daniel's own email address if he has an interest in continuing to assist with the port in the future.
 
 Regis, you might want to bump the logstash version up to 1.1.13. I think that will just be a change to the version and checksums.
 
 Cheers
 Ari Maniatis

From: "Regis A. Despres" <regis.despres@gmail.com>
To: bug-followup@FreeBSD.org,
 daniel@ish.com.au
Cc: Guido Falsi <madpilot@FreeBSD.org>,
 Aristedes Maniatis <ari@ish.com.au>
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Sat, 13 Jul 2013 14:52:38 +0200

 --Apple-Mail=_4988ACAB-DC10-4793-B0AA-517C9E30A550
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain;
 	charset=us-ascii
 
 Hello hello,
 
 
 Everyone seems to agree regarding the 1.1.13 =)
 I've added some greetings, killed two portlint wrn and updated the version.
 
 
 Regards,
 
 
 
 -- 
 Regis A. Despres
 
 
 --Apple-Mail=_4988ACAB-DC10-4793-B0AA-517C9E30A550
 Content-Disposition: attachment;
 	filename=logstash.shar
 Content-Type: application/octet-stream;
 	name="logstash.shar"
 Content-Transfer-Encoding: quoted-printable
 
 #=20This=20is=20a=20shell=20archive.=20=20Save=20it=20in=20a=20file,=20=
 remove=20anything=20before=0A#=20this=20line,=20and=20then=20unpack=20it=20=
 by=20entering=20"sh=20file".=20=20Note,=20it=20may=0A#=20create=20=
 directories;=20files=20and=20directories=20will=20be=20owned=20by=20you=20=
 and=0A#=20have=20default=20permissions.=0A#=0A#=20This=20archive=20=
 contains:=0A#=0A#=09logstash=0A#=09logstash/distinfo=0A#=09=
 logstash/Makefile=0A#=09logstash/pkg-descr=0A#=09logstash/pkg-plist=0A#=09=
 logstash/files=0A#=09logstash/files/logstash.conf.sample=0A#=09=
 logstash/files/elasticsearch.yml.sample=0A#=09logstash/files/logstash.in=0A=
 #=0Aecho=20c=20-=20logstash=0Amkdir=20-p=20logstash=20>=20/dev/null=20=
 2>&1=0Aecho=20x=20-=20logstash/distinfo=0Ased=20's/^X//'=20=
 >logstash/distinfo=20<<=20'8a7498b9608da6df76161c7712d9c4de'=0AXSHA256=20=
 (logstash-1.1.13-flatjar.jar)=20=3D=20=
 5ba0639ff4da064c2a4f6a04bd7006b1997a6573859d3691e210b6855e1e47f1=0AXSIZE=20=
 (logstash-1.1.13-flatjar.jar)=20=3D=2069485313=0A=
 8a7498b9608da6df76161c7712d9c4de=0Aecho=20x=20-=20logstash/Makefile=0A=
 sed=20's/^X//'=20>logstash/Makefile=20<<=20=
 '58caac783f1d72028817b3f79ec306ec'=0AX#=20Created=20by:=20Daniel=20=
 Solsona=20<daniel@ish.com.au>,=20Guido=20Falsi=20<madpilot@FreeBSD.org>=0A=
 X#=20$FreeBSD$=0AX=0AXPORTNAME=3D=09logstash=0AXPORTVERSION=3D=091.1.13=0A=
 XCATEGORIES=3D=09sysutils=20java=0AXMASTER_SITES=3D=09=
 https://logstash.objects.dreamhost.com/release/=20\=0AX=09=09=
 http://semicomplete.com/files/logstash/=20=0AXDISTNAME=3D=09=
 ${PORTNAME}-${PORTVERSION}-flatjar=0AXEXTRACT_SUFX=3D=09.jar=0A=
 XEXTRACT_ONLY=3D=0AX=0AXMAINTAINER=3D=09regis.despres@gmail.com=0A=
 XCOMMENT=3D=09Tool=20for=20managing=20events=20and=20logs=0AX=0A=
 XUSE_JAVA=3D=09yes=0AXJAVA_VERSION=3D=091.5+=0AX=0AXNO_BUILD=3D=09yes=0A=
 X=0AXUSE_RC_SUBR=3D=09logstash=0AX=0AXLOGSTASH_HOME?=3D=09=
 ${PREFIX}/${PORTNAME}=0AXLOGSTASH_HOME_REL?=3D=09=
 ${LOGSTASH_HOME:S,^${PREFIX}/,,}=0AXLOGSTASH_JAR?=3D=09=
 ${DISTNAME}${EXTRACT_SUFX}=0AXLOGSTASH_RUN?=3D=09/var/run/${PORTNAME}=0A=
 XLOGSTASH_DATA_DIR?=3D=09/var/db/${PORTNAME}=0AX=0AXSUB_LIST=3D=09=
 LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=20JAVA_HOME=3D${JAVA_HOME}=20\=0A=
 X=09=09LOGSTASH_HOME=3D${LOGSTASH_HOME}=20LOGSTASH_JAR=3D${LOGSTASH_JAR}=0A=
 XPLIST_SUB+=3D=09LOGSTASH_HOME=3D${LOGSTASH_HOME_REL}=20=
 LOGSTASH_JAR=3D${LOGSTASH_JAR}=20\=0AX=09=09LOGSTASH_RUN=3D${LOGSTASH_RUN}=
 =20\=0AX=09=09LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=0AX=0A=
 Xdo-install:=0AX=09${MKDIR}=20${LOGSTASH_RUN}=0AX=09${MKDIR}=20${ETCDIR}=0A=
 X=09${MKDIR}=20${LOGSTASH_HOME}=0AX=09${MKDIR}=20${LOGSTASH_DATA_DIR}=0A=
 X=09${INSTALL_DATA}=20${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR}=20=
 ${LOGSTASH_HOME}=0AX=09${INSTALL_DATA}=20=
 ${FILESDIR}/logstash.conf.sample=20${ETCDIR}=0AX=09@if=20[=20!=20-f=20=
 ${ETCDIR}/logstash.conf=20];=20then=20\=0AX=09=09${CP}=20-p=20=
 ${ETCDIR}/logstash.conf.sample=20${ETCDIR}/logstash.conf=20;=20\=0AX=09=
 fi=0AX=09${INSTALL_DATA}=20${FILESDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}=0AX=09@if=20[=20!=20-f=20${ETCDIR}/elasticsearch.yml=20];=20=
 then=20\=0AX=09=09${CP}=20-p=20${ETCDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}/elasticsearch.yml=20;=20\=0AX=09fi=0AX=0AX.include=20=
 <bsd.port.mk>=0A58caac783f1d72028817b3f79ec306ec=0Aecho=20x=20-=20=
 logstash/pkg-descr=0Ased=20's/^X//'=20>logstash/pkg-descr=20<<=20=
 'e951d49595615b1bac2b63587f1fb181'=0AXlogstash=20is=20a=20tool=20for=20=
 managing=20events=20and=20logs.=20You=20can=20use=20it=20to=0AXcollect=20=
 logs,=20parse=20them,=20and=20store=20them=20for=20later=20use=20(like,=20=
 for=0AXsearching).=20Speaking=20of=20searching,=20logstash=20comes=20=
 with=20a=20web=20interface=0AXfor=20searching=20and=20drilling=20into=20=
 all=20of=20your=20logs.=0AX=0AXWWW:=20http://logstash.net/=0A=
 e951d49595615b1bac2b63587f1fb181=0Aecho=20x=20-=20logstash/pkg-plist=0A=
 sed=20's/^X//'=20>logstash/pkg-plist=20<<=20=
 'b88d9aee40fac03c7f8520b4cf627738'=0AX%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%=0A=
 X@exec=20mkdir=20-p=20%%LOGSTASH_RUN%%=0AX@exec=20mkdir=20-p=20=
 %%LOGSTASH_DATA_DIR%%=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/logstash.conf.sample=20%D/%%ETCDIR%%/logstash.conf;=20then=20=
 rm=20-f=20%D/%%ETCDIR%%/logstash.conf;=20fi=0A=
 X%%ETCDIR%%/logstash.conf.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/logstash.conf=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/logstash.conf;=20fi=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/elasticsearch.yml.sample=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20then=20rm=20-f=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20fi=0A=
 X%%ETCDIR%%/elasticsearch.yml.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/elasticsearch.yml=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/elasticsearch.yml;=20fi=0AX@dirrmtry=20%%LOGSTASH_DATA_DIR%%=0A=
 X@dirrmtry=20%%LOGSTASH_HOME%%=0AX@dirrmtry=20%%ETCDIR%%=0AX@dirrmtry=20=
 %%LOGSTASH_RUN%%=0Ab88d9aee40fac03c7f8520b4cf627738=0Aecho=20c=20-=20=
 logstash/files=0Amkdir=20-p=20logstash/files=20>=20/dev/null=202>&1=0A=
 echo=20x=20-=20logstash/files/logstash.conf.sample=0Ased=20's/^X//'=20=
 >logstash/files/logstash.conf.sample=20<<=20=
 '8c0433569bd185de29414aeb59f76651'=0AXinput=20{=0AX=20=20file=20{=0AX=20=20=
 =20=20type=20=3D>=20"system=20logs"=0AX=0AX=20=20#=20=20#=20Wildcards=20=
 work,=20here=20:)=0AX=20=20#=20=20path=20=3D>=20[=20"/var/log/*.log",=20=
 "/var/log/messages",=20"/var/log/syslog"=20]=0AX=20=20=20=20path=20=3D>=20=
 [=20"/var/log/messages"=20]=0AX=20=20}=0AX=0AX=20=20#file=20{=0AX=20=20#=20=
 =20type=20=3D>=20"Hudson-access"=0AX=20=20#=20=20path=20=3D>=20=
 "/var/log/www/hudson.ish.com.au-access_log"=0AX=20=20#}=0AX=0AX=20=20=
 #file=20{=0AX=20=20#=20=20=20=20=20=20=20=20=20=20type=20=3D>=20"Syslog"=0A=
 X=20=20#=20=20path=20=3D>=20"/var/log/messages"=0AX=20=20#}=0AX}=0AX=0A=
 Xoutput=20{=0AX=20=20#=20Emit=20events=20to=20stdout=20for=20easy=20=
 debugging=20of=20what=20is=20going=20through=0AX=20=20#=20logstash.=0AX=20=
 =20#stdout=20{=20}=0AX=0AX=20=20#=20This=20will=20use=20elasticsearch=20=
 to=20store=20your=20logs.=0AX=20=20#=20The=20'embedded'=20option=20will=20=
 cause=20logstash=20to=20run=20the=20elasticsearch=0AX=20=20#=20server=20=
 in=20the=20same=20process,=20so=20you=20don't=20have=20to=20worry=20=
 about=0AX=20=20#=20how=20to=20download,=20configure,=20or=20run=20=
 elasticsearch!=0AX=20=20elasticsearch=20{=20=0AX=20=20=20=20=20embedded=20=
 =3D>=20true=0AX=20=20=20=20=20#embedded_http_port=20=3D>=209200=0AX=20=20=
 =20=20=20#cluster=20=3D>=20elasticsearch=0AX=20=20=20=20=20#host=20=3D>=20=
 host=0AX=20=20=20=20=20#port=20=3D>=20port=0AX=20=20=20=20=20=20=0AX=20=20=
 }=0AX}=0A8c0433569bd185de29414aeb59f76651=0Aecho=20x=20-=20=
 logstash/files/elasticsearch.yml.sample=0Ased=20's/^X//'=20=
 >logstash/files/elasticsearch.yml.sample=20<<=20=
 '598eb73269d83d65a71b10e972503bc9'=0AX#####################=20=
 ElasticSearch=20Configuration=20Example=20#####################=0AX=0AX#=20=
 This=20file=20contains=20an=20overview=20of=20various=20configuration=20=
 settings,=0AX#=20targeted=20at=20operations=20staff.=20Application=20=
 developers=20should=0AX#=20consult=20the=20guide=20at=20=
 <http://elasticsearch.org/guide>.=0AX#=0AX#=20The=20installation=20=
 procedure=20is=20covered=20at=0AX#=20=
 <http://elasticsearch.org/guide/reference/setup/installation.html>.=0AX#=0A=
 X#=20ElasticSearch=20comes=20with=20reasonable=20defaults=20for=20most=20=
 settings,=0AX#=20so=20you=20can=20try=20it=20out=20without=20bothering=20=
 with=20configuration.=0AX#=0AX#=20Most=20of=20the=20time,=20these=20=
 defaults=20are=20just=20fine=20for=20running=20a=20production=0AX#=20=
 cluster.=20If=20you're=20fine-tuning=20your=20cluster,=20or=20wondering=20=
 about=20the=0AX#=20effect=20of=20certain=20configuration=20option,=20=
 please=20_do=20ask_=20on=20the=0AX#=20mailing=20list=20or=20IRC=20=
 channel=20[http://elasticsearch.org/community].=0AX=0AX#=20Any=20element=20=
 in=20the=20configuration=20can=20be=20replaced=20with=20environment=20=
 variables=0AX#=20by=20placing=20them=20in=20${...}=20notation.=20For=20=
 example:=0AX#=0AX#=20node.rack:=20${RACK_ENV_VAR}=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/setup/configuration.html>=0AX#=20=
 for=20information=20on=20supported=20formats=20and=20syntax=20for=20the=20=
 configuration=20file.=0AX=0AX=0AX###################################=20=
 Cluster=20###################################=0AX=0AX#=20Cluster=20name=20=
 identifies=20your=20cluster=20for=20auto-discovery.=20If=20you're=20=
 running=0AX#=20multiple=20clusters=20on=20the=20same=20network,=20make=20=
 sure=20you're=20using=20unique=20names.=0AX#=0AX#=20cluster.name:=20=
 elasticsearch=0AX=0AX=0AX####################################=20Node=20=
 #####################################=0AX=0AX#=20Node=20names=20are=20=
 generated=20dynamically=20on=20startup,=20so=20you're=20relieved=0AX#=20=
 from=20configuring=20them=20manually.=20You=20can=20tie=20this=20node=20=
 to=20a=20specific=20name:=0AX#=0AX#=20node.name:=20"Franz=20Kafka"=0AX=0A=
 X#=20Every=20node=20can=20be=20configured=20to=20allow=20or=20deny=20=
 being=20eligible=20as=20the=20master,=0AX#=20and=20to=20allow=20or=20=
 deny=20to=20store=20the=20data.=0AX#=0AX#=20Allow=20this=20node=20to=20=
 be=20eligible=20as=20a=20master=20node=20(enabled=20by=20default):=0AX#=0A=
 X#=20node.master:=20true=0AX#=0AX#=20Allow=20this=20node=20to=20store=20=
 data=20(enabled=20by=20default):=0AX#=0AX#=20node.data:=20true=0AX=0AX#=20=
 You=20can=20exploit=20these=20settings=20to=20design=20advanced=20=
 cluster=20topologies.=0AX#=0AX#=201.=20You=20want=20this=20node=20to=20=
 never=20become=20a=20master=20node,=20only=20to=20hold=20data.=0AX#=20=20=
 =20=20This=20will=20be=20the=20"workhorse"=20of=20your=20cluster.=0AX#=0A=
 X#=20node.master:=20false=0AX#=20node.data:=20true=0AX#=0AX#=202.=20You=20=
 want=20this=20node=20to=20only=20serve=20as=20a=20master:=20to=20not=20=
 store=20any=20data=20and=0AX#=20=20=20=20to=20have=20free=20resources.=20=
 This=20will=20be=20the=20"coordinator"=20of=20your=20cluster.=0AX#=0AX#=20=
 node.master:=20true=0AX#=20node.data:=20false=0AX#=0AX#=203.=20You=20=
 want=20this=20node=20to=20be=20neither=20master=20nor=20data=20node,=20=
 but=0AX#=20=20=20=20to=20act=20as=20a=20"search=20load=20balancer"=20=
 (fetching=20data=20from=20nodes,=0AX#=20=20=20=20aggregating=20results,=20=
 etc.)=0AX#=0AX#=20node.master:=20false=0AX#=20node.data:=20false=0AX=0A=
 X#=20Use=20the=20Cluster=20Health=20API=20=
 [http://localhost:9200/_cluster/health],=20the=0AX#=20Node=20Info=20API=20=
 [http://localhost:9200/_cluster/nodes]=20or=20GUI=20tools=0AX#=20such=20=
 as=20<http://github.com/lukas-vlcek/bigdesk>=20and=0AX#=20=
 <http://mobz.github.com/elasticsearch-head>=20to=20inspect=20the=20=
 cluster=20state.=0AX=0AX#=20A=20node=20can=20have=20generic=20attributes=20=
 associated=20with=20it,=20which=20can=20later=20be=20used=0AX#=20for=20=
 customized=20shard=20allocation=20filtering,=20or=20allocation=20=
 awareness.=20An=20attribute=0AX#=20is=20a=20simple=20key=20value=20pair,=20=
 similar=20to=20node.key:=20value,=20here=20is=20an=20example:=0AX#=0AX#=20=
 node.rack:=20rack314=0AX=0AX=0AX####################################=20=
 Index=20####################################=0AX=0AX#=20You=20can=20set=20=
 a=20number=20of=20options=20(such=20as=20shard/replica=20options,=20=
 mapping=0AX#=20or=20analyzer=20definitions,=20translog=20settings,=20=
 ...)=20for=20indices=20globally,=0AX#=20in=20this=20file.=0AX#=0AX#=20=
 Note,=20that=20it=20makes=20more=20sense=20to=20configure=20index=20=
 settings=20specifically=20for=0AX#=20a=20certain=20index,=20either=20=
 when=20creating=20it=20or=20by=20using=20the=20index=20templates=20API.=0A=
 X#=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/index-modules/>=20and=0AX#=20=
 <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.h=
 tml>=0AX#=20for=20more=20information.=0AX=0AX#=20Set=20the=20number=20of=20=
 shards=20(splits)=20of=20an=20index=20(5=20by=20default):=0AX#=0AX#=20=
 index.number_of_shards:=205=0AX=0AX#=20Set=20the=20number=20of=20=
 replicas=20(additional=20copies)=20of=20an=20index=20(1=20by=20default):=0A=
 X#=0AX#=20index.number_of_replicas:=201=0AX=0AX#=20Note,=20that=20for=20=
 development=20on=20a=20local=20machine,=20with=20small=20indices,=20it=20=
 usually=0AX#=20makes=20sense=20to=20"disable"=20the=20distributed=20=
 features:=0AX#=0AX#=20index.number_of_shards:=201=0AX#=20=
 index.number_of_replicas:=200=0AX=0AX#=20These=20settings=20directly=20=
 affect=20the=20performance=20of=20index=20and=20search=20operations=0AX#=20=
 in=20your=20cluster.=20Assuming=20you=20have=20enough=20machines=20to=20=
 hold=20shards=20and=0AX#=20replicas,=20the=20rule=20of=20thumb=20is:=0A=
 X#=0AX#=201.=20Having=20more=20*shards*=20enhances=20the=20_indexing_=20=
 performance=20and=20allows=20to=0AX#=20=20=20=20_distribute_=20a=20big=20=
 index=20across=20machines.=0AX#=202.=20Having=20more=20*replicas*=20=
 enhances=20the=20_search_=20performance=20and=20improves=20the=0AX#=20=20=
 =20=20cluster=20_availability_.=0AX#=0AX#=20The=20"number_of_shards"=20=
 is=20a=20one-time=20setting=20for=20an=20index.=0AX#=0AX#=20The=20=
 "number_of_replicas"=20can=20be=20increased=20or=20decreased=20anytime,=0A=
 X#=20by=20using=20the=20Index=20Update=20Settings=20API.=0AX#=0AX#=20=
 ElasticSearch=20takes=20care=20about=20load=20balancing,=20relocating,=20=
 gathering=20the=0AX#=20results=20from=20nodes,=20etc.=20Experiment=20=
 with=20different=20settings=20to=20fine-tune=0AX#=20your=20setup.=0AX=0A=
 X#=20Use=20the=20Index=20Status=20API=20=
 (<http://localhost:9200/A/_status>)=20to=20inspect=0AX#=20the=20index=20=
 status.=0AX=0AX=0AX####################################=20Paths=20=
 ####################################=0AX=0AX#=20Path=20to=20directory=20=
 containing=20configuration=20(this=20file=20and=20logging.yml):=0AX#=0A=
 X#=20path.conf:=20/path/to/conf=0AX=0AX#=20Path=20to=20directory=20where=20=
 to=20store=20index=20data=20allocated=20for=20this=20node.=0AX#=0AX#=20=
 path.data:=20/path/to/data=0AX#=0AX#=20Can=20optionally=20include=20more=20=
 than=20one=20location,=20causing=20data=20to=20be=20striped=20across=0A=
 X#=20the=20locations=20(=C3=83=C2=83=C3=82=C2=A0=20la=20RAID=200)=20on=20=
 a=20file=20level,=20favouring=20locations=20with=20most=20free=0AX#=20=
 space=20on=20creation.=20For=20example:=0AX#=0AX#=20path.data:=20=
 /path/to/data1,/path/to/data2=0AX=0AX#=20Path=20to=20temporary=20files:=0A=
 X#=0AX#=20path.work:=20/path/to/work=0AX=0AX#=20Path=20to=20log=20files:=0A=
 X#=0AX#=20path.logs:=20/path/to/logs=0AX=0AX#=20Path=20to=20where=20=
 plugins=20are=20installed:=0AX#=0AX#=20path.plugins:=20/path/to/plugins=0A=
 X=0AX=0AX###################################=20Memory=20=
 ####################################=0AX=0AX#=20ElasticSearch=20performs=20=
 poorly=20when=20JVM=20starts=20swapping:=20you=20should=20ensure=20that=0A=
 X#=20it=20_never_=20swaps.=0AX#=0AX#=20Set=20this=20property=20to=20true=20=
 to=20lock=20the=20memory:=0AX#=0AX#=20bootstrap.mlockall:=20true=0AX=0A=
 X#=20Make=20sure=20that=20the=20ES_MIN_MEM=20and=20ES_MAX_MEM=20=
 environment=20variables=20are=20set=0AX#=20to=20the=20same=20value,=20=
 and=20that=20the=20machine=20has=20enough=20memory=20to=20allocate=0AX#=20=
 for=20ElasticSearch,=20leaving=20enough=20memory=20for=20the=20operating=20=
 system=20itself.=0AX#=0AX#=20You=20should=20also=20make=20sure=20that=20=
 the=20ElasticSearch=20process=20is=20allowed=20to=20lock=0AX#=20the=20=
 memory,=20eg.=20by=20using=20`ulimit=20-l=20unlimited`.=0AX=0AX=0A=
 X##############################=20Network=20And=20HTTP=20=
 ###############################=0AX=0AX#=20ElasticSearch,=20by=20=
 default,=20binds=20itself=20to=20the=200.0.0.0=20address,=20and=20=
 listens=0AX#=20on=20port=20[9200-9300]=20for=20HTTP=20traffic=20and=20on=20=
 port=20[9300-9400]=20for=20node-to-node=0AX#=20communication.=20(the=20=
 range=20means=20that=20if=20the=20port=20is=20busy,=20it=20will=20=
 automatically=0AX#=20try=20the=20next=20port).=0AX=0AX#=20Set=20the=20=
 bind=20address=20specifically=20(IPv4=20or=20IPv6):=0AX#=0AX#=20=
 network.bind_host:=20192.168.0.1=0AX=0AX#=20Set=20the=20address=20other=20=
 nodes=20will=20use=20to=20communicate=20with=20this=20node.=20If=20not=0A=
 X#=20set,=20it=20is=20automatically=20derived.=20It=20must=20point=20to=20=
 an=20actual=20IP=20address.=0AX#=0AX#=20network.publish_host:=20=
 192.168.0.1=0AX=0AX#=20Set=20both=20'bind_host'=20and=20'publish_host':=0A=
 X#=0AX#=20network.host:=20192.168.0.1=0AX=0AX#=20Set=20a=20custom=20port=20=
 for=20the=20node=20to=20node=20communication=20(9300=20by=20default):=0A=
 X#=0AX#=20transport.port:=209300=0AX=0AX#=20Enable=20compression=20for=20=
 all=20communication=20between=20nodes=20(disabled=20by=20default):=0AX#=0A=
 X#=20transport.tcp.compress:=20true=0AX=0AX#=20Set=20a=20custom=20port=20=
 to=20listen=20for=20HTTP=20traffic:=0AX#=0AX#=20http.port:=209200=0AX=0A=
 X#=20Set=20a=20custom=20allowed=20content=20length:=0AX#=0AX#=20=
 http.max_content_length:=20100mb=0AX=0AX#=20Disable=20HTTP=20completely:=0A=
 X#=0AX#=20http.enabled:=20false=0AX=0AX=0A=
 X###################################=20Gateway=20=
 ###################################=0AX=0AX#=20The=20gateway=20allows=20=
 for=20persisting=20the=20cluster=20state=20between=20full=20cluster=0AX#=20=
 restarts.=20Every=20change=20to=20the=20state=20(such=20as=20adding=20an=20=
 index)=20will=20be=20stored=0AX#=20in=20the=20gateway,=20and=20when=20=
 the=20cluster=20starts=20up=20for=20the=20first=20time,=0AX#=20it=20will=20=
 read=20its=20state=20from=20the=20gateway.=0AX=0AX#=20There=20are=20=
 several=20types=20of=20gateway=20implementations.=20For=20more=20=
 information,=0AX#=20see=20=
 <http://elasticsearch.org/guide/reference/modules/gateway>.=0AX=0AX#=20=
 The=20default=20gateway=20type=20is=20the=20"local"=20gateway=20=
 (recommended):=0AX#=0AX#=20gateway.type:=20local=0AX=0AX#=20Settings=20=
 below=20control=20how=20and=20when=20to=20start=20the=20initial=20=
 recovery=20process=20on=0AX#=20a=20full=20cluster=20restart=20(to=20=
 reuse=20as=20much=20local=20data=20as=20possible).=0AX=0AX#=20Allow=20=
 recovery=20process=20after=20N=20nodes=20in=20a=20cluster=20are=20up:=0A=
 X#=0AX#=20gateway.recover_after_nodes:=201=0AX=0AX#=20Set=20the=20=
 timeout=20to=20initiate=20the=20recovery=20process,=20once=20the=20N=20=
 nodes=0AX#=20from=20previous=20setting=20are=20up=20(accepts=20time=20=
 value):=0AX#=0AX#=20gateway.recover_after_time:=205m=0AX=0AX#=20Set=20=
 how=20many=20nodes=20are=20expected=20in=20this=20cluster.=20Once=20=
 these=20N=20nodes=0AX#=20are=20up,=20begin=20recovery=20process=20=
 immediately:=0AX#=0AX#=20gateway.expected_nodes:=202=0AX=0AX=0A=
 X#############################=20Recovery=20Throttling=20=
 #############################=0AX=0AX#=20These=20settings=20allow=20to=20=
 control=20the=20process=20of=20shards=20allocation=20between=0AX#=20=
 nodes=20during=20initial=20recovery,=20replica=20allocation,=20=
 rebalancing,=0AX#=20or=20when=20adding=20and=20removing=20nodes.=0AX=0A=
 X#=20Set=20the=20number=20of=20concurrent=20recoveries=20happening=20on=20=
 a=20node:=0AX#=0AX#=201.=20During=20the=20initial=20recovery=0AX#=0AX#=20=
 cluster.routing.allocation.node_initial_primaries_recoveries:=204=0AX#=0A=
 X#=202.=20During=20adding/removing=20nodes,=20rebalancing,=20etc=0AX#=0A=
 X#=20cluster.routing.allocation.node_concurrent_recoveries:=202=0AX=0AX#=20=
 Set=20to=20throttle=20throughput=20when=20recovering=20(eg.=20100mb,=20=
 by=20default=20unlimited):=0AX#=0AX#=20=
 indices.recovery.max_size_per_sec:=200=0AX=0AX#=20Set=20to=20limit=20the=20=
 number=20of=20open=20concurrent=20streams=20when=0AX#=20recovering=20a=20=
 shard=20from=20a=20peer:=0AX#=0AX#=20=
 indices.recovery.concurrent_streams:=205=0AX=0AX=0A=
 X##################################=20Discovery=20=
 ##################################=0AX=0AX#=20Discovery=20infrastructure=20=
 ensures=20nodes=20can=20be=20found=20within=20a=20cluster=0AX#=20and=20=
 master=20node=20is=20elected.=20Multicast=20discovery=20is=20the=20=
 default.=0AX=0AX#=20Set=20to=20ensure=20a=20node=20sees=20N=20other=20=
 master=20eligible=20nodes=20to=20be=20considered=0AX#=20operational=20=
 within=20the=20cluster.=20Set=20this=20option=20to=20a=20higher=20value=20=
 (2-4)=0AX#=20for=20large=20clusters:=0AX#=0AX#=20=
 discovery.zen.minimum_master_nodes:=201=0AX=0AX#=20Set=20the=20time=20to=20=
 wait=20for=20ping=20responses=20from=20other=20nodes=20when=20=
 discovering.=0AX#=20Set=20this=20option=20to=20a=20higher=20value=20on=20=
 a=20slow=20or=20congested=20network=0AX#=20to=20minimize=20discovery=20=
 failures:=0AX#=0AX#=20discovery.zen.ping.timeout:=203s=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>=0A=
 X#=20for=20more=20information.=0AX=0AX#=20Unicast=20discovery=20allows=20=
 to=20explicitly=20control=20which=20nodes=20will=20be=20used=0AX#=20to=20=
 discover=20the=20cluster.=20It=20can=20be=20used=20when=20multicast=20is=20=
 not=20present,=0AX#=20or=20to=20restrict=20the=20cluster=20=
 communication-wise.=0AX#=0AX#=201.=20Disable=20multicast=20discovery=20=
 (enabled=20by=20default):=0AX#=0AX#=20=
 discovery.zen.ping.multicast.enabled:=20false=0AX#=0AX#=202.=20Configure=20=
 an=20initial=20list=20of=20master=20nodes=20in=20the=20cluster=0AX#=20=20=
 =20=20to=20perform=20discovery=20when=20new=20nodes=20(master=20or=20=
 data)=20are=20started:=0AX#=0AX#=20discovery.zen.ping.unicast.hosts:=20=
 ["host1",=20"host2:port",=20"host3[portX-portY]"]=0AX=0AX#=20EC2=20=
 discovery=20allows=20to=20use=20AWS=20EC2=20API=20in=20order=20to=20=
 perform=20discovery.=0AX#=0AX#=20You=20have=20to=20install=20the=20=
 cloud-aws=20plugin=20for=20enabling=20the=20EC2=20discovery.=0AX#=0AX#=20=
 See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>=0A=
 X#=20for=20more=20information.=0AX#=0AX#=20See=20=
 <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>=0A=
 X#=20for=20a=20step-by-step=20tutorial.=0AX=0AX=0A=
 X##################################=20Slow=20Log=20=
 ##################################=0AX=0AX#=20Shard=20level=20query=20=
 and=20fetch=20threshold=20logging.=0AX=0AX#index.search.slowlog.level:=20=
 TRACE=0AX#index.search.slowlog.threshold.query.warn:=2010s=0A=
 X#index.search.slowlog.threshold.query.info:=205s=0A=
 X#index.search.slowlog.threshold.query.debug:=202s=0A=
 X#index.search.slowlog.threshold.query.trace:=20500ms=0AX=0A=
 X#index.search.slowlog.threshold.fetch.warn:=201s=0A=
 X#index.search.slowlog.threshold.fetch.info:=20800ms=0A=
 X#index.search.slowlog.threshold.fetch.debug:=20500ms=0A=
 X#index.search.slowlog.threshold.fetch.trace:=20200ms=0A=
 598eb73269d83d65a71b10e972503bc9=0Aecho=20x=20-=20=
 logstash/files/logstash.in=0Ased=20's/^X//'=20=
 >logstash/files/logstash.in=20<<=20'0f1ca7b587c13466a7f3a6fad7064657'=0A=
 X#!/bin/sh=0AX=0AX#=20$FreeBSD:=0AX#=20PROVIDE:=20logstash=0AX#=20=
 REQUIRE:=20LOGIN=0AX#=20KEYWORD:=20shutdown=0AX=0AX#=0AX#=20=
 Configuration=20settings=20for=20logstash=20in=20/etc/rc.conf:=0AX#=0AX#=20=
 logstash_enable=20(bool):=0AX#=20=20=20Set=20to=20"NO"=20by=20default.=0A=
 X#=20=20=20Set=20it=20to=20"YES"=20to=20enable=20logstash=0AX#=0AX#=20=
 logstash_mode=20:=0AX#=20=20=20Set=20to=20"standalone"=20by=20default.=0A=
 X#=20=20=20Valid=20options:=0AX#=20=20=20=20=20"standalone":=20agent,=20=
 web=20&=20elasticsearch=0AX#=20=20=20=20=20"web":=20Starts=20logstash=20=
 as=20a=20web=20ui=0AX#=20=20=20=20=20"agent":=20Justs=20works=20as=20a=20=
 log=20shipper=20=0AX#=0AX#=20logstash_logging=20(bool):=0AX#=20=20=20Set=20=
 to=20"NO"=20by=20default.=0AX#=20=20=20Set=20it=20to=20"YES"=20to=20=
 enable=20logstash=20logging=20to=20file=0AX#=20=20=20Default=20output=20=
 to=20/var/log/logstash.log=0AX#=0AX=0AX.=20/etc/rc.subr=0AX=0A=
 Xname=3D"logstash"=0AXrcvar=3Dlogstash_enable=0AX=0A=
 Xpiddir=3D"/var/run/${name}"=0AXpidfile=3D"${piddir}/${name}.pid"=0AX=0A=
 Xif=20[=20-d=20$piddir=20];=20then=0AX=09mkdir=20-p=20$piddir=0AXfi=0AX=0A=
 Xlogdir=3D"/var/log"=0AXcommand=3D"/usr/sbin/daemon"=0AX=0A=
 Xload_rc_config=20"${name}"=0AX=0AX:=20${logstash_enable=3D"NO"}=0AX:=20=
 ${logstash_home=3D"%%LOGSTASH_HOME%%"}=0AX:=20=
 ${logstash_config=3D"%%PREFIX%%/etc/${name}/${name}.conf"}=0AX:=20=
 ${logstash_jar=3D"%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}=0AX:=20=
 ${logstash_java_home=3D"%%JAVA_HOME%%"}=0AX:=20${logstash_log=3D"NO"}=0A=
 X:=20${logstash_mode=3D"standalone"}=0AX:=20${logstash_port=3D"9292"}=0A=
 X:=20${logstash_elastic_backend=3D""}=0AX:=20=
 ${logstash_log_file=3D"${logdir}/${name}.log"}=0AX:=20=
 ${logstash_elastic_datadir=3D"%%LOGSTASH_DATA_DIR%%"}=0AX=0A=
 Xjava_cmd=3D"${logstash_java_home}/bin/java"=0AXprocname=3D"${java_cmd}"=0A=
 X=0AXlogstash_chdir=3D${logstash_home}=0AXlogstash_log_options=3D""=0A=
 Xlogstash_elastic_options=3D""=0AX=0AXif=20[=20${logstash_log}=20=3D=3D=20=
 "YES"=20];=20then=0AX=09logstash_log_options=3D"=20--log=20=
 ${logstash_log_file}"=20=0AXfi=0AX=0AXif=20[=20${logstash_mode}=20=3D=3D=20=
 "standalone"=20];=20then=0AX=09logstash_args=3D"agent=20-f=20=
 ${logstash_config}=20--=20web=20--port=20${logstash_port}=20--backend=20=
 elasticsearch:///?local=20${logstash_log_options}"=0AX=09=
 logstash_elastic_options=3D"=20=
 -Des.path.data=3D${logstash_elastic_datadir}"=0AXelif=20[=20=
 ${logstash_mode}=20=3D=3D=20"agent"=20];then=0AX=09logstash_args=3D"agent=20=
 -f=20${logstash_config}=20${logstash_log_options}"=0AXelif=20[=20=
 ${logstash_mode}=20=3D=3D=20"web"=20];then=0AX=09logstash_args=3D"web=20=
 --port=20${logstash_port}=20--backend=20=
 elasticsearch://${logstash_elastic_backend}/=20${logstash_log_options}"=0A=
 Xfi=0AX=0AXcommand_args=3D"-f=20-p=20${pidfile}=20${java_cmd}=20=
 ${logstash_elastic_options}=20-jar=20${logstash_jar}=20${logstash_args}"=0A=
 Xrequired_files=3D"${java_cmd}=20${logstash_config}"=0AX=0A=
 Xrun_rc_command=20"$1"=0A0f1ca7b587c13466a7f3a6fad7064657=0Aexit=0A=0A=
 
 --Apple-Mail=_4988ACAB-DC10-4793-B0AA-517C9E30A550--

From: Guido Falsi <madpilot@FreeBSD.org>
To: bug-followup@FreeBSD.org, 
 "Regis A. Despres" <regis.despres@gmail.com>
Cc: daniel@ish.com.au
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and
 collecting tool)
Date: Mon, 15 Jul 2013 17:00:42 +0200

 This is a multi-part message in MIME format.
 --------------000807050607010909070206
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Hi again.
 
 I fixed a few style issues in the rc script. Can you please test it and 
 approve this last change?
 
 Thanks a lot!
 
 -- 
 Guido Falsi <madpilot@FreeBSD.org>
 
 --------------000807050607010909070206
 Content-Type: text/plain; charset=UTF-8;
  name="logstash.shar"
 Content-Transfer-Encoding: 8bit
 Content-Disposition: attachment;
  filename="logstash.shar"
 
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
 # have default permissions.
 #
 # This archive contains:
 #
 #	logstash
 #	logstash/pkg-plist
 #	logstash/Makefile
 #	logstash/files
 #	logstash/files/logstash.conf.sample
 #	logstash/files/elasticsearch.yml.sample
 #	logstash/files/logstash.in
 #	logstash/distinfo
 #	logstash/pkg-descr
 #
 echo c - logstash
 mkdir -p logstash > /dev/null 2>&1
 echo x - logstash/pkg-plist
 sed 's/^X//' >logstash/pkg-plist << 'b88d9aee40fac03c7f8520b4cf627738'
 X%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%
 X@exec mkdir -p %%LOGSTASH_RUN%%
 X@exec mkdir -p %%LOGSTASH_DATA_DIR%%
 X@unexec if cmp -s %D/%%ETCDIR%%/logstash.conf.sample %D/%%ETCDIR%%/logstash.conf; then rm -f %D/%%ETCDIR%%/logstash.conf; fi
 X%%ETCDIR%%/logstash.conf.sample
 X@exec if [ ! -f  %D/%%ETCDIR%%/logstash.conf ] ; then cp -p %D/%F %B/logstash.conf; fi
 X@unexec if cmp -s %D/%%ETCDIR%%/elasticsearch.yml.sample %D/%%ETCDIR%%/elasticsearch.yml; then rm -f %D/%%ETCDIR%%/elasticsearch.yml; fi
 X%%ETCDIR%%/elasticsearch.yml.sample
 X@exec if [ ! -f  %D/%%ETCDIR%%/elasticsearch.yml ] ; then cp -p %D/%F %B/elasticsearch.yml; fi
 X@dirrmtry %%LOGSTASH_DATA_DIR%%
 X@dirrmtry %%LOGSTASH_HOME%%
 X@dirrmtry %%ETCDIR%%
 X@dirrmtry %%LOGSTASH_RUN%%
 b88d9aee40fac03c7f8520b4cf627738
 echo x - logstash/Makefile
 sed 's/^X//' >logstash/Makefile << '58caac783f1d72028817b3f79ec306ec'
 X# Created by: Daniel Solsona <daniel@ish.com.au>, Guido Falsi <madpilot@FreeBSD.org>
 X# $FreeBSD$
 X
 XPORTNAME=	logstash
 XPORTVERSION=	1.1.13
 XCATEGORIES=	sysutils java
 XMASTER_SITES=	https://logstash.objects.dreamhost.com/release/ \
 X		http://semicomplete.com/files/logstash/
 XDISTNAME=	${PORTNAME}-${PORTVERSION}-flatjar
 XEXTRACT_SUFX=	.jar
 XEXTRACT_ONLY=
 X
 XMAINTAINER=	regis.despres@gmail.com
 XCOMMENT=	Tool for managing events and logs
 X
 XUSE_JAVA=	yes
 XJAVA_VERSION=	1.5+
 X
 XNO_BUILD=	yes
 X
 XUSE_RC_SUBR=	logstash
 X
 XLOGSTASH_HOME?=	${PREFIX}/${PORTNAME}
 XLOGSTASH_HOME_REL?=	${LOGSTASH_HOME:S,^${PREFIX}/,,}
 XLOGSTASH_JAR?=	${DISTNAME}${EXTRACT_SUFX}
 XLOGSTASH_RUN?=	/var/run/${PORTNAME}
 XLOGSTASH_DATA_DIR?=	/var/db/${PORTNAME}
 X
 XSUB_LIST=	LOGSTASH_DATA_DIR=${LOGSTASH_DATA_DIR} JAVA_HOME=${JAVA_HOME} \
 X		LOGSTASH_HOME=${LOGSTASH_HOME} LOGSTASH_JAR=${LOGSTASH_JAR}
 XPLIST_SUB+=	LOGSTASH_HOME=${LOGSTASH_HOME_REL} LOGSTASH_JAR=${LOGSTASH_JAR} \
 X		LOGSTASH_RUN=${LOGSTASH_RUN} \
 X		LOGSTASH_DATA_DIR=${LOGSTASH_DATA_DIR}
 X
 Xdo-install:
 X	${MKDIR} ${LOGSTASH_RUN}
 X	${MKDIR} ${ETCDIR}
 X	${MKDIR} ${LOGSTASH_HOME}
 X	${MKDIR} ${LOGSTASH_DATA_DIR}
 X	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR} ${LOGSTASH_HOME}
 X	${INSTALL_DATA} ${FILESDIR}/logstash.conf.sample ${ETCDIR}
 X	@if [ ! -f ${ETCDIR}/logstash.conf ]; then \
 X		${CP} -p ${ETCDIR}/logstash.conf.sample ${ETCDIR}/logstash.conf ; \
 X	fi
 X	${INSTALL_DATA} ${FILESDIR}/elasticsearch.yml.sample ${ETCDIR}
 X	@if [ ! -f ${ETCDIR}/elasticsearch.yml ]; then \
 X		${CP} -p ${ETCDIR}/elasticsearch.yml.sample ${ETCDIR}/elasticsearch.yml ; \
 X	fi
 X
 X.include <bsd.port.mk>
 58caac783f1d72028817b3f79ec306ec
 echo c - logstash/files
 mkdir -p logstash/files > /dev/null 2>&1
 echo x - logstash/files/logstash.conf.sample
 sed 's/^X//' >logstash/files/logstash.conf.sample << '8c0433569bd185de29414aeb59f76651'
 Xinput {
 X  file {
 X    type => "system logs"
 X
 X  #  # Wildcards work, here :)
 X  #  path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
 X    path => [ "/var/log/messages" ]
 X  }
 X
 X  #file {
 X  #  type => "Hudson-access"
 X  #  path => "/var/log/www/hudson.ish.com.au-access_log"
 X  #}
 X
 X  #file {
 X  #          type => "Syslog"
 X  #  path => "/var/log/messages"
 X  #}
 X}
 X
 Xoutput {
 X  # Emit events to stdout for easy debugging of what is going through
 X  # logstash.
 X  #stdout { }
 X
 X  # This will use elasticsearch to store your logs.
 X  # The 'embedded' option will cause logstash to run the elasticsearch
 X  # server in the same process, so you don't have to worry about
 X  # how to download, configure, or run elasticsearch!
 X  elasticsearch { 
 X     embedded => true
 X     #embedded_http_port => 9200
 X     #cluster => elasticsearch
 X     #host => host
 X     #port => port
 X      
 X  }
 X}
 8c0433569bd185de29414aeb59f76651
 echo x - logstash/files/elasticsearch.yml.sample
 sed 's/^X//' >logstash/files/elasticsearch.yml.sample << '598eb73269d83d65a71b10e972503bc9'
 X##################### ElasticSearch Configuration Example #####################
 X
 X# This file contains an overview of various configuration settings,
 X# targeted at operations staff. Application developers should
 X# consult the guide at <http://elasticsearch.org/guide>.
 X#
 X# The installation procedure is covered at
 X# <http://elasticsearch.org/guide/reference/setup/installation.html>.
 X#
 X# ElasticSearch comes with reasonable defaults for most settings,
 X# so you can try it out without bothering with configuration.
 X#
 X# Most of the time, these defaults are just fine for running a production
 X# cluster. If you're fine-tuning your cluster, or wondering about the
 X# effect of certain configuration option, please _do ask_ on the
 X# mailing list or IRC channel [http://elasticsearch.org/community].
 X
 X# Any element in the configuration can be replaced with environment variables
 X# by placing them in ${...} notation. For example:
 X#
 X# node.rack: ${RACK_ENV_VAR}
 X
 X# See <http://elasticsearch.org/guide/reference/setup/configuration.html>
 X# for information on supported formats and syntax for the configuration file.
 X
 X
 X################################### Cluster ###################################
 X
 X# Cluster name identifies your cluster for auto-discovery. If you're running
 X# multiple clusters on the same network, make sure you're using unique names.
 X#
 X# cluster.name: elasticsearch
 X
 X
 X#################################### Node #####################################
 X
 X# Node names are generated dynamically on startup, so you're relieved
 X# from configuring them manually. You can tie this node to a specific name:
 X#
 X# node.name: "Franz Kafka"
 X
 X# Every node can be configured to allow or deny being eligible as the master,
 X# and to allow or deny to store the data.
 X#
 X# Allow this node to be eligible as a master node (enabled by default):
 X#
 X# node.master: true
 X#
 X# Allow this node to store data (enabled by default):
 X#
 X# node.data: true
 X
 X# You can exploit these settings to design advanced cluster topologies.
 X#
 X# 1. You want this node to never become a master node, only to hold data.
 X#    This will be the "workhorse" of your cluster.
 X#
 X# node.master: false
 X# node.data: true
 X#
 X# 2. You want this node to only serve as a master: to not store any data and
 X#    to have free resources. This will be the "coordinator" of your cluster.
 X#
 X# node.master: true
 X# node.data: false
 X#
 X# 3. You want this node to be neither master nor data node, but
 X#    to act as a "search load balancer" (fetching data from nodes,
 X#    aggregating results, etc.)
 X#
 X# node.master: false
 X# node.data: false
 X
 X# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
 X# Node Info API [http://localhost:9200/_cluster/nodes] or GUI tools
 X# such as <http://github.com/lukas-vlcek/bigdesk> and
 X# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state.
 X
 X# A node can have generic attributes associated with it, which can later be used
 X# for customized shard allocation filtering, or allocation awareness. An attribute
 X# is a simple key value pair, similar to node.key: value, here is an example:
 X#
 X# node.rack: rack314
 X
 X
 X#################################### Index ####################################
 X
 X# You can set a number of options (such as shard/replica options, mapping
 X# or analyzer definitions, translog settings, ...) for indices globally,
 X# in this file.
 X#
 X# Note, that it makes more sense to configure index settings specifically for
 X# a certain index, either when creating it or by using the index templates API.
 X#
 X# See <http://elasticsearch.org/guide/reference/index-modules/> and
 X# <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.html>
 X# for more information.
 X
 X# Set the number of shards (splits) of an index (5 by default):
 X#
 X# index.number_of_shards: 5
 X
 X# Set the number of replicas (additional copies) of an index (1 by default):
 X#
 X# index.number_of_replicas: 1
 X
 X# Note, that for development on a local machine, with small indices, it usually
 X# makes sense to "disable" the distributed features:
 X#
 X# index.number_of_shards: 1
 X# index.number_of_replicas: 0
 X
 X# These settings directly affect the performance of index and search operations
 X# in your cluster. Assuming you have enough machines to hold shards and
 X# replicas, the rule of thumb is:
 X#
 X# 1. Having more *shards* enhances the _indexing_ performance and allows to
 X#    _distribute_ a big index across machines.
 X# 2. Having more *replicas* enhances the _search_ performance and improves the
 X#    cluster _availability_.
 X#
 X# The "number_of_shards" is a one-time setting for an index.
 X#
 X# The "number_of_replicas" can be increased or decreased anytime,
 X# by using the Index Update Settings API.
 X#
 X# ElasticSearch takes care about load balancing, relocating, gathering the
 X# results from nodes, etc. Experiment with different settings to fine-tune
 X# your setup.
 X
 X# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect
 X# the index status.
 X
 X
 X#################################### Paths ####################################
 X
 X# Path to directory containing configuration (this file and logging.yml):
 X#
 X# path.conf: /path/to/conf
 X
 X# Path to directory where to store index data allocated for this node.
 X#
 X# path.data: /path/to/data
 X#
 X# Can optionally include more than one location, causing data to be striped across
 X# the locations (ÃÂÃÂ  la RAID 0) on a file level, favouring locations with most free
 X# space on creation. For example:
 X#
 X# path.data: /path/to/data1,/path/to/data2
 X
 X# Path to temporary files:
 X#
 X# path.work: /path/to/work
 X
 X# Path to log files:
 X#
 X# path.logs: /path/to/logs
 X
 X# Path to where plugins are installed:
 X#
 X# path.plugins: /path/to/plugins
 X
 X
 X################################### Memory ####################################
 X
 X# ElasticSearch performs poorly when JVM starts swapping: you should ensure that
 X# it _never_ swaps.
 X#
 X# Set this property to true to lock the memory:
 X#
 X# bootstrap.mlockall: true
 X
 X# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
 X# to the same value, and that the machine has enough memory to allocate
 X# for ElasticSearch, leaving enough memory for the operating system itself.
 X#
 X# You should also make sure that the ElasticSearch process is allowed to lock
 X# the memory, eg. by using `ulimit -l unlimited`.
 X
 X
 X############################## Network And HTTP ###############################
 X
 X# ElasticSearch, by default, binds itself to the 0.0.0.0 address, and listens
 X# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
 X# communication. (the range means that if the port is busy, it will automatically
 X# try the next port).
 X
 X# Set the bind address specifically (IPv4 or IPv6):
 X#
 X# network.bind_host: 192.168.0.1
 X
 X# Set the address other nodes will use to communicate with this node. If not
 X# set, it is automatically derived. It must point to an actual IP address.
 X#
 X# network.publish_host: 192.168.0.1
 X
 X# Set both 'bind_host' and 'publish_host':
 X#
 X# network.host: 192.168.0.1
 X
 X# Set a custom port for the node to node communication (9300 by default):
 X#
 X# transport.port: 9300
 X
 X# Enable compression for all communication between nodes (disabled by default):
 X#
 X# transport.tcp.compress: true
 X
 X# Set a custom port to listen for HTTP traffic:
 X#
 X# http.port: 9200
 X
 X# Set a custom allowed content length:
 X#
 X# http.max_content_length: 100mb
 X
 X# Disable HTTP completely:
 X#
 X# http.enabled: false
 X
 X
 X################################### Gateway ###################################
 X
 X# The gateway allows for persisting the cluster state between full cluster
 X# restarts. Every change to the state (such as adding an index) will be stored
 X# in the gateway, and when the cluster starts up for the first time,
 X# it will read its state from the gateway.
 X
 X# There are several types of gateway implementations. For more information,
 X# see <http://elasticsearch.org/guide/reference/modules/gateway>.
 X
 X# The default gateway type is the "local" gateway (recommended):
 X#
 X# gateway.type: local
 X
 X# Settings below control how and when to start the initial recovery process on
 X# a full cluster restart (to reuse as much local data as possible).
 X
 X# Allow recovery process after N nodes in a cluster are up:
 X#
 X# gateway.recover_after_nodes: 1
 X
 X# Set the timeout to initiate the recovery process, once the N nodes
 X# from previous setting are up (accepts time value):
 X#
 X# gateway.recover_after_time: 5m
 X
 X# Set how many nodes are expected in this cluster. Once these N nodes
 X# are up, begin recovery process immediately:
 X#
 X# gateway.expected_nodes: 2
 X
 X
 X############################# Recovery Throttling #############################
 X
 X# These settings allow to control the process of shards allocation between
 X# nodes during initial recovery, replica allocation, rebalancing,
 X# or when adding and removing nodes.
 X
 X# Set the number of concurrent recoveries happening on a node:
 X#
 X# 1. During the initial recovery
 X#
 X# cluster.routing.allocation.node_initial_primaries_recoveries: 4
 X#
 X# 2. During adding/removing nodes, rebalancing, etc
 X#
 X# cluster.routing.allocation.node_concurrent_recoveries: 2
 X
 X# Set to throttle throughput when recovering (eg. 100mb, by default unlimited):
 X#
 X# indices.recovery.max_size_per_sec: 0
 X
 X# Set to limit the number of open concurrent streams when
 X# recovering a shard from a peer:
 X#
 X# indices.recovery.concurrent_streams: 5
 X
 X
 X################################## Discovery ##################################
 X
 X# Discovery infrastructure ensures nodes can be found within a cluster
 X# and master node is elected. Multicast discovery is the default.
 X
 X# Set to ensure a node sees N other master eligible nodes to be considered
 X# operational within the cluster. Set this option to a higher value (2-4)
 X# for large clusters:
 X#
 X# discovery.zen.minimum_master_nodes: 1
 X
 X# Set the time to wait for ping responses from other nodes when discovering.
 X# Set this option to a higher value on a slow or congested network
 X# to minimize discovery failures:
 X#
 X# discovery.zen.ping.timeout: 3s
 X
 X# See <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>
 X# for more information.
 X
 X# Unicast discovery allows to explicitly control which nodes will be used
 X# to discover the cluster. It can be used when multicast is not present,
 X# or to restrict the cluster communication-wise.
 X#
 X# 1. Disable multicast discovery (enabled by default):
 X#
 X# discovery.zen.ping.multicast.enabled: false
 X#
 X# 2. Configure an initial list of master nodes in the cluster
 X#    to perform discovery when new nodes (master or data) are started:
 X#
 X# discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
 X
 X# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
 X#
 X# You have to install the cloud-aws plugin for enabling the EC2 discovery.
 X#
 X# See <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>
 X# for more information.
 X#
 X# See <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>
 X# for a step-by-step tutorial.
 X
 X
 X################################## Slow Log ##################################
 X
 X# Shard level query and fetch threshold logging.
 X
 X#index.search.slowlog.level: TRACE
 X#index.search.slowlog.threshold.query.warn: 10s
 X#index.search.slowlog.threshold.query.info: 5s
 X#index.search.slowlog.threshold.query.debug: 2s
 X#index.search.slowlog.threshold.query.trace: 500ms
 X
 X#index.search.slowlog.threshold.fetch.warn: 1s
 X#index.search.slowlog.threshold.fetch.info: 800ms
 X#index.search.slowlog.threshold.fetch.debug: 500ms
 X#index.search.slowlog.threshold.fetch.trace: 200ms
 598eb73269d83d65a71b10e972503bc9
 echo x - logstash/files/logstash.in
 sed 's/^X//' >logstash/files/logstash.in << '0f1ca7b587c13466a7f3a6fad7064657'
 X#!/bin/sh
 X
 X# $FreeBSD$
 X#
 X# PROVIDE: logstash
 X# REQUIRE: LOGIN
 X# KEYWORD: shutdown
 X#
 X#
 X# Configuration settings for logstash in /etc/rc.conf:
 X#
 X# logstash_enable (bool):
 X#   Set to "NO" by default.
 X#   Set it to "YES" to enable logstash
 X#
 X# logstash_mode :
 X#   Set to "standalone" by default.
 X#   Valid options:
 X#     "standalone": agent, web & elasticsearch
 X#     "web": Starts logstash as a web ui
 X#     "agent": Justs works as a log shipper 
 X#
 X# logstash_logging (bool):
 X#   Set to "NO" by default.
 X#   Set it to "YES" to enable logstash logging to file
 X#   Default output to /var/log/logstash.log
 X#
 X
 X. /etc/rc.subr
 X
 Xname=logstash
 Xrcvar=logstash_enable
 X
 Xload_rc_config ${name}
 X
 X: ${logstash_enable="NO"}
 X: ${logstash_home="%%LOGSTASH_HOME%%"}
 X: ${logstash_config="%%PREFIX%%/etc/${name}/${name}.conf"}
 X: ${logstash_jar="%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}
 X: ${logstash_java_home="%%JAVA_HOME%%"}
 X: ${logstash_log="NO"}
 X: ${logstash_mode="standalone"}
 X: ${logstash_port="9292"}
 X: ${logstash_elastic_backend=""}
 X: ${logstash_log_file="${logdir}/${name}.log"}
 X: ${logstash_elastic_datadir="%%LOGSTASH_DATA_DIR%%"}
 X
 Xpiddir=/var/run/${name}
 Xpidfile=${piddir}/${name}.pid
 X
 Xif [ -d $piddir ]; then
 X	mkdir -p $piddir
 Xfi
 X
 Xlogdir="/var/log"
 Xcommand="/usr/sbin/daemon"
 X
 Xjava_cmd="${logstash_java_home}/bin/java"
 Xprocname="${java_cmd}"
 X
 Xlogstash_chdir=${logstash_home}
 Xlogstash_log_options=""
 Xlogstash_elastic_options=""
 X
 Xif checkyesno logstash_log; then
 X	logstash_log_options=" --log ${logstash_log_file}" 
 Xfi
 X
 Xif [ ${logstash_mode} = "standalone" ]; then
 X	logstash_args="agent -f ${logstash_config} --web --port ${logstash_port} --backend elasticsearch:///?local ${logstash_log_options}"
 X	logstash_elastic_options="-Des.path.data=${logstash_elastic_datadir}"
 Xelif [ ${logstash_mode} = "agent" ]; then
 X	logstash_args="agent -f ${logstash_config} ${logstash_log_options}"
 Xelif [ ${logstash_mode} = "web" ]; then
 X	logstash_args="web --port ${logstash_port} --backend elasticsearch://${logstash_elastic_backend}/ ${logstash_log_options}"
 Xfi
 X
 Xcommand_args="-f -p ${pidfile} ${java_cmd} ${logstash_elastic_options} -jar ${logstash_jar} ${logstash_args}"
 Xrequired_files="${java_cmd} ${logstash_config}"
 X
 Xrun_rc_command "$1"
 0f1ca7b587c13466a7f3a6fad7064657
 echo x - logstash/distinfo
 sed 's/^X//' >logstash/distinfo << '8a7498b9608da6df76161c7712d9c4de'
 XSHA256 (logstash-1.1.13-flatjar.jar) = 5ba0639ff4da064c2a4f6a04bd7006b1997a6573859d3691e210b6855e1e47f1
 XSIZE (logstash-1.1.13-flatjar.jar) = 69485313
 8a7498b9608da6df76161c7712d9c4de
 echo x - logstash/pkg-descr
 sed 's/^X//' >logstash/pkg-descr << 'e951d49595615b1bac2b63587f1fb181'
 Xlogstash is a tool for managing events and logs. You can use it to
 Xcollect logs, parse them, and store them for later use (like, for
 Xsearching). Speaking of searching, logstash comes with a web interface
 Xfor searching and drilling into all of your logs.
 X
 XWWW: http://logstash.net/
 e951d49595615b1bac2b63587f1fb181
 exit
 
 
 --------------000807050607010909070206--

From: "Regis A. Despres" <regis.despres@gmail.com>
To: Guido Falsi <madpilot@FreeBSD.org>
Cc: bug-followup@FreeBSD.org,
 daniel@ish.com.au
Subject: Re: ports/168266: New port: sysutils/logstash (log monitoring and collecting tool)
Date: Tue, 16 Jul 2013 12:12:11 +0200

 --Apple-Mail=_635D4ED3-733D-4A62-9DF5-74A19C810B6B
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=iso-8859-1
 
 Hello hello,
 
 Everything works perfectly once the space between "--" and "web" added =
 back line 70 in the standalone args definition =3D)
 SHAR updated accordingly in attachment.
 
 
 Regards,
 
 
 
 --=20
 Regis A. Despres
 
 --Apple-Mail=_635D4ED3-733D-4A62-9DF5-74A19C810B6B
 Content-Disposition: attachment;
 	filename=logstash.shar
 Content-Type: application/octet-stream;
 	name="logstash.shar"
 Content-Transfer-Encoding: quoted-printable
 
 #=20This=20is=20a=20shell=20archive.=20=20Save=20it=20in=20a=20file,=20=
 remove=20anything=20before=0A#=20this=20line,=20and=20then=20unpack=20it=20=
 by=20entering=20"sh=20file".=20=20Note,=20it=20may=0A#=20create=20=
 directories;=20files=20and=20directories=20will=20be=20owned=20by=20you=20=
 and=0A#=20have=20default=20permissions.=0A#=0A#=20This=20archive=20=
 contains:=0A#=0A#=09logstash=0A#=09logstash/distinfo=0A#=09=
 logstash/Makefile=0A#=09logstash/pkg-descr=0A#=09logstash/pkg-plist=0A#=09=
 logstash/files=0A#=09logstash/files/logstash.conf.sample=0A#=09=
 logstash/files/elasticsearch.yml.sample=0A#=09logstash/files/logstash.in=0A=
 #=0Aecho=20c=20-=20logstash=0Amkdir=20-p=20logstash=20>=20/dev/null=20=
 2>&1=0Aecho=20x=20-=20logstash/distinfo=0Ased=20's/^X//'=20=
 >logstash/distinfo=20<<=20'8a7498b9608da6df76161c7712d9c4de'=0AXSHA256=20=
 (logstash-1.1.13-flatjar.jar)=20=3D=20=
 5ba0639ff4da064c2a4f6a04bd7006b1997a6573859d3691e210b6855e1e47f1=0AXSIZE=20=
 (logstash-1.1.13-flatjar.jar)=20=3D=2069485313=0A=
 8a7498b9608da6df76161c7712d9c4de=0Aecho=20x=20-=20logstash/Makefile=0A=
 sed=20's/^X//'=20>logstash/Makefile=20<<=20=
 '58caac783f1d72028817b3f79ec306ec'=0AX#=20Created=20by:=20Daniel=20=
 Solsona=20<daniel@ish.com.au>,=20Guido=20Falsi=20<madpilot@FreeBSD.org>=0A=
 X#=20$FreeBSD$=0AX=0AXPORTNAME=3D=09logstash=0AXPORTVERSION=3D=091.1.13=0A=
 XCATEGORIES=3D=09sysutils=20java=0AXMASTER_SITES=3D=09=
 https://logstash.objects.dreamhost.com/release/=20\=0AX=09=09=
 http://semicomplete.com/files/logstash/=0AXDISTNAME=3D=09=
 ${PORTNAME}-${PORTVERSION}-flatjar=0AXEXTRACT_SUFX=3D=09.jar=0A=
 XEXTRACT_ONLY=3D=0AX=0AXMAINTAINER=3D=09regis.despres@gmail.com=0A=
 XCOMMENT=3D=09Tool=20for=20managing=20events=20and=20logs=0AX=0A=
 XUSE_JAVA=3D=09yes=0AXJAVA_VERSION=3D=091.5+=0AX=0AXNO_BUILD=3D=09yes=0A=
 X=0AXUSE_RC_SUBR=3D=09logstash=0AX=0AXLOGSTASH_HOME?=3D=09=
 ${PREFIX}/${PORTNAME}=0AXLOGSTASH_HOME_REL?=3D=09=
 ${LOGSTASH_HOME:S,^${PREFIX}/,,}=0AXLOGSTASH_JAR?=3D=09=
 ${DISTNAME}${EXTRACT_SUFX}=0AXLOGSTASH_RUN?=3D=09/var/run/${PORTNAME}=0A=
 XLOGSTASH_DATA_DIR?=3D=09/var/db/${PORTNAME}=0AX=0AXSUB_LIST=3D=09=
 LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=20JAVA_HOME=3D${JAVA_HOME}=20\=0A=
 X=09=09LOGSTASH_HOME=3D${LOGSTASH_HOME}=20LOGSTASH_JAR=3D${LOGSTASH_JAR}=0A=
 XPLIST_SUB+=3D=09LOGSTASH_HOME=3D${LOGSTASH_HOME_REL}=20=
 LOGSTASH_JAR=3D${LOGSTASH_JAR}=20\=0AX=09=09LOGSTASH_RUN=3D${LOGSTASH_RUN}=
 =20\=0AX=09=09LOGSTASH_DATA_DIR=3D${LOGSTASH_DATA_DIR}=0AX=0A=
 Xdo-install:=0AX=09${MKDIR}=20${LOGSTASH_RUN}=0AX=09${MKDIR}=20${ETCDIR}=0A=
 X=09${MKDIR}=20${LOGSTASH_HOME}=0AX=09${MKDIR}=20${LOGSTASH_DATA_DIR}=0A=
 X=09${INSTALL_DATA}=20${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR}=20=
 ${LOGSTASH_HOME}=0AX=09${INSTALL_DATA}=20=
 ${FILESDIR}/logstash.conf.sample=20${ETCDIR}=0AX=09@if=20[=20!=20-f=20=
 ${ETCDIR}/logstash.conf=20];=20then=20\=0AX=09=09${CP}=20-p=20=
 ${ETCDIR}/logstash.conf.sample=20${ETCDIR}/logstash.conf=20;=20\=0AX=09=
 fi=0AX=09${INSTALL_DATA}=20${FILESDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}=0AX=09@if=20[=20!=20-f=20${ETCDIR}/elasticsearch.yml=20];=20=
 then=20\=0AX=09=09${CP}=20-p=20${ETCDIR}/elasticsearch.yml.sample=20=
 ${ETCDIR}/elasticsearch.yml=20;=20\=0AX=09fi=0AX=0AX.include=20=
 <bsd.port.mk>=0A58caac783f1d72028817b3f79ec306ec=0Aecho=20x=20-=20=
 logstash/pkg-descr=0Ased=20's/^X//'=20>logstash/pkg-descr=20<<=20=
 'e951d49595615b1bac2b63587f1fb181'=0AXlogstash=20is=20a=20tool=20for=20=
 managing=20events=20and=20logs.=20You=20can=20use=20it=20to=0AXcollect=20=
 logs,=20parse=20them,=20and=20store=20them=20for=20later=20use=20(like,=20=
 for=0AXsearching).=20Speaking=20of=20searching,=20logstash=20comes=20=
 with=20a=20web=20interface=0AXfor=20searching=20and=20drilling=20into=20=
 all=20of=20your=20logs.=0AX=0AXWWW:=20http://logstash.net/=0A=
 e951d49595615b1bac2b63587f1fb181=0Aecho=20x=20-=20logstash/pkg-plist=0A=
 sed=20's/^X//'=20>logstash/pkg-plist=20<<=20=
 'b88d9aee40fac03c7f8520b4cf627738'=0AX%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%=0A=
 X@exec=20mkdir=20-p=20%%LOGSTASH_RUN%%=0AX@exec=20mkdir=20-p=20=
 %%LOGSTASH_DATA_DIR%%=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/logstash.conf.sample=20%D/%%ETCDIR%%/logstash.conf;=20then=20=
 rm=20-f=20%D/%%ETCDIR%%/logstash.conf;=20fi=0A=
 X%%ETCDIR%%/logstash.conf.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/logstash.conf=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/logstash.conf;=20fi=0AX@unexec=20if=20cmp=20-s=20=
 %D/%%ETCDIR%%/elasticsearch.yml.sample=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20then=20rm=20-f=20=
 %D/%%ETCDIR%%/elasticsearch.yml;=20fi=0A=
 X%%ETCDIR%%/elasticsearch.yml.sample=0AX@exec=20if=20[=20!=20-f=20=20=
 %D/%%ETCDIR%%/elasticsearch.yml=20]=20;=20then=20cp=20-p=20%D/%F=20=
 %B/elasticsearch.yml;=20fi=0AX@dirrmtry=20%%LOGSTASH_DATA_DIR%%=0A=
 X@dirrmtry=20%%LOGSTASH_HOME%%=0AX@dirrmtry=20%%ETCDIR%%=0AX@dirrmtry=20=
 %%LOGSTASH_RUN%%=0Ab88d9aee40fac03c7f8520b4cf627738=0Aecho=20c=20-=20=
 logstash/files=0Amkdir=20-p=20logstash/files=20>=20/dev/null=202>&1=0A=
 echo=20x=20-=20logstash/files/logstash.conf.sample=0Ased=20's/^X//'=20=
 >logstash/files/logstash.conf.sample=20<<=20=
 '8c0433569bd185de29414aeb59f76651'=0AXinput=20{=0AX=20=20file=20{=0AX=20=20=
 =20=20type=20=3D>=20"system=20logs"=0AX=0AX=20=20#=20=20#=20Wildcards=20=
 work,=20here=20:)=0AX=20=20#=20=20path=20=3D>=20[=20"/var/log/*.log",=20=
 "/var/log/messages",=20"/var/log/syslog"=20]=0AX=20=20=20=20path=20=3D>=20=
 [=20"/var/log/messages"=20]=0AX=20=20}=0AX=0AX=20=20#file=20{=0AX=20=20#=20=
 =20type=20=3D>=20"Hudson-access"=0AX=20=20#=20=20path=20=3D>=20=
 "/var/log/www/hudson.ish.com.au-access_log"=0AX=20=20#}=0AX=0AX=20=20=
 #file=20{=0AX=20=20#=20=20=20=20=20=20=20=20=20=20type=20=3D>=20"Syslog"=0A=
 X=20=20#=20=20path=20=3D>=20"/var/log/messages"=0AX=20=20#}=0AX}=0AX=0A=
 Xoutput=20{=0AX=20=20#=20Emit=20events=20to=20stdout=20for=20easy=20=
 debugging=20of=20what=20is=20going=20through=0AX=20=20#=20logstash.=0AX=20=
 =20#stdout=20{=20}=0AX=0AX=20=20#=20This=20will=20use=20elasticsearch=20=
 to=20store=20your=20logs.=0AX=20=20#=20The=20'embedded'=20option=20will=20=
 cause=20logstash=20to=20run=20the=20elasticsearch=0AX=20=20#=20server=20=
 in=20the=20same=20process,=20so=20you=20don't=20have=20to=20worry=20=
 about=0AX=20=20#=20how=20to=20download,=20configure,=20or=20run=20=
 elasticsearch!=0AX=20=20elasticsearch=20{=20=0AX=20=20=20=20=20embedded=20=
 =3D>=20true=0AX=20=20=20=20=20#embedded_http_port=20=3D>=209200=0AX=20=20=
 =20=20=20#cluster=20=3D>=20elasticsearch=0AX=20=20=20=20=20#host=20=3D>=20=
 host=0AX=20=20=20=20=20#port=20=3D>=20port=0AX=20=20=20=20=20=20=0AX=20=20=
 }=0AX}=0A8c0433569bd185de29414aeb59f76651=0Aecho=20x=20-=20=
 logstash/files/elasticsearch.yml.sample=0Ased=20's/^X//'=20=
 >logstash/files/elasticsearch.yml.sample=20<<=20=
 '598eb73269d83d65a71b10e972503bc9'=0AX#####################=20=
 ElasticSearch=20Configuration=20Example=20#####################=0AX=0AX#=20=
 This=20file=20contains=20an=20overview=20of=20various=20configuration=20=
 settings,=0AX#=20targeted=20at=20operations=20staff.=20Application=20=
 developers=20should=0AX#=20consult=20the=20guide=20at=20=
 <http://elasticsearch.org/guide>.=0AX#=0AX#=20The=20installation=20=
 procedure=20is=20covered=20at=0AX#=20=
 <http://elasticsearch.org/guide/reference/setup/installation.html>.=0AX#=0A=
 X#=20ElasticSearch=20comes=20with=20reasonable=20defaults=20for=20most=20=
 settings,=0AX#=20so=20you=20can=20try=20it=20out=20without=20bothering=20=
 with=20configuration.=0AX#=0AX#=20Most=20of=20the=20time,=20these=20=
 defaults=20are=20just=20fine=20for=20running=20a=20production=0AX#=20=
 cluster.=20If=20you're=20fine-tuning=20your=20cluster,=20or=20wondering=20=
 about=20the=0AX#=20effect=20of=20certain=20configuration=20option,=20=
 please=20_do=20ask_=20on=20the=0AX#=20mailing=20list=20or=20IRC=20=
 channel=20[http://elasticsearch.org/community].=0AX=0AX#=20Any=20element=20=
 in=20the=20configuration=20can=20be=20replaced=20with=20environment=20=
 variables=0AX#=20by=20placing=20them=20in=20${...}=20notation.=20For=20=
 example:=0AX#=0AX#=20node.rack:=20${RACK_ENV_VAR}=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/setup/configuration.html>=0AX#=20=
 for=20information=20on=20supported=20formats=20and=20syntax=20for=20the=20=
 configuration=20file.=0AX=0AX=0AX###################################=20=
 Cluster=20###################################=0AX=0AX#=20Cluster=20name=20=
 identifies=20your=20cluster=20for=20auto-discovery.=20If=20you're=20=
 running=0AX#=20multiple=20clusters=20on=20the=20same=20network,=20make=20=
 sure=20you're=20using=20unique=20names.=0AX#=0AX#=20cluster.name:=20=
 elasticsearch=0AX=0AX=0AX####################################=20Node=20=
 #####################################=0AX=0AX#=20Node=20names=20are=20=
 generated=20dynamically=20on=20startup,=20so=20you're=20relieved=0AX#=20=
 from=20configuring=20them=20manually.=20You=20can=20tie=20this=20node=20=
 to=20a=20specific=20name:=0AX#=0AX#=20node.name:=20"Franz=20Kafka"=0AX=0A=
 X#=20Every=20node=20can=20be=20configured=20to=20allow=20or=20deny=20=
 being=20eligible=20as=20the=20master,=0AX#=20and=20to=20allow=20or=20=
 deny=20to=20store=20the=20data.=0AX#=0AX#=20Allow=20this=20node=20to=20=
 be=20eligible=20as=20a=20master=20node=20(enabled=20by=20default):=0AX#=0A=
 X#=20node.master:=20true=0AX#=0AX#=20Allow=20this=20node=20to=20store=20=
 data=20(enabled=20by=20default):=0AX#=0AX#=20node.data:=20true=0AX=0AX#=20=
 You=20can=20exploit=20these=20settings=20to=20design=20advanced=20=
 cluster=20topologies.=0AX#=0AX#=201.=20You=20want=20this=20node=20to=20=
 never=20become=20a=20master=20node,=20only=20to=20hold=20data.=0AX#=20=20=
 =20=20This=20will=20be=20the=20"workhorse"=20of=20your=20cluster.=0AX#=0A=
 X#=20node.master:=20false=0AX#=20node.data:=20true=0AX#=0AX#=202.=20You=20=
 want=20this=20node=20to=20only=20serve=20as=20a=20master:=20to=20not=20=
 store=20any=20data=20and=0AX#=20=20=20=20to=20have=20free=20resources.=20=
 This=20will=20be=20the=20"coordinator"=20of=20your=20cluster.=0AX#=0AX#=20=
 node.master:=20true=0AX#=20node.data:=20false=0AX#=0AX#=203.=20You=20=
 want=20this=20node=20to=20be=20neither=20master=20nor=20data=20node,=20=
 but=0AX#=20=20=20=20to=20act=20as=20a=20"search=20load=20balancer"=20=
 (fetching=20data=20from=20nodes,=0AX#=20=20=20=20aggregating=20results,=20=
 etc.)=0AX#=0AX#=20node.master:=20false=0AX#=20node.data:=20false=0AX=0A=
 X#=20Use=20the=20Cluster=20Health=20API=20=
 [http://localhost:9200/_cluster/health],=20the=0AX#=20Node=20Info=20API=20=
 [http://localhost:9200/_cluster/nodes]=20or=20GUI=20tools=0AX#=20such=20=
 as=20<http://github.com/lukas-vlcek/bigdesk>=20and=0AX#=20=
 <http://mobz.github.com/elasticsearch-head>=20to=20inspect=20the=20=
 cluster=20state.=0AX=0AX#=20A=20node=20can=20have=20generic=20attributes=20=
 associated=20with=20it,=20which=20can=20later=20be=20used=0AX#=20for=20=
 customized=20shard=20allocation=20filtering,=20or=20allocation=20=
 awareness.=20An=20attribute=0AX#=20is=20a=20simple=20key=20value=20pair,=20=
 similar=20to=20node.key:=20value,=20here=20is=20an=20example:=0AX#=0AX#=20=
 node.rack:=20rack314=0AX=0AX=0AX####################################=20=
 Index=20####################################=0AX=0AX#=20You=20can=20set=20=
 a=20number=20of=20options=20(such=20as=20shard/replica=20options,=20=
 mapping=0AX#=20or=20analyzer=20definitions,=20translog=20settings,=20=
 ...)=20for=20indices=20globally,=0AX#=20in=20this=20file.=0AX#=0AX#=20=
 Note,=20that=20it=20makes=20more=20sense=20to=20configure=20index=20=
 settings=20specifically=20for=0AX#=20a=20certain=20index,=20either=20=
 when=20creating=20it=20or=20by=20using=20the=20index=20templates=20API.=0A=
 X#=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/index-modules/>=20and=0AX#=20=
 <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.h=
 tml>=0AX#=20for=20more=20information.=0AX=0AX#=20Set=20the=20number=20of=20=
 shards=20(splits)=20of=20an=20index=20(5=20by=20default):=0AX#=0AX#=20=
 index.number_of_shards:=205=0AX=0AX#=20Set=20the=20number=20of=20=
 replicas=20(additional=20copies)=20of=20an=20index=20(1=20by=20default):=0A=
 X#=0AX#=20index.number_of_replicas:=201=0AX=0AX#=20Note,=20that=20for=20=
 development=20on=20a=20local=20machine,=20with=20small=20indices,=20it=20=
 usually=0AX#=20makes=20sense=20to=20"disable"=20the=20distributed=20=
 features:=0AX#=0AX#=20index.number_of_shards:=201=0AX#=20=
 index.number_of_replicas:=200=0AX=0AX#=20These=20settings=20directly=20=
 affect=20the=20performance=20of=20index=20and=20search=20operations=0AX#=20=
 in=20your=20cluster.=20Assuming=20you=20have=20enough=20machines=20to=20=
 hold=20shards=20and=0AX#=20replicas,=20the=20rule=20of=20thumb=20is:=0A=
 X#=0AX#=201.=20Having=20more=20*shards*=20enhances=20the=20_indexing_=20=
 performance=20and=20allows=20to=0AX#=20=20=20=20_distribute_=20a=20big=20=
 index=20across=20machines.=0AX#=202.=20Having=20more=20*replicas*=20=
 enhances=20the=20_search_=20performance=20and=20improves=20the=0AX#=20=20=
 =20=20cluster=20_availability_.=0AX#=0AX#=20The=20"number_of_shards"=20=
 is=20a=20one-time=20setting=20for=20an=20index.=0AX#=0AX#=20The=20=
 "number_of_replicas"=20can=20be=20increased=20or=20decreased=20anytime,=0A=
 X#=20by=20using=20the=20Index=20Update=20Settings=20API.=0AX#=0AX#=20=
 ElasticSearch=20takes=20care=20about=20load=20balancing,=20relocating,=20=
 gathering=20the=0AX#=20results=20from=20nodes,=20etc.=20Experiment=20=
 with=20different=20settings=20to=20fine-tune=0AX#=20your=20setup.=0AX=0A=
 X#=20Use=20the=20Index=20Status=20API=20=
 (<http://localhost:9200/A/_status>)=20to=20inspect=0AX#=20the=20index=20=
 status.=0AX=0AX=0AX####################################=20Paths=20=
 ####################################=0AX=0AX#=20Path=20to=20directory=20=
 containing=20configuration=20(this=20file=20and=20logging.yml):=0AX#=0A=
 X#=20path.conf:=20/path/to/conf=0AX=0AX#=20Path=20to=20directory=20where=20=
 to=20store=20index=20data=20allocated=20for=20this=20node.=0AX#=0AX#=20=
 path.data:=20/path/to/data=0AX#=0AX#=20Can=20optionally=20include=20more=20=
 than=20one=20location,=20causing=20data=20to=20be=20striped=20across=0A=
 X#=20the=20locations=20(=C3=83=C2=83=C3=82=C2=83=C3=83=C2=82=C3=82=C2=A0=20=
 la=20RAID=200)=20on=20a=20file=20level,=20favouring=20locations=20with=20=
 most=20free=0AX#=20space=20on=20creation.=20For=20example:=0AX#=0AX#=20=
 path.data:=20/path/to/data1,/path/to/data2=0AX=0AX#=20Path=20to=20=
 temporary=20files:=0AX#=0AX#=20path.work:=20/path/to/work=0AX=0AX#=20=
 Path=20to=20log=20files:=0AX#=0AX#=20path.logs:=20/path/to/logs=0AX=0AX#=20=
 Path=20to=20where=20plugins=20are=20installed:=0AX#=0AX#=20path.plugins:=20=
 /path/to/plugins=0AX=0AX=0AX###################################=20Memory=20=
 ####################################=0AX=0AX#=20ElasticSearch=20performs=20=
 poorly=20when=20JVM=20starts=20swapping:=20you=20should=20ensure=20that=0A=
 X#=20it=20_never_=20swaps.=0AX#=0AX#=20Set=20this=20property=20to=20true=20=
 to=20lock=20the=20memory:=0AX#=0AX#=20bootstrap.mlockall:=20true=0AX=0A=
 X#=20Make=20sure=20that=20the=20ES_MIN_MEM=20and=20ES_MAX_MEM=20=
 environment=20variables=20are=20set=0AX#=20to=20the=20same=20value,=20=
 and=20that=20the=20machine=20has=20enough=20memory=20to=20allocate=0AX#=20=
 for=20ElasticSearch,=20leaving=20enough=20memory=20for=20the=20operating=20=
 system=20itself.=0AX#=0AX#=20You=20should=20also=20make=20sure=20that=20=
 the=20ElasticSearch=20process=20is=20allowed=20to=20lock=0AX#=20the=20=
 memory,=20eg.=20by=20using=20`ulimit=20-l=20unlimited`.=0AX=0AX=0A=
 X##############################=20Network=20And=20HTTP=20=
 ###############################=0AX=0AX#=20ElasticSearch,=20by=20=
 default,=20binds=20itself=20to=20the=200.0.0.0=20address,=20and=20=
 listens=0AX#=20on=20port=20[9200-9300]=20for=20HTTP=20traffic=20and=20on=20=
 port=20[9300-9400]=20for=20node-to-node=0AX#=20communication.=20(the=20=
 range=20means=20that=20if=20the=20port=20is=20busy,=20it=20will=20=
 automatically=0AX#=20try=20the=20next=20port).=0AX=0AX#=20Set=20the=20=
 bind=20address=20specifically=20(IPv4=20or=20IPv6):=0AX#=0AX#=20=
 network.bind_host:=20192.168.0.1=0AX=0AX#=20Set=20the=20address=20other=20=
 nodes=20will=20use=20to=20communicate=20with=20this=20node.=20If=20not=0A=
 X#=20set,=20it=20is=20automatically=20derived.=20It=20must=20point=20to=20=
 an=20actual=20IP=20address.=0AX#=0AX#=20network.publish_host:=20=
 192.168.0.1=0AX=0AX#=20Set=20both=20'bind_host'=20and=20'publish_host':=0A=
 X#=0AX#=20network.host:=20192.168.0.1=0AX=0AX#=20Set=20a=20custom=20port=20=
 for=20the=20node=20to=20node=20communication=20(9300=20by=20default):=0A=
 X#=0AX#=20transport.port:=209300=0AX=0AX#=20Enable=20compression=20for=20=
 all=20communication=20between=20nodes=20(disabled=20by=20default):=0AX#=0A=
 X#=20transport.tcp.compress:=20true=0AX=0AX#=20Set=20a=20custom=20port=20=
 to=20listen=20for=20HTTP=20traffic:=0AX#=0AX#=20http.port:=209200=0AX=0A=
 X#=20Set=20a=20custom=20allowed=20content=20length:=0AX#=0AX#=20=
 http.max_content_length:=20100mb=0AX=0AX#=20Disable=20HTTP=20completely:=0A=
 X#=0AX#=20http.enabled:=20false=0AX=0AX=0A=
 X###################################=20Gateway=20=
 ###################################=0AX=0AX#=20The=20gateway=20allows=20=
 for=20persisting=20the=20cluster=20state=20between=20full=20cluster=0AX#=20=
 restarts.=20Every=20change=20to=20the=20state=20(such=20as=20adding=20an=20=
 index)=20will=20be=20stored=0AX#=20in=20the=20gateway,=20and=20when=20=
 the=20cluster=20starts=20up=20for=20the=20first=20time,=0AX#=20it=20will=20=
 read=20its=20state=20from=20the=20gateway.=0AX=0AX#=20There=20are=20=
 several=20types=20of=20gateway=20implementations.=20For=20more=20=
 information,=0AX#=20see=20=
 <http://elasticsearch.org/guide/reference/modules/gateway>.=0AX=0AX#=20=
 The=20default=20gateway=20type=20is=20the=20"local"=20gateway=20=
 (recommended):=0AX#=0AX#=20gateway.type:=20local=0AX=0AX#=20Settings=20=
 below=20control=20how=20and=20when=20to=20start=20the=20initial=20=
 recovery=20process=20on=0AX#=20a=20full=20cluster=20restart=20(to=20=
 reuse=20as=20much=20local=20data=20as=20possible).=0AX=0AX#=20Allow=20=
 recovery=20process=20after=20N=20nodes=20in=20a=20cluster=20are=20up:=0A=
 X#=0AX#=20gateway.recover_after_nodes:=201=0AX=0AX#=20Set=20the=20=
 timeout=20to=20initiate=20the=20recovery=20process,=20once=20the=20N=20=
 nodes=0AX#=20from=20previous=20setting=20are=20up=20(accepts=20time=20=
 value):=0AX#=0AX#=20gateway.recover_after_time:=205m=0AX=0AX#=20Set=20=
 how=20many=20nodes=20are=20expected=20in=20this=20cluster.=20Once=20=
 these=20N=20nodes=0AX#=20are=20up,=20begin=20recovery=20process=20=
 immediately:=0AX#=0AX#=20gateway.expected_nodes:=202=0AX=0AX=0A=
 X#############################=20Recovery=20Throttling=20=
 #############################=0AX=0AX#=20These=20settings=20allow=20to=20=
 control=20the=20process=20of=20shards=20allocation=20between=0AX#=20=
 nodes=20during=20initial=20recovery,=20replica=20allocation,=20=
 rebalancing,=0AX#=20or=20when=20adding=20and=20removing=20nodes.=0AX=0A=
 X#=20Set=20the=20number=20of=20concurrent=20recoveries=20happening=20on=20=
 a=20node:=0AX#=0AX#=201.=20During=20the=20initial=20recovery=0AX#=0AX#=20=
 cluster.routing.allocation.node_initial_primaries_recoveries:=204=0AX#=0A=
 X#=202.=20During=20adding/removing=20nodes,=20rebalancing,=20etc=0AX#=0A=
 X#=20cluster.routing.allocation.node_concurrent_recoveries:=202=0AX=0AX#=20=
 Set=20to=20throttle=20throughput=20when=20recovering=20(eg.=20100mb,=20=
 by=20default=20unlimited):=0AX#=0AX#=20=
 indices.recovery.max_size_per_sec:=200=0AX=0AX#=20Set=20to=20limit=20the=20=
 number=20of=20open=20concurrent=20streams=20when=0AX#=20recovering=20a=20=
 shard=20from=20a=20peer:=0AX#=0AX#=20=
 indices.recovery.concurrent_streams:=205=0AX=0AX=0A=
 X##################################=20Discovery=20=
 ##################################=0AX=0AX#=20Discovery=20infrastructure=20=
 ensures=20nodes=20can=20be=20found=20within=20a=20cluster=0AX#=20and=20=
 master=20node=20is=20elected.=20Multicast=20discovery=20is=20the=20=
 default.=0AX=0AX#=20Set=20to=20ensure=20a=20node=20sees=20N=20other=20=
 master=20eligible=20nodes=20to=20be=20considered=0AX#=20operational=20=
 within=20the=20cluster.=20Set=20this=20option=20to=20a=20higher=20value=20=
 (2-4)=0AX#=20for=20large=20clusters:=0AX#=0AX#=20=
 discovery.zen.minimum_master_nodes:=201=0AX=0AX#=20Set=20the=20time=20to=20=
 wait=20for=20ping=20responses=20from=20other=20nodes=20when=20=
 discovering.=0AX#=20Set=20this=20option=20to=20a=20higher=20value=20on=20=
 a=20slow=20or=20congested=20network=0AX#=20to=20minimize=20discovery=20=
 failures:=0AX#=0AX#=20discovery.zen.ping.timeout:=203s=0AX=0AX#=20See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>=0A=
 X#=20for=20more=20information.=0AX=0AX#=20Unicast=20discovery=20allows=20=
 to=20explicitly=20control=20which=20nodes=20will=20be=20used=0AX#=20to=20=
 discover=20the=20cluster.=20It=20can=20be=20used=20when=20multicast=20is=20=
 not=20present,=0AX#=20or=20to=20restrict=20the=20cluster=20=
 communication-wise.=0AX#=0AX#=201.=20Disable=20multicast=20discovery=20=
 (enabled=20by=20default):=0AX#=0AX#=20=
 discovery.zen.ping.multicast.enabled:=20false=0AX#=0AX#=202.=20Configure=20=
 an=20initial=20list=20of=20master=20nodes=20in=20the=20cluster=0AX#=20=20=
 =20=20to=20perform=20discovery=20when=20new=20nodes=20(master=20or=20=
 data)=20are=20started:=0AX#=0AX#=20discovery.zen.ping.unicast.hosts:=20=
 ["host1",=20"host2:port",=20"host3[portX-portY]"]=0AX=0AX#=20EC2=20=
 discovery=20allows=20to=20use=20AWS=20EC2=20API=20in=20order=20to=20=
 perform=20discovery.=0AX#=0AX#=20You=20have=20to=20install=20the=20=
 cloud-aws=20plugin=20for=20enabling=20the=20EC2=20discovery.=0AX#=0AX#=20=
 See=20=
 <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>=0A=
 X#=20for=20more=20information.=0AX#=0AX#=20See=20=
 <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>=0A=
 X#=20for=20a=20step-by-step=20tutorial.=0AX=0AX=0A=
 X##################################=20Slow=20Log=20=
 ##################################=0AX=0AX#=20Shard=20level=20query=20=
 and=20fetch=20threshold=20logging.=0AX=0AX#index.search.slowlog.level:=20=
 TRACE=0AX#index.search.slowlog.threshold.query.warn:=2010s=0A=
 X#index.search.slowlog.threshold.query.info:=205s=0A=
 X#index.search.slowlog.threshold.query.debug:=202s=0A=
 X#index.search.slowlog.threshold.query.trace:=20500ms=0AX=0A=
 X#index.search.slowlog.threshold.fetch.warn:=201s=0A=
 X#index.search.slowlog.threshold.fetch.info:=20800ms=0A=
 X#index.search.slowlog.threshold.fetch.debug:=20500ms=0A=
 X#index.search.slowlog.threshold.fetch.trace:=20200ms=0A=
 598eb73269d83d65a71b10e972503bc9=0Aecho=20x=20-=20=
 logstash/files/logstash.in=0Ased=20's/^X//'=20=
 >logstash/files/logstash.in=20<<=20'0f1ca7b587c13466a7f3a6fad7064657'=0A=
 X#!/bin/sh=0AX=0AX#=20$FreeBSD$=0AX#=0AX#=20PROVIDE:=20logstash=0AX#=20=
 REQUIRE:=20LOGIN=0AX#=20KEYWORD:=20shutdown=0AX#=0AX#=0AX#=20=
 Configuration=20settings=20for=20logstash=20in=20/etc/rc.conf:=0AX#=0AX#=20=
 logstash_enable=20(bool):=0AX#=20=20=20Set=20to=20"NO"=20by=20default.=0A=
 X#=20=20=20Set=20it=20to=20"YES"=20to=20enable=20logstash=0AX#=0AX#=20=
 logstash_mode=20:=0AX#=20=20=20Set=20to=20"standalone"=20by=20default.=0A=
 X#=20=20=20Valid=20options:=0AX#=20=20=20=20=20"standalone":=20agent,=20=
 web=20&=20elasticsearch=0AX#=20=20=20=20=20"web":=20Starts=20logstash=20=
 as=20a=20web=20ui=0AX#=20=20=20=20=20"agent":=20Justs=20works=20as=20a=20=
 log=20shipper=20=0AX#=0AX#=20logstash_logging=20(bool):=0AX#=20=20=20Set=20=
 to=20"NO"=20by=20default.=0AX#=20=20=20Set=20it=20to=20"YES"=20to=20=
 enable=20logstash=20logging=20to=20file=0AX#=20=20=20Default=20output=20=
 to=20/var/log/logstash.log=0AX#=0AX=0AX.=20/etc/rc.subr=0AX=0A=
 Xname=3Dlogstash=0AXrcvar=3Dlogstash_enable=0AX=0AXload_rc_config=20=
 ${name}=0AX=0AX:=20${logstash_enable=3D"NO"}=0AX:=20=
 ${logstash_home=3D"%%LOGSTASH_HOME%%"}=0AX:=20=
 ${logstash_config=3D"%%PREFIX%%/etc/${name}/${name}.conf"}=0AX:=20=
 ${logstash_jar=3D"%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}=0AX:=20=
 ${logstash_java_home=3D"%%JAVA_HOME%%"}=0AX:=20${logstash_log=3D"NO"}=0A=
 X:=20${logstash_mode=3D"standalone"}=0AX:=20${logstash_port=3D"9292"}=0A=
 X:=20${logstash_elastic_backend=3D""}=0AX:=20=
 ${logstash_log_file=3D"${logdir}/${name}.log"}=0AX:=20=
 ${logstash_elastic_datadir=3D"%%LOGSTASH_DATA_DIR%%"}=0AX=0A=
 Xpiddir=3D/var/run/${name}=0AXpidfile=3D${piddir}/${name}.pid=0AX=0AXif=20=
 [=20-d=20$piddir=20];=20then=0AX=09mkdir=20-p=20$piddir=0AXfi=0AX=0A=
 Xlogdir=3D"/var/log"=0AXcommand=3D"/usr/sbin/daemon"=0AX=0A=
 Xjava_cmd=3D"${logstash_java_home}/bin/java"=0AXprocname=3D"${java_cmd}"=0A=
 X=0AXlogstash_chdir=3D${logstash_home}=0AXlogstash_log_options=3D""=0A=
 Xlogstash_elastic_options=3D""=0AX=0AXif=20checkyesno=20logstash_log;=20=
 then=0AX=09logstash_log_options=3D"=20--log=20${logstash_log_file}"=20=0A=
 Xfi=0AX=0AXif=20[=20${logstash_mode}=20=3D=20"standalone"=20];=20then=0A=
 X=09logstash_args=3D"agent=20-f=20${logstash_config}=20--=20web=20--port=20=
 ${logstash_port}=20--backend=20elasticsearch:///?local=20=
 ${logstash_log_options}"=0AX=09=
 logstash_elastic_options=3D"-Des.path.data=3D${logstash_elastic_datadir}"=0A=
 Xelif=20[=20${logstash_mode}=20=3D=20"agent"=20];=20then=0AX=09=
 logstash_args=3D"agent=20-f=20${logstash_config}=20=
 ${logstash_log_options}"=0AXelif=20[=20${logstash_mode}=20=3D=20"web"=20=
 ];=20then=0AX=09logstash_args=3D"web=20--port=20${logstash_port}=20=
 --backend=20elasticsearch://${logstash_elastic_backend}/=20=
 ${logstash_log_options}"=0AXfi=0AX=0AXcommand_args=3D"-f=20-p=20=
 ${pidfile}=20${java_cmd}=20${logstash_elastic_options}=20-jar=20=
 ${logstash_jar}=20${logstash_args}"=0AXrequired_files=3D"${java_cmd}=20=
 ${logstash_config}"=0AX=0AXrun_rc_command=20"$1"=0A=
 0f1ca7b587c13466a7f3a6fad7064657=0Aexit=0A=0A=
 
 --Apple-Mail=_635D4ED3-733D-4A62-9DF5-74A19C810B6B
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=iso-8859-1
 
 
 
 
 On Jul 15, 2013, at 5:00 PM, Guido Falsi <madpilot@FreeBSD.org> wrote:
 
 > Hi again.
 >=20
 > I fixed a few style issues in the rc script. Can you please test it =
 and approve this last change?
 >=20
 > Thanks a lot!
 >=20
 > --=20
 > Guido Falsi <madpilot@FreeBSD.org>
 > <logstash.shar>
 
 
 --Apple-Mail=_635D4ED3-733D-4A62-9DF5-74A19C810B6B--
State-Changed-From-To: open->closed 
State-Changed-By: madpilot 
State-Changed-When: Wed Jul 17 23:20:32 UTC 2013 
State-Changed-Why:  
New port added. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=168266 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/168266: commit references a PR
Date: Wed, 17 Jul 2013 23:20:31 +0000 (UTC)

 Author: madpilot
 Date: Wed Jul 17 23:20:21 2013
 New Revision: 323192
 URL: http://svnweb.freebsd.org/changeset/ports/323192
 
 Log:
   Logstash is a tool for managing events and logs. You can use it to
   collect logs, parse them, and store them for later use (like, for
   searching). Speaking of searching, logstash comes with a web interface
   for searching and drilling into all of your logs.
   
   WWW: http://logstash.net/
   
   PR:		ports/168266
   Submitted by:	Daniel Solsona <daniel@ish.com.au>, Regis A. Despres <regis.despres@gmail.com>
 
 Added:
   head/sysutils/logstash/
   head/sysutils/logstash/Makefile   (contents, props changed)
   head/sysutils/logstash/distinfo   (contents, props changed)
   head/sysutils/logstash/files/
   head/sysutils/logstash/files/elasticsearch.yml.sample   (contents, props changed)
   head/sysutils/logstash/files/logstash.conf.sample   (contents, props changed)
   head/sysutils/logstash/files/logstash.in   (contents, props changed)
   head/sysutils/logstash/pkg-descr   (contents, props changed)
   head/sysutils/logstash/pkg-plist   (contents, props changed)
 Modified:
   head/sysutils/Makefile
 
 Modified: head/sysutils/Makefile
 ==============================================================================
 --- head/sysutils/Makefile	Wed Jul 17 22:12:15 2013	(r323191)
 +++ head/sysutils/Makefile	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -498,6 +498,7 @@
      SUBDIR += logmon
      SUBDIR += logrotate
      SUBDIR += logstalgia
 +    SUBDIR += logstash
      SUBDIR += logtool
      SUBDIR += logwatch
      SUBDIR += lookat
 
 Added: head/sysutils/logstash/Makefile
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/Makefile	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,50 @@
 +# Created by: Daniel Solsona <daniel@ish.com.au>, Guido Falsi <madpilot@FreeBSD.org>
 +# $FreeBSD$
 +
 +PORTNAME=	logstash
 +PORTVERSION=	1.1.13
 +CATEGORIES=	sysutils java
 +MASTER_SITES=	https://logstash.objects.dreamhost.com/release/ \
 +		http://semicomplete.com/files/logstash/
 +DISTNAME=	${PORTNAME}-${PORTVERSION}-flatjar
 +EXTRACT_SUFX=	.jar
 +EXTRACT_ONLY=
 +
 +MAINTAINER=	regis.despres@gmail.com
 +COMMENT=	Tool for managing events and logs
 +
 +USE_JAVA=	yes
 +JAVA_VERSION=	1.5+
 +
 +NO_BUILD=	yes
 +
 +USE_RC_SUBR=	logstash
 +
 +LOGSTASH_HOME?=	${PREFIX}/${PORTNAME}
 +LOGSTASH_HOME_REL?=	${LOGSTASH_HOME:S,^${PREFIX}/,,}
 +LOGSTASH_JAR?=	${DISTNAME}${EXTRACT_SUFX}
 +LOGSTASH_RUN?=	/var/run/${PORTNAME}
 +LOGSTASH_DATA_DIR?=	/var/db/${PORTNAME}
 +
 +SUB_LIST=	LOGSTASH_DATA_DIR=${LOGSTASH_DATA_DIR} JAVA_HOME=${JAVA_HOME} \
 +		LOGSTASH_HOME=${LOGSTASH_HOME} LOGSTASH_JAR=${LOGSTASH_JAR}
 +PLIST_SUB+=	LOGSTASH_HOME=${LOGSTASH_HOME_REL} LOGSTASH_JAR=${LOGSTASH_JAR} \
 +		LOGSTASH_RUN=${LOGSTASH_RUN} \
 +		LOGSTASH_DATA_DIR=${LOGSTASH_DATA_DIR}
 +
 +do-install:
 +	${MKDIR} ${LOGSTASH_RUN}
 +	${MKDIR} ${ETCDIR}
 +	${MKDIR} ${LOGSTASH_HOME}
 +	${MKDIR} ${LOGSTASH_DATA_DIR}
 +	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${LOGSTASH_JAR} ${LOGSTASH_HOME}
 +	${INSTALL_DATA} ${FILESDIR}/logstash.conf.sample ${ETCDIR}
 +	@if [ ! -f ${ETCDIR}/logstash.conf ]; then \
 +		${CP} -p ${ETCDIR}/logstash.conf.sample ${ETCDIR}/logstash.conf ; \
 +	fi
 +	${INSTALL_DATA} ${FILESDIR}/elasticsearch.yml.sample ${ETCDIR}
 +	@if [ ! -f ${ETCDIR}/elasticsearch.yml ]; then \
 +		${CP} -p ${ETCDIR}/elasticsearch.yml.sample ${ETCDIR}/elasticsearch.yml ; \
 +	fi
 +
 +.include <bsd.port.mk>
 
 Added: head/sysutils/logstash/distinfo
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/distinfo	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,2 @@
 +SHA256 (logstash-1.1.13-flatjar.jar) = 5ba0639ff4da064c2a4f6a04bd7006b1997a6573859d3691e210b6855e1e47f1
 +SIZE (logstash-1.1.13-flatjar.jar) = 69485313
 
 Added: head/sysutils/logstash/files/elasticsearch.yml.sample
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/files/elasticsearch.yml.sample	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,337 @@
 +##################### ElasticSearch Configuration Example #####################
 +
 +# This file contains an overview of various configuration settings,
 +# targeted at operations staff. Application developers should
 +# consult the guide at <http://elasticsearch.org/guide>.
 +#
 +# The installation procedure is covered at
 +# <http://elasticsearch.org/guide/reference/setup/installation.html>.
 +#
 +# ElasticSearch comes with reasonable defaults for most settings,
 +# so you can try it out without bothering with configuration.
 +#
 +# Most of the time, these defaults are just fine for running a production
 +# cluster. If you're fine-tuning your cluster, or wondering about the
 +# effect of certain configuration option, please _do ask_ on the
 +# mailing list or IRC channel [http://elasticsearch.org/community].
 +
 +# Any element in the configuration can be replaced with environment variables
 +# by placing them in ${...} notation. For example:
 +#
 +# node.rack: ${RACK_ENV_VAR}
 +
 +# See <http://elasticsearch.org/guide/reference/setup/configuration.html>
 +# for information on supported formats and syntax for the configuration file.
 +
 +
 +################################### Cluster ###################################
 +
 +# Cluster name identifies your cluster for auto-discovery. If you're running
 +# multiple clusters on the same network, make sure you're using unique names.
 +#
 +# cluster.name: elasticsearch
 +
 +
 +#################################### Node #####################################
 +
 +# Node names are generated dynamically on startup, so you're relieved
 +# from configuring them manually. You can tie this node to a specific name:
 +#
 +# node.name: "Franz Kafka"
 +
 +# Every node can be configured to allow or deny being eligible as the master,
 +# and to allow or deny to store the data.
 +#
 +# Allow this node to be eligible as a master node (enabled by default):
 +#
 +# node.master: true
 +#
 +# Allow this node to store data (enabled by default):
 +#
 +# node.data: true
 +
 +# You can exploit these settings to design advanced cluster topologies.
 +#
 +# 1. You want this node to never become a master node, only to hold data.
 +#    This will be the "workhorse" of your cluster.
 +#
 +# node.master: false
 +# node.data: true
 +#
 +# 2. You want this node to only serve as a master: to not store any data and
 +#    to have free resources. This will be the "coordinator" of your cluster.
 +#
 +# node.master: true
 +# node.data: false
 +#
 +# 3. You want this node to be neither master nor data node, but
 +#    to act as a "search load balancer" (fetching data from nodes,
 +#    aggregating results, etc.)
 +#
 +# node.master: false
 +# node.data: false
 +
 +# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
 +# Node Info API [http://localhost:9200/_cluster/nodes] or GUI tools
 +# such as <http://github.com/lukas-vlcek/bigdesk> and
 +# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state.
 +
 +# A node can have generic attributes associated with it, which can later be used
 +# for customized shard allocation filtering, or allocation awareness. An attribute
 +# is a simple key value pair, similar to node.key: value, here is an example:
 +#
 +# node.rack: rack314
 +
 +
 +#################################### Index ####################################
 +
 +# You can set a number of options (such as shard/replica options, mapping
 +# or analyzer definitions, translog settings, ...) for indices globally,
 +# in this file.
 +#
 +# Note, that it makes more sense to configure index settings specifically for
 +# a certain index, either when creating it or by using the index templates API.
 +#
 +# See <http://elasticsearch.org/guide/reference/index-modules/> and
 +# <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.html>
 +# for more information.
 +
 +# Set the number of shards (splits) of an index (5 by default):
 +#
 +# index.number_of_shards: 5
 +
 +# Set the number of replicas (additional copies) of an index (1 by default):
 +#
 +# index.number_of_replicas: 1
 +
 +# Note, that for development on a local machine, with small indices, it usually
 +# makes sense to "disable" the distributed features:
 +#
 +# index.number_of_shards: 1
 +# index.number_of_replicas: 0
 +
 +# These settings directly affect the performance of index and search operations
 +# in your cluster. Assuming you have enough machines to hold shards and
 +# replicas, the rule of thumb is:
 +#
 +# 1. Having more *shards* enhances the _indexing_ performance and allows to
 +#    _distribute_ a big index across machines.
 +# 2. Having more *replicas* enhances the _search_ performance and improves the
 +#    cluster _availability_.
 +#
 +# The "number_of_shards" is a one-time setting for an index.
 +#
 +# The "number_of_replicas" can be increased or decreased anytime,
 +# by using the Index Update Settings API.
 +#
 +# ElasticSearch takes care about load balancing, relocating, gathering the
 +# results from nodes, etc. Experiment with different settings to fine-tune
 +# your setup.
 +
 +# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect
 +# the index status.
 +
 +
 +#################################### Paths ####################################
 +
 +# Path to directory containing configuration (this file and logging.yml):
 +#
 +# path.conf: /path/to/conf
 +
 +# Path to directory where to store index data allocated for this node.
 +#
 +# path.data: /path/to/data
 +#
 +# Can optionally include more than one location, causing data to be striped across
 +# the locations on a file level, favouring locations with most free
 +# space on creation. For example:
 +#
 +# path.data: /path/to/data1,/path/to/data2
 +
 +# Path to temporary files:
 +#
 +# path.work: /path/to/work
 +
 +# Path to log files:
 +#
 +# path.logs: /path/to/logs
 +
 +# Path to where plugins are installed:
 +#
 +# path.plugins: /path/to/plugins
 +
 +
 +################################### Memory ####################################
 +
 +# ElasticSearch performs poorly when JVM starts swapping: you should ensure that
 +# it _never_ swaps.
 +#
 +# Set this property to true to lock the memory:
 +#
 +# bootstrap.mlockall: true
 +
 +# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
 +# to the same value, and that the machine has enough memory to allocate
 +# for ElasticSearch, leaving enough memory for the operating system itself.
 +#
 +# You should also make sure that the ElasticSearch process is allowed to lock
 +# the memory, eg. by using `ulimit -l unlimited`.
 +
 +
 +############################## Network And HTTP ###############################
 +
 +# ElasticSearch, by default, binds itself to the 0.0.0.0 address, and listens
 +# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
 +# communication. (the range means that if the port is busy, it will automatically
 +# try the next port).
 +
 +# Set the bind address specifically (IPv4 or IPv6):
 +#
 +# network.bind_host: 192.168.0.1
 +
 +# Set the address other nodes will use to communicate with this node. If not
 +# set, it is automatically derived. It must point to an actual IP address.
 +#
 +# network.publish_host: 192.168.0.1
 +
 +# Set both 'bind_host' and 'publish_host':
 +#
 +# network.host: 192.168.0.1
 +
 +# Set a custom port for the node to node communication (9300 by default):
 +#
 +# transport.port: 9300
 +
 +# Enable compression for all communication between nodes (disabled by default):
 +#
 +# transport.tcp.compress: true
 +
 +# Set a custom port to listen for HTTP traffic:
 +#
 +# http.port: 9200
 +
 +# Set a custom allowed content length:
 +#
 +# http.max_content_length: 100mb
 +
 +# Disable HTTP completely:
 +#
 +# http.enabled: false
 +
 +
 +################################### Gateway ###################################
 +
 +# The gateway allows for persisting the cluster state between full cluster
 +# restarts. Every change to the state (such as adding an index) will be stored
 +# in the gateway, and when the cluster starts up for the first time,
 +# it will read its state from the gateway.
 +
 +# There are several types of gateway implementations. For more information,
 +# see <http://elasticsearch.org/guide/reference/modules/gateway>.
 +
 +# The default gateway type is the "local" gateway (recommended):
 +#
 +# gateway.type: local
 +
 +# Settings below control how and when to start the initial recovery process on
 +# a full cluster restart (to reuse as much local data as possible).
 +
 +# Allow recovery process after N nodes in a cluster are up:
 +#
 +# gateway.recover_after_nodes: 1
 +
 +# Set the timeout to initiate the recovery process, once the N nodes
 +# from previous setting are up (accepts time value):
 +#
 +# gateway.recover_after_time: 5m
 +
 +# Set how many nodes are expected in this cluster. Once these N nodes
 +# are up, begin recovery process immediately:
 +#
 +# gateway.expected_nodes: 2
 +
 +
 +############################# Recovery Throttling #############################
 +
 +# These settings allow to control the process of shards allocation between
 +# nodes during initial recovery, replica allocation, rebalancing,
 +# or when adding and removing nodes.
 +
 +# Set the number of concurrent recoveries happening on a node:
 +#
 +# 1. During the initial recovery
 +#
 +# cluster.routing.allocation.node_initial_primaries_recoveries: 4
 +#
 +# 2. During adding/removing nodes, rebalancing, etc
 +#
 +# cluster.routing.allocation.node_concurrent_recoveries: 2
 +
 +# Set to throttle throughput when recovering (eg. 100mb, by default unlimited):
 +#
 +# indices.recovery.max_size_per_sec: 0
 +
 +# Set to limit the number of open concurrent streams when
 +# recovering a shard from a peer:
 +#
 +# indices.recovery.concurrent_streams: 5
 +
 +
 +################################## Discovery ##################################
 +
 +# Discovery infrastructure ensures nodes can be found within a cluster
 +# and master node is elected. Multicast discovery is the default.
 +
 +# Set to ensure a node sees N other master eligible nodes to be considered
 +# operational within the cluster. Set this option to a higher value (2-4)
 +# for large clusters:
 +#
 +# discovery.zen.minimum_master_nodes: 1
 +
 +# Set the time to wait for ping responses from other nodes when discovering.
 +# Set this option to a higher value on a slow or congested network
 +# to minimize discovery failures:
 +#
 +# discovery.zen.ping.timeout: 3s
 +
 +# See <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>
 +# for more information.
 +
 +# Unicast discovery allows to explicitly control which nodes will be used
 +# to discover the cluster. It can be used when multicast is not present,
 +# or to restrict the cluster communication-wise.
 +#
 +# 1. Disable multicast discovery (enabled by default):
 +#
 +# discovery.zen.ping.multicast.enabled: false
 +#
 +# 2. Configure an initial list of master nodes in the cluster
 +#    to perform discovery when new nodes (master or data) are started:
 +#
 +# discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
 +
 +# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
 +#
 +# You have to install the cloud-aws plugin for enabling the EC2 discovery.
 +#
 +# See <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>
 +# for more information.
 +#
 +# See <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>
 +# for a step-by-step tutorial.
 +
 +
 +################################## Slow Log ##################################
 +
 +# Shard level query and fetch threshold logging.
 +
 +#index.search.slowlog.level: TRACE
 +#index.search.slowlog.threshold.query.warn: 10s
 +#index.search.slowlog.threshold.query.info: 5s
 +#index.search.slowlog.threshold.query.debug: 2s
 +#index.search.slowlog.threshold.query.trace: 500ms
 +
 +#index.search.slowlog.threshold.fetch.warn: 1s
 +#index.search.slowlog.threshold.fetch.info: 800ms
 +#index.search.slowlog.threshold.fetch.debug: 500ms
 +#index.search.slowlog.threshold.fetch.trace: 200ms
 
 Added: head/sysutils/logstash/files/logstash.conf.sample
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/files/logstash.conf.sample	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,38 @@
 +input {
 +  file {
 +    type => "system logs"
 +
 +  #  # Wildcards work, here :)
 +  #  path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
 +    path => [ "/var/log/messages" ]
 +  }
 +
 +  #file {
 +  #  type => "Hudson-access"
 +  #  path => "/var/log/www/hudson.ish.com.au-access_log"
 +  #}
 +
 +  #file {
 +  #          type => "Syslog"
 +  #  path => "/var/log/messages"
 +  #}
 +}
 +
 +output {
 +  # Emit events to stdout for easy debugging of what is going through
 +  # logstash.
 +  #stdout { }
 +
 +  # This will use elasticsearch to store your logs.
 +  # The 'embedded' option will cause logstash to run the elasticsearch
 +  # server in the same process, so you don't have to worry about
 +  # how to download, configure, or run elasticsearch!
 +  elasticsearch { 
 +     embedded => true
 +     #embedded_http_port => 9200
 +     #cluster => elasticsearch
 +     #host => host
 +     #port => port
 +      
 +  }
 +}
 
 Added: head/sysutils/logstash/files/logstash.in
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/files/logstash.in	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,81 @@
 +#!/bin/sh
 +
 +# $FreeBSD$
 +#
 +# PROVIDE: logstash
 +# REQUIRE: LOGIN
 +# KEYWORD: shutdown
 +#
 +#
 +# Configuration settings for logstash in /etc/rc.conf:
 +#
 +# logstash_enable (bool):
 +#   Set to "NO" by default.
 +#   Set it to "YES" to enable logstash
 +#
 +# logstash_mode :
 +#   Set to "standalone" by default.
 +#   Valid options:
 +#     "standalone": agent, web & elasticsearch
 +#     "web": Starts logstash as a web ui
 +#     "agent": Justs works as a log shipper 
 +#
 +# logstash_logging (bool):
 +#   Set to "NO" by default.
 +#   Set it to "YES" to enable logstash logging to file
 +#   Default output to /var/log/logstash.log
 +#
 +
 +. /etc/rc.subr
 +
 +name=logstash
 +rcvar=logstash_enable
 +
 +load_rc_config ${name}
 +
 +: ${logstash_enable="NO"}
 +: ${logstash_home="%%LOGSTASH_HOME%%"}
 +: ${logstash_config="%%PREFIX%%/etc/${name}/${name}.conf"}
 +: ${logstash_jar="%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%"}
 +: ${logstash_java_home="%%JAVA_HOME%%"}
 +: ${logstash_log="NO"}
 +: ${logstash_mode="standalone"}
 +: ${logstash_port="9292"}
 +: ${logstash_elastic_backend=""}
 +: ${logstash_log_file="${logdir}/${name}.log"}
 +: ${logstash_elastic_datadir="%%LOGSTASH_DATA_DIR%%"}
 +
 +piddir=/var/run/${name}
 +pidfile=${piddir}/${name}.pid
 +
 +if [ -d $piddir ]; then
 +	mkdir -p $piddir
 +fi
 +
 +logdir="/var/log"
 +command="/usr/sbin/daemon"
 +
 +java_cmd="${logstash_java_home}/bin/java"
 +procname="${java_cmd}"
 +
 +logstash_chdir=${logstash_home}
 +logstash_log_options=""
 +logstash_elastic_options=""
 +
 +if checkyesno logstash_log; then
 +	logstash_log_options=" --log ${logstash_log_file}" 
 +fi
 +
 +if [ ${logstash_mode} = "standalone" ]; then
 +	logstash_args="agent -f ${logstash_config} -- web --port ${logstash_port} --backend elasticsearch:///?local ${logstash_log_options}"
 +	logstash_elastic_options="-Des.path.data=${logstash_elastic_datadir}"
 +elif [ ${logstash_mode} = "agent" ]; then
 +	logstash_args="agent -f ${logstash_config} ${logstash_log_options}"
 +elif [ ${logstash_mode} = "web" ]; then
 +	logstash_args="web --port ${logstash_port} --backend elasticsearch://${logstash_elastic_backend}/ ${logstash_log_options}"
 +fi
 +
 +command_args="-f -p ${pidfile} ${java_cmd} ${logstash_elastic_options} -jar ${logstash_jar} ${logstash_args}"
 +required_files="${java_cmd} ${logstash_config}"
 +
 +run_rc_command "$1"
 
 Added: head/sysutils/logstash/pkg-descr
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/pkg-descr	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,6 @@
 +Logstash is a tool for managing events and logs. You can use it to
 +collect logs, parse them, and store them for later use (like, for
 +searching). Speaking of searching, logstash comes with a web interface
 +for searching and drilling into all of your logs.
 +
 +WWW: http://logstash.net/
 
 Added: head/sysutils/logstash/pkg-plist
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/sysutils/logstash/pkg-plist	Wed Jul 17 23:20:21 2013	(r323192)
 @@ -0,0 +1,13 @@
 +%%LOGSTASH_HOME%%/%%LOGSTASH_JAR%%
 +@exec mkdir -p %%LOGSTASH_RUN%%
 +@exec mkdir -p %%LOGSTASH_DATA_DIR%%
 +@unexec if cmp -s %D/%%ETCDIR%%/logstash.conf.sample %D/%%ETCDIR%%/logstash.conf; then rm -f %D/%%ETCDIR%%/logstash.conf; fi
 +%%ETCDIR%%/logstash.conf.sample
 +@exec if [ ! -f  %D/%%ETCDIR%%/logstash.conf ] ; then cp -p %D/%F %B/logstash.conf; fi
 +@unexec if cmp -s %D/%%ETCDIR%%/elasticsearch.yml.sample %D/%%ETCDIR%%/elasticsearch.yml; then rm -f %D/%%ETCDIR%%/elasticsearch.yml; fi
 +%%ETCDIR%%/elasticsearch.yml.sample
 +@exec if [ ! -f  %D/%%ETCDIR%%/elasticsearch.yml ] ; then cp -p %D/%F %B/elasticsearch.yml; fi
 +@dirrmtry %%LOGSTASH_DATA_DIR%%
 +@dirrmtry %%LOGSTASH_HOME%%
 +@dirrmtry %%ETCDIR%%
 +@dirrmtry %%LOGSTASH_RUN%%
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
>Unformatted:
