- 
      
- 
        Save jippi/1065761 to your computer and use it in GitHub Desktop. 
| update-rc.d logstash-shipper defaults | |
| update-rc.d logstash-reader defaults | 
| #! /bin/sh | |
| ### BEGIN INIT INFO | |
| # Provides: logstash-shipper | |
| # Required-Start: $remote_fs $syslog | |
| # Required-Stop: $remote_fs $syslog | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: Start daemon at boot time | |
| # Description: Enable service provided by daemon. | |
| ### END INIT INFO | |
| . /lib/lsb/init-functions | |
| mode="reader" | |
| name="logstash-$mode" | |
| logstash_bin="/usr/bin/java -- -jar /opt/logstash/logstash.jar" | |
| logstash_conf="/etc/logstash/$mode.conf" | |
| logstash_log="/var/log/logstash/$name.log" | |
| pid_file="/var/run/$name.pid" | |
| NICE_LEVEL="-n 19" | |
| start () { | |
| command="/usr/bin/nice ${NICE_LEVEL} ${logstash_bin} agent -f $logstash_conf --log ${logstash_log}" | |
| log_daemon_msg "Starting $mode" "$name" | |
| if start-stop-daemon --start --quiet --oknodo --pidfile "$pid_file" -b -m --exec $command; then | |
| log_end_msg 0 | |
| else | |
| log_end_msg 1 | |
| fi | |
| } | |
| stop () { | |
| start-stop-daemon --stop --quiet --oknodo --pidfile "$pid_file" | |
| } | |
| status () { | |
| status_of_proc -p $pid_file "" "$name" | |
| } | |
| case $1 in | |
| start) | |
| if status; then exit 0; fi | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| reload) | |
| stop | |
| start | |
| ;; | |
| restart) | |
| stop | |
| start | |
| ;; | |
| status) | |
| status && exit 0 || exit $? | |
| ;; | |
| *) | |
| echo "Usage: $0 {start|stop|restart|reload|status}" | |
| exit 1 | |
| ;; | |
| esac | |
| exit 0 | 
| #! /bin/sh | |
| ### BEGIN INIT INFO | |
| # Provides: logstash-shipper | |
| # Required-Start: $remote_fs $syslog | |
| # Required-Stop: $remote_fs $syslog | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: Start daemon at boot time | |
| # Description: Enable service provided by daemon. | |
| ### END INIT INFO | |
| . /lib/lsb/init-functions | |
| mode="shipper" | |
| name="logstash-$mode" | |
| logstash_bin="/usr/bin/java -- -jar /opt/logstash/logstash.jar" | |
| logstash_conf="/etc/logstash/$mode.conf" | |
| logstash_log="/var/log/logstash/$name.log" | |
| pid_file="/var/run/$name.pid" | |
| NICE_LEVEL="-n 19" | |
| start () { | |
| command="/usr/bin/nice ${NICE_LEVEL} ${logstash_bin} agent -f $logstash_conf --log ${logstash_log}" | |
| log_daemon_msg "Starting $mode" "$name" | |
| if start-stop-daemon --start --quiet --oknodo --pidfile "$pid_file" -b -m --exec $command; then | |
| log_end_msg 0 | |
| else | |
| log_end_msg 1 | |
| fi | |
| } | |
| stop () { | |
| start-stop-daemon --stop --quiet --oknodo --pidfile "$pid_file" | |
| } | |
| status () { | |
| status_of_proc -p $pid_file "" "$name" | |
| } | |
| case $1 in | |
| start) | |
| if status; then exit 0; fi | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| reload) | |
| stop | |
| start | |
| ;; | |
| restart) | |
| stop | |
| start | |
| ;; | |
| status) | |
| status && exit 0 || exit $? | |
| ;; | |
| *) | |
| echo "Usage: $0 {start|stop|restart|reload|status}" | |
| exit 1 | |
| ;; | |
| esac | |
| exit 0 | 
Thanks!
reload of config file is working fine:
reload)
pkill -HUP -u $LOGSTASH_USER
;;
Very useful. Thank you!
Thanks a lot for this Gist !
How to start logstash as a "logstash" user ?
just add a --chuid logstash:logstash option, like:
  start () {
      log_daemon_msg "Starting $mode" "$name"
      if start-stop-daemon --start --quiet --oknodo --pidfile "$pid_file" --chuid logstash:logstash -b -m --exec $command; then
          log_end_msg 0
      else
          log_end_msg 1
      fi
  }
Hello,
How should I use this script?
Should I create a file named  logstash-reader and logstash-shipper?
Where should I put the file, logstash-reader and logstash-shipper?
then
excute
update-rc.d logstash-shipper defaults
update-rc.d logstash-reader defaults
commands in anywhere?
After that?
What command I should type to start the logstash?
Something like logstash-reader start?
Thank you very much.
Andy
@AndyCCChang, I know this may be a little late, but for future users
To use this script:
create logstash-reader in /etc/init.d/
put the reader code from above into that file
make it executable with: chmod +x logstash-reader
run: update-rc.d logstash-reader defaults
Do the same for the shipper on the other machine (typically, depending on your setup. For example, I'm only running the reader)
[These insctructions were taken from StackOverflow, look here for more info: http://stackoverflow.com/questions/7221757/run-automatically-program-on-startup-under-linux-ubuntu]
logstash-reader will then be run at startup
you can also use the commands
service logstash-reader status/start/restart/stop
(these should be pretty self-explanatory)
It also looks like the logstash cookbook is down :(
First of all, thank you for this gist! It's really helpful. However it's not working for me, and I'm not sure where the problem is. I copied your gist and adjusted the paths. This is the exception I am getting:
logstash@asgard:~$ service logstash-reader status
/etc/init.d/logstash-reader: invalid arguments
 * could not access PID file for logstash-reader
logstash@asgard:~$ service logstash-reader start
/etc/init.d/logstash-reader: invalid arguments
 * could not access PID file for logstash-reader
 * Starting reader logstash-reader                                                              
/etc/init.d/logstash-reader: 28: /etc/init.d/logstash-reader: start-stop-daemon: not found
                                                                                         [fail]Do you have any ideas what could be the problem?
If you edited the logstash_bin= line, you may need to make sure that the command is preceded by --.
logstash_bin="-- /opt/logstash/logstash-1.4.2/bin/logstash"
I got the same error:
- could not access PID file for logstash-shipper
- Starting shipper logstash-shipper
i tried with above soln but still no luck ...plss help
How we make use of multiple pipelines when logstash is running as a service?
you should really add this to the logstash cookbook :)