Re: logstash 1.4.0 debian package init script not working

2014-04-29 Thread Paolo Peruggini
Hi,
same problem for me, I modified original script.
Please try with this version: http://hastebin.com/uwiqasuyul.bash

Il giorno venerdì 18 aprile 2014 06:36:51 UTC+2, OJ LaBoeuf ha scritto:
>
> The upstart job also doesn't seem to work, it just keeps dying over and 
> over again never logging anything to the logfile.  
>
> If i manually start logstash everything works normally.
>
> On Thursday, April 17, 2014 6:12:38 PM UTC-7, OJ LaBoeuf wrote:
>>
>> Running Ubuntu 12.04 64bit, the logstash init script does not work.
>>
>> here's the script that came with logstash deb
>>
>> In particular I don't understand how the script is trying to parse 
>> something from the logstash pid, before it even starts the program..?
>>
>>   log_daemon_msg "Starting $DESC"
>>
>>   # Parse the actual JAVACMD from the process' environment, we don't 
>> care about errors.
>>   JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
>> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>>   if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>>  --user "$LS_USER" --exec "$JAVA" \
>>   >/dev/null; then
>>  # Prepare environment
>>
>> I checked and JAVA is empty at this location, so what the heck is this 
>> trying to do?
>>
>>
>> running this bit:
>> sudo start-stop-daemon --test --start --pidfile /var/run/logstash.pid 
>> --user "logstash" --exec ""
>>
>> results in the same message i get at the commandline when trying to 
>> /etc/init.d/logstash start
>> start-stop-daemon: unable to stat  (No such file or directory)
>>
>>
>> Please advise.
>>
>>
>>
>> Full init script pasted below 
>>
>>
>> #!/bin/bash
>> #
>> # /etc/init.d/logstash -- startup script for LogStash.
>> #
>> ### BEGIN INIT INFO
>> # Provides:  logstash
>> # Required-Start:$all
>> # Required-Stop: $all
>> # Default-Start: 2 3 4 5
>> # Default-Stop:  0 1 6
>> # Short-Description: Starts logstash
>> # Description:   Starts logstash using start-stop-daemon
>> ### END INIT INFO
>>
>> set -e
>>
>> NAME=logstash
>> DESC="Logstash Daemon"
>> DEFAULT=/etc/default/$NAME
>>
>> if [ `id -u` -ne 0 ]; then
>>echo "You need root privileges to run this script"
>>exit 1
>> fi
>>
>> . /lib/lsb/init-functions
>>
>> if [ -r /etc/default/rcS ]; then
>>. /etc/default/rcS
>> fi
>>
>> # The following variables can be overwritten in $DEFAULT
>> PATH=/bin:/usr/bin:/sbin:/usr/sbin
>>
>> # See contents of file named in $DEFAULT for comments
>> LS_USER=logstash
>> LS_GROUP=logstash
>> LS_HOME=/var/lib/logstash
>> LS_HEAP_SIZE="500m"
>> LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
>> LS_LOG_FILE=/var/log/logstash/$NAME.log
>> LS_CONF_DIR=/etc/logstash/conf.d
>> LS_OPEN_FILES=16384
>> LS_NICE=19
>> LS_OPTS=""
>> LS_PIDFILE=/var/run/$NAME.pid
>>
>> # End of variables that can be overwritten in $DEFAULT
>>
>> # overwrite settings from default file
>> if [ -f "$DEFAULT" ]; then
>>. "$DEFAULT"
>> fi
>>
>> # Define other required variables
>> PID_FILE=${LS_PIDFILE}
>> DAEMON=/opt/logstash/bin/logstash
>> DAEMON_OPTS="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}"
>>
>> # Check DAEMON exists
>> if ! test -e $DAEMON; then
>>log_failure_msg "Script $DAEMON doesn't exist"
>>exit 1
>> fi
>>
>> case "$1" in
>>start)
>>   if [ -z "$DAEMON" ]; then
>>  log_failure_msg "no logstash script found - $DAEMON"
>>  exit 1
>>   fi
>>
>>   # Check if a config file exists
>>   if [ ! "$(ls -A $LS_CONF_DIR/*.conf 2> /dev/null)" ]; then
>>  log_failure_msg "There aren't any configuration files in 
>> $LS_CONF_DIR"
>>  exit 1
>>   fi
>>
>>   log_daemon_msg "Starting $DESC"
>>
>>   # Parse the actual JAVACMD from the process' environment, we don't 
>> care about errors.
>>   JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
>> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>>   if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>>  --user "$LS_USER" --exec "$JAVA" \
>>   >/dev/null; then
>>  # Prepare environment
>>  HOME="${HOME:-$LS_HOME}"
>>  JAVA_OPTS="${LS_JAVA_OPTS}"
>>  ulimit -n ${LS_OPEN_FILES}
>>  cd "${LS_HOME}"
>>  export PATH HOME JAVACMD JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS 
>> LS_USE_GC_LOGGING
>>
>>  # Start Daemon
>>  start-stop-daemon --start -b --user "$LS_USER" -c 
>> "$LS_USER":"$LS_GROUP" \
>>-d "$LS_HOME" --nicelevel "$LS_NICE" --pidfile "$PID_FILE" 
>> --make-pidfile \
>>--exec $DAEMON -- $DAEMON_OPTS
>>
>>  sleep 1
>>
>>  # Parse the actual JAVACMD from the process' environment, we 
>> don't care about errors.
>>  JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
>> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>>  if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>>  --user "$LS_USER" --exec "$JAVA" \
>>  >/dev/null; then
>>
>> if [ -f "$

Re: logstash 1.4.0 debian package init script not working

2014-04-18 Thread Goofy03
Do you have check permission on /opt/logstash and /var/log/logstash 
/etc/logstash … same user than in the init script ?

Solve this for me on debian but i can't get event when apache log is 
update. than if i run it in root (console way) all is working …
Ho and i have add logstash user to adm group …

Le vendredi 18 avril 2014 06:36:51 UTC+2, OJ LaBoeuf a écrit :
>
> The upstart job also doesn't seem to work, it just keeps dying over and 
> over again never logging anything to the logfile.  
>
> If i manually start logstash everything works normally.
>
> On Thursday, April 17, 2014 6:12:38 PM UTC-7, OJ LaBoeuf wrote:
>>
>> Running Ubuntu 12.04 64bit, the logstash init script does not work.
>>
>> here's the script that came with logstash deb
>>
>> In particular I don't understand how the script is trying to parse 
>> something from the logstash pid, before it even starts the program..?
>>
>>   log_daemon_msg "Starting $DESC"
>>
>>   # Parse the actual JAVACMD from the process' environment, we don't 
>> care about errors.
>>   JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
>> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>>   if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>>  --user "$LS_USER" --exec "$JAVA" \
>>   >/dev/null; then
>>  # Prepare environment
>>
>> I checked and JAVA is empty at this location, so what the heck is this 
>> trying to do?
>>
>>
>> running this bit:
>> sudo start-stop-daemon --test --start --pidfile /var/run/logstash.pid 
>> --user "logstash" --exec ""
>>
>> results in the same message i get at the commandline when trying to 
>> /etc/init.d/logstash start
>> start-stop-daemon: unable to stat  (No such file or directory)
>>
>>
>> Please advise.
>>
>>
>>
>> Full init script pasted below 
>>
>>
>> #!/bin/bash
>> #
>> # /etc/init.d/logstash -- startup script for LogStash.
>> #
>> ### BEGIN INIT INFO
>> # Provides:  logstash
>> # Required-Start:$all
>> # Required-Stop: $all
>> # Default-Start: 2 3 4 5
>> # Default-Stop:  0 1 6
>> # Short-Description: Starts logstash
>> # Description:   Starts logstash using start-stop-daemon
>> ### END INIT INFO
>>
>> set -e
>>
>> NAME=logstash
>> DESC="Logstash Daemon"
>> DEFAULT=/etc/default/$NAME
>>
>> if [ `id -u` -ne 0 ]; then
>>echo "You need root privileges to run this script"
>>exit 1
>> fi
>>
>> . /lib/lsb/init-functions
>>
>> if [ -r /etc/default/rcS ]; then
>>. /etc/default/rcS
>> fi
>>
>> # The following variables can be overwritten in $DEFAULT
>> PATH=/bin:/usr/bin:/sbin:/usr/sbin
>>
>> # See contents of file named in $DEFAULT for comments
>> LS_USER=logstash
>> LS_GROUP=logstash
>> LS_HOME=/var/lib/logstash
>> LS_HEAP_SIZE="500m"
>> LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
>> LS_LOG_FILE=/var/log/logstash/$NAME.log
>> LS_CONF_DIR=/etc/logstash/conf.d
>> LS_OPEN_FILES=16384
>> LS_NICE=19
>> LS_OPTS=""
>> LS_PIDFILE=/var/run/$NAME.pid
>>
>> # End of variables that can be overwritten in $DEFAULT
>>
>> # overwrite settings from default file
>> if [ -f "$DEFAULT" ]; then
>>. "$DEFAULT"
>> fi
>>
>> # Define other required variables
>> PID_FILE=${LS_PIDFILE}
>> DAEMON=/opt/logstash/bin/logstash
>> DAEMON_OPTS="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}"
>>
>> # Check DAEMON exists
>> if ! test -e $DAEMON; then
>>log_failure_msg "Script $DAEMON doesn't exist"
>>exit 1
>> fi
>>
>> case "$1" in
>>start)
>>   if [ -z "$DAEMON" ]; then
>>  log_failure_msg "no logstash script found - $DAEMON"
>>  exit 1
>>   fi
>>
>>   # Check if a config file exists
>>   if [ ! "$(ls -A $LS_CONF_DIR/*.conf 2> /dev/null)" ]; then
>>  log_failure_msg "There aren't any configuration files in 
>> $LS_CONF_DIR"
>>  exit 1
>>   fi
>>
>>   log_daemon_msg "Starting $DESC"
>>
>>   # Parse the actual JAVACMD from the process' environment, we don't 
>> care about errors.
>>   JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
>> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>>   if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>>  --user "$LS_USER" --exec "$JAVA" \
>>   >/dev/null; then
>>  # Prepare environment
>>  HOME="${HOME:-$LS_HOME}"
>>  JAVA_OPTS="${LS_JAVA_OPTS}"
>>  ulimit -n ${LS_OPEN_FILES}
>>  cd "${LS_HOME}"
>>  export PATH HOME JAVACMD JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS 
>> LS_USE_GC_LOGGING
>>
>>  # Start Daemon
>>  start-stop-daemon --start -b --user "$LS_USER" -c 
>> "$LS_USER":"$LS_GROUP" \
>>-d "$LS_HOME" --nicelevel "$LS_NICE" --pidfile "$PID_FILE" 
>> --make-pidfile \
>>--exec $DAEMON -- $DAEMON_OPTS
>>
>>  sleep 1
>>
>>  # Parse the actual JAVACMD from the process' environment, we 
>> don't care about errors.
>>  JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
>> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>>   

Re: logstash 1.4.0 debian package init script not working

2014-04-17 Thread OJ LaBoeuf
The upstart job also doesn't seem to work, it just keeps dying over and 
over again never logging anything to the logfile.  

If i manually start logstash everything works normally.

On Thursday, April 17, 2014 6:12:38 PM UTC-7, OJ LaBoeuf wrote:
>
> Running Ubuntu 12.04 64bit, the logstash init script does not work.
>
> here's the script that came with logstash deb
>
> In particular I don't understand how the script is trying to parse 
> something from the logstash pid, before it even starts the program..?
>
>   log_daemon_msg "Starting $DESC"
>
>   # Parse the actual JAVACMD from the process' environment, we don't 
> care about errors.
>   JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>   if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>  --user "$LS_USER" --exec "$JAVA" \
>   >/dev/null; then
>  # Prepare environment
>
> I checked and JAVA is empty at this location, so what the heck is this 
> trying to do?
>
>
> running this bit:
> sudo start-stop-daemon --test --start --pidfile /var/run/logstash.pid 
> --user "logstash" --exec ""
>
> results in the same message i get at the commandline when trying to 
> /etc/init.d/logstash start
> start-stop-daemon: unable to stat  (No such file or directory)
>
>
> Please advise.
>
>
>
> Full init script pasted below 
>
>
> #!/bin/bash
> #
> # /etc/init.d/logstash -- startup script for LogStash.
> #
> ### BEGIN INIT INFO
> # Provides:  logstash
> # Required-Start:$all
> # Required-Stop: $all
> # Default-Start: 2 3 4 5
> # Default-Stop:  0 1 6
> # Short-Description: Starts logstash
> # Description:   Starts logstash using start-stop-daemon
> ### END INIT INFO
>
> set -e
>
> NAME=logstash
> DESC="Logstash Daemon"
> DEFAULT=/etc/default/$NAME
>
> if [ `id -u` -ne 0 ]; then
>echo "You need root privileges to run this script"
>exit 1
> fi
>
> . /lib/lsb/init-functions
>
> if [ -r /etc/default/rcS ]; then
>. /etc/default/rcS
> fi
>
> # The following variables can be overwritten in $DEFAULT
> PATH=/bin:/usr/bin:/sbin:/usr/sbin
>
> # See contents of file named in $DEFAULT for comments
> LS_USER=logstash
> LS_GROUP=logstash
> LS_HOME=/var/lib/logstash
> LS_HEAP_SIZE="500m"
> LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
> LS_LOG_FILE=/var/log/logstash/$NAME.log
> LS_CONF_DIR=/etc/logstash/conf.d
> LS_OPEN_FILES=16384
> LS_NICE=19
> LS_OPTS=""
> LS_PIDFILE=/var/run/$NAME.pid
>
> # End of variables that can be overwritten in $DEFAULT
>
> # overwrite settings from default file
> if [ -f "$DEFAULT" ]; then
>. "$DEFAULT"
> fi
>
> # Define other required variables
> PID_FILE=${LS_PIDFILE}
> DAEMON=/opt/logstash/bin/logstash
> DAEMON_OPTS="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}"
>
> # Check DAEMON exists
> if ! test -e $DAEMON; then
>log_failure_msg "Script $DAEMON doesn't exist"
>exit 1
> fi
>
> case "$1" in
>start)
>   if [ -z "$DAEMON" ]; then
>  log_failure_msg "no logstash script found - $DAEMON"
>  exit 1
>   fi
>
>   # Check if a config file exists
>   if [ ! "$(ls -A $LS_CONF_DIR/*.conf 2> /dev/null)" ]; then
>  log_failure_msg "There aren't any configuration files in 
> $LS_CONF_DIR"
>  exit 1
>   fi
>
>   log_daemon_msg "Starting $DESC"
>
>   # Parse the actual JAVACMD from the process' environment, we don't 
> care about errors.
>   JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>   if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>  --user "$LS_USER" --exec "$JAVA" \
>   >/dev/null; then
>  # Prepare environment
>  HOME="${HOME:-$LS_HOME}"
>  JAVA_OPTS="${LS_JAVA_OPTS}"
>  ulimit -n ${LS_OPEN_FILES}
>  cd "${LS_HOME}"
>  export PATH HOME JAVACMD JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS 
> LS_USE_GC_LOGGING
>
>  # Start Daemon
>  start-stop-daemon --start -b --user "$LS_USER" -c 
> "$LS_USER":"$LS_GROUP" \
>-d "$LS_HOME" --nicelevel "$LS_NICE" --pidfile "$PID_FILE" 
> --make-pidfile \
>--exec $DAEMON -- $DAEMON_OPTS
>
>  sleep 1
>
>  # Parse the actual JAVACMD from the process' environment, we 
> don't care about errors.
>  JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
> 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
>  if start-stop-daemon --test --start --pidfile "$PID_FILE" \
>  --user "$LS_USER" --exec "$JAVA" \
>  >/dev/null; then
>
> if [ -f "$PID_FILE" ]; then
>rm -f "$PID_FILE"
> fi
>
> log_end_msg 1
>  else
> log_end_msg 0
>  fi
>   else
>  log_progress_msg "(already running)"
>  log_end_msg 0
>   fi
>;;
>stop)
>   log_daemon_msg "Stopping $DESC"
>
>   set +e
>
>   if [ -f "$PID_FI

logstash 1.4.0 debian package init script not working

2014-04-17 Thread OJ LaBoeuf
Running Ubuntu 12.04 64bit, the logstash init script does not work.

here's the script that came with logstash deb

In particular I don't understand how the script is trying to parse 
something from the logstash pid, before it even starts the program..?

  log_daemon_msg "Starting $DESC"

  # Parse the actual JAVACMD from the process' environment, we don't 
care about errors.
  JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 2>/dev/null 
| grep -z ^JAVACMD= | cut -d= -f2)
  if start-stop-daemon --test --start --pidfile "$PID_FILE" \
 --user "$LS_USER" --exec "$JAVA" \
  >/dev/null; then
 # Prepare environment

