Skip to content

Instantly share code, notes, and snippets.

@ckraybill
Created April 9, 2015 04:52
Show Gist options
  • Save ckraybill/b82f0595251b835eadb6 to your computer and use it in GitHub Desktop.
Save ckraybill/b82f0595251b835eadb6 to your computer and use it in GitHub Desktop.
Cloud66 custom deploy hook for configuring papertrail to log application logs. These go in your `.cloud66` deployment folder.
production:
after_rails:
- source: /.cloud66/log_files.yml
destination: /etc/log_files.yml
sudo: true
target: rails
apply_during: build_only
- source: /.cloud66/remote_syslog.init.d
destination: /etc/init.d/remote_syslog
sudo: true
target: rails
apply_during: build_only
- source: /.cloud66/papertrail.sh
destination: /tmp/papertrail.sh
target: rails
sudo: true
execute: true
apply_during: build_only
files:
- <%= ENV['STACK_BASE'] %>/shared/log/production.log
- <%= ENV['STACK_BASE'] %>/shared/log/nginx_error.log
destination:
host: logs.papertrailapp.com
port: 12345 # change to your port
protocol: tls
#!/bin/bash
# Download and install the remote_syslog2 binary from papertrail
wget https://github.com/papertrail/remote_syslog2/releases/download/v0.13/remote_syslog_linux_amd64.tar.gz
tar xzf ./remote_syslog*.tar.gz
cd remote_syslog
sudo cp ./remote_syslog /usr/local/bin
# Set it up as a service (assumes init script has already been cp'd)
sudo chmod +x /etc/init.d/remote_syslog
sudo service remote_syslog start
sudo update-rc.d remote_syslog defaults
#!/bin/bash
### BEGIN INIT INFO
# Provides: remote_syslog
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and Stop
# Description: Runs remote_syslog
### END INIT INFO
# /etc/init.d/remote_syslog
#
# Starts the remote_syslog daemon
#
# chkconfig: 345 90 5
# description: Runs remote_syslog
#
# processname: remote_syslog
prog="remote_syslog"
config="/etc/log_files.yml"
pid_dir="/var/run"
EXTRAOPTIONS=""
pid_file="$pid_dir/$prog.pid"
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
RETVAL=0
is_running(){
[ -e $pid_file ]
}
start(){
echo -n $"Starting $prog: "
unset HOME MAIL USER USERNAME
$prog -c $config --pid-file=$pid_file $EXTRAOPTIONS
RETVAL=$?
echo
return $RETVAL
}
stop(){
echo -n $"Stopping $prog: "
if (is_running); then
kill `cat $pid_file`
RETVAL=$?
echo
return $RETVAL
else
echo "$pid_file not found"
fi
}
status(){
echo -n $"Checking for $pid_file: "
if (is_running); then
echo "found"
else
echo "not found"
fi
}
reload(){
restart
}
restart(){
stop
start
}
condrestart(){
is_running && restart
return 0
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
condrestart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
RETVAL=1
esac
exit $RETVAL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment