Skip to content

Commit 3fc3ee8

Browse files
committed
Merge pull request #465 from CodeNow/SAN-3492-add-docker-upstart-logs-loggly
Pipe STDOUT/STDERR into logger
2 parents f1c97bf + 0b5ca86 commit 3fc3ee8

4 files changed

Lines changed: 89 additions & 0 deletions

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
description "Docker daemon"
2+
3+
start on (local-filesystems and net-device-up IFACE!=lo)
4+
stop on runlevel [!2345]
5+
limit nofile 524288 1048576
6+
limit nproc 524288 1048576
7+
8+
respawn
9+
10+
kill timeout 20
11+
12+
pre-start script
13+
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
14+
if grep -v '^#' /etc/fstab | grep -q cgroup \
15+
|| [ ! -e /proc/cgroups ] \
16+
|| [ ! -d /sys/fs/cgroup ]; then
17+
exit 0
18+
fi
19+
if ! mountpoint -q /sys/fs/cgroup; then
20+
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
21+
fi
22+
(
23+
cd /sys/fs/cgroup
24+
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
25+
mkdir -p $sys
26+
if ! mountpoint -q $sys; then
27+
if ! mount -n -t cgroup -o $sys cgroup $sys; then
28+
rmdir $sys || true
29+
fi
30+
fi
31+
done
32+
)
33+
end script
34+
35+
script
36+
# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
37+
DOCKER=/usr/bin/$UPSTART_JOB
38+
DOCKER_OPTS=
39+
if [ -f /etc/default/$UPSTART_JOB ]; then
40+
. /etc/default/$UPSTART_JOB
41+
fi
42+
# redirect STDOUT/STDERR to logger app for rsyslog/loggly
43+
exec "$DOCKER" daemon $DOCKER_OPTS 2>&1 | logger -t docker_engine -p local7.info
44+
end script
45+
46+
# Don't emit "started" event until docker.sock is ready.
47+
# See https://github.com/docker/docker/issues/6647
48+
post-start script
49+
DOCKER_OPTS=
50+
if [ -f /etc/default/$UPSTART_JOB ]; then
51+
. /etc/default/$UPSTART_JOB
52+
fi
53+
if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
54+
while ! [ -e /var/run/docker.sock ]; do
55+
initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1
56+
echo "Waiting for /var/run/docker.sock"
57+
sleep 0.1
58+
done
59+
echo "/var/run/docker.sock is up"
60+
fi
61+
end script

ansible/roles/docker/tasks/main.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@
55
file:
66
path=/etc/ssl/docker
77
state=directory
8+
9+
- name: copy docker upstart config
10+
become: true
11+
copy:
12+
src=docker.conf
13+
dest=/etc/init/docker.conf
14+
mode=0444
15+
owner=root
16+
group=root
817

918
- name: copy docker certs
1019
become: true
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
$WorkDirectory /var/spool/rsyslog
2+
3+
# Rotate per hour
4+
$template RotateHourly_docker_engine,"/var/log/runnable/%$YEAR%/%$MONTH%/%$DAY%/%$HOUR%/docker_engine.log"
5+
if $msg contains 'docker_engine' and $syslogfacility-text == 'local7' then { action (type="omfile" DynaFile="RotateHourly_docker_engine" template="RunnableJSON" dirCreateMode="0755" FileCreateMode="0644") }
6+
7+
# Loggly: Add a tag for docker_engine events
8+
$template LogglyFormat_docker_engine,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [f673760d-e0b3-4a93-a15e-2862ea074f91@41058 tag=\"runnable\" tag=\"production-epsilon\"] %msg%\n"
9+
if $msg contains 'docker_engine' and $syslogfacility-text == 'local7' then @@logs-01.loggly.com:6514;LogglyFormat_docker_engine
10+
if $msg contains 'docker_engine' and $syslogfacility-text == 'local7' then stop

ansible/roles/loggly/tasks/main.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,15 @@
5555
owner=syslog
5656
group=syslog
5757

58+
- name: copy docker upstart logs config
59+
tags: loggly
60+
become: true
61+
copy:
62+
src=21-rotated-docker.conf
63+
dest=/etc/rsyslog.d/21-rotated-docker.conf
64+
owner=syslog
65+
group=syslog
66+
5867
- name: copy app config
5968
when: name is defined
6069
tags: loggly

0 commit comments

Comments
 (0)