I checked and JAVA is empty at this location, so what the heck is this 
trying to do?


running this bit:
sudo start-stop-daemon --test --start --pidfile /var/run/logstash.pid 
--user "logstash" --exec ""

results in the same message i get at the commandline when trying to 
/etc/init.d/logstash start
start-stop-daemon: unable to stat  (No such file or directory)


Please advise.



Full init script pasted below 


#!/bin/bash
#
# /etc/init.d/logstash -- startup script for LogStash.
#
### BEGIN INIT INFO
# Provides:  logstash
# Required-Start:$all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Short-Description: Starts logstash
# Description:   Starts logstash using start-stop-daemon
### END INIT INFO

set -e

NAME=logstash
DESC="Logstash Daemon"
DEFAULT=/etc/default/$NAME

if [ `id -u` -ne 0 ]; then
   echo "You need root privileges to run this script"
   exit 1
fi

. /lib/lsb/init-functions

if [ -r /etc/default/rcS ]; then
   . /etc/default/rcS
fi

# The following variables can be overwritten in $DEFAULT
PATH=/bin:/usr/bin:/sbin:/usr/sbin

# See contents of file named in $DEFAULT for comments
LS_USER=logstash
LS_GROUP=logstash
LS_HOME=/var/lib/logstash
LS_HEAP_SIZE="500m"
LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
LS_LOG_FILE=/var/log/logstash/$NAME.log
LS_CONF_DIR=/etc/logstash/conf.d
LS_OPEN_FILES=16384
LS_NICE=19
LS_OPTS=""
LS_PIDFILE=/var/run/$NAME.pid

