-
-
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 |
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?
Thanks!