# End of variables that can be overwritten in $DEFAULT

# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
   . "$DEFAULT"
fi

# Define other required variables
PID_FILE=${LS_PIDFILE}
DAEMON=/opt/logstash/bin/logstash
DAEMON_OPTS="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}"

# Check DAEMON exists
if ! test -e $DAEMON; then
   log_failure_msg "Script $DAEMON doesn't exist"
   exit 1
fi

case "$1" in
   start)
  if [ -z "$DAEMON" ]; then
 log_failure_msg "no logstash script found - $DAEMON"
 exit 1
  fi

  # Check if a config file exists
  if [ ! "$(ls -A $LS_CONF_DIR/*.conf 2> /dev/null)" ]; then
 log_failure_msg "There aren't any configuration files in 
$LS_CONF_DIR"
 exit 1
  fi

  log_daemon_msg "Starting $DESC"

  # Parse the actual JAVACMD from the process' environment, we don't 
care about errors.
  JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 2>/dev/null 
| grep -z ^JAVACMD= | cut -d= -f2)
  if start-stop-daemon --test --start --pidfile "$PID_FILE" \
 --user "$LS_USER" --exec "$JAVA" \
  >/dev/null; then
 # Prepare environment
 HOME="${HOME:-$LS_HOME}"
 JAVA_OPTS="${LS_JAVA_OPTS}"
 ulimit -n ${LS_OPEN_FILES}
 cd "${LS_HOME}"
 export PATH HOME JAVACMD JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS 
LS_USE_GC_LOGGING

 # Start Daemon
 start-stop-daemon --start -b --user "$LS_USER" -c 
"$LS_USER":"$LS_GROUP" \
   -d "$LS_HOME" --nicelevel "$LS_NICE" --pidfile "$PID_FILE" 
--make-pidfile \
   --exec $DAEMON -- $DAEMON_OPTS

 sleep 1

 # Parse the actual JAVACMD from the process' environment, we don't 
care about errors.
 JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 
2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2)
 if start-stop-daemon --test --start --pidfile "$PID_FILE" \
 --user "$LS_USER" --exec "$JAVA" \
 >/dev/null; then

if [ -f "$PID_FILE" ]; then
   rm -f "$PID_FILE"
fi

log_end_msg 1
 else
log_end_msg 0
 fi
  else
 log_progress_msg "(already running)"
 log_end_msg 0
  fi
   ;;
   stop)
  log_daemon_msg "Stopping $DESC"

  set +e

  if [ -f "$PID_FILE" ]; then
 start-stop-daemon --stop --pidfile "$PID_FILE" \
--user "$LS_USER" \
--retry=TERM/20/KILL/5 >/dev/null

 if [ $? -eq 1 ]; then
log_progress_msg "$DESC is not running but pid file exists, 
cleaning up"
 elif [ $? -eq 3 ]; then
PID="`cat $PID_FILE`"
log_failure_msg "Failed to stop $DESC (pid $PID)"
exit 1
 fi

 rm -f "$PID_FILE"
  else
 log_progress_msg "(not running)"
  fi

  log_end_msg 0
  set -e