Skip to content

Commit b87a41b

Browse files
committed
Merge pull request #236 from CodeNow/log-rotate-size
Log rotate size
2 parents a98d0f6 + 143f9ac commit b87a41b

7 files changed

Lines changed: 172 additions & 0 deletions

File tree

ansible/docker-listener.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
- { role: build_essential }
1212
- { role: docker_client }
1313
- { role: git_node_service, tags: [deploy] }
14+
- { role: loggly-rotate }
1415
- { role: consul_value, tags: [deploy, consul_value] }

ansible/krain.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@
88
- { role: notify, tags: [notify] }
99
- { role: build_essential }
1010
- { role: git_node_service, tags: [deploy] }
11+
- { role: loggly-rotate }
1112
- { role: consul_value, tags: [deploy, consul_value] }
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
- name: copy loggly config
3+
tags: loggly
4+
sudo: yes
5+
template:
6+
src=22-loggly.conf.j2
7+
dest=/etc/rsyslog.d/22-loggly.conf
8+
owner=root
9+
group=root
10+
11+
- name: create runnable bin directory
12+
tags: loggly
13+
sudo: yes
14+
file:
15+
path=/opt/runnable/bin
16+
state=directory
17+
mode=0755
18+
owner=ubuntu
19+
group=ubuntu
20+
21+
- name: copy rotate util script
22+
tags: loggly
23+
sudo: yes
24+
template:
25+
src=rotate-logs.sh.j2
26+
dest=/opt/runnable/bin/rotate-{{ name }}-logs.sh
27+
mode=0755
28+
29+
- name: copy app config
30+
tags: loggly
31+
sudo: yes
32+
template:
33+
src=21-output-syslog.conf.j2
34+
dest=/etc/rsyslog.d/21-rotated-{{ name }}.conf
35+
owner=root
36+
group=root
37+
38+
- name: copy rsyslog config
39+
tags: loggly
40+
sudo: yes
41+
template:
42+
src=rsyslog.conf.j2
43+
dest=/etc/rsyslog.conf
44+
owner=root
45+
group=root
46+
47+
- name: stop rsyslog
48+
tags: [loggly, deploy]
49+
sudo: yes
50+
service: name=rsyslog state=stopped
51+
52+
- name: clear rsyslog state file
53+
tags: [loggly, deploy]
54+
sudo: yes
55+
file:
56+
path=/var/spool/rsyslog/stat-{{ name }}
57+
state=absent
58+
59+
- name: touch the log file
60+
tags: [loggly, deploy]
61+
sudo: yes
62+
file:
63+
path=/var/log/{{ name }}-daemon.log
64+
state=touch
65+
owner=syslog
66+
group=adm
67+
68+
- name: restart rsyslog
69+
tags: [loggly, deploy]
70+
sudo: yes
71+
service: name=rsyslog state=restarted
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
$WorkDirectory /var/spool/rsyslog
2+
3+
# start log rotation via outchannel
4+
# outchannel definition
5+
$outchannel log_rotation_{{ name }},/var/log/{{ name }}-daemon.log,524288000,/opt/runnable/bin/rotate-{{ name }}-logs.sh
6+
# activate the channel and log everything to it
7+
if $msg contains '{{ name }}' and $syslogfacility-text == 'local7' then :omfile:$log_rotation_{{ name }}
8+
# end log rotation via outchannel
9+
10+
# {{ name }} access file:
11+
#Add a tag for {{ name }} events
12+
$template LogglyFormatFile{{ name }},"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [f673760d-e0b3-4a93-a15e-2862ea074f91@41058 tag=\"file\" ] %msg%\n"
13+
if $msg contains '{{ name }}' then @@logs-01.loggly.com:514;LogglyFormatFile{{ name }}
14+
if $msg contains '{{ name }}' then ~
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# -------------------------------------------------------
2+
# Syslog Logging Directives for Loggly (sandboxes.loggly.com)
3+
# -------------------------------------------------------
4+
5+
# Define the template used for sending logs to Loggly. Do not change this format.
6+
$template LogglyFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [f673760d-e0b3-4a93-a15e-2862ea074f91@41058] %msg%\n"
7+
8+
$WorkDirectory /var/spool/rsyslog # where to place spool files
9+
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
10+
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
11+
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
12+
$ActionQueueType LinkedList # run asynchronously
13+
$ActionResumeRetryCount -1 # infinite retries if host is down
14+
15+
# Send messages to Loggly over TCP using the template.
16+
*.* @@logs-01.loggly.com:514;LogglyFormat
17+
18+
# -------------------------------------------------------
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
# literally truncate the file
4+
cat /dev/null > /var/log/{{ name }}-daemon.log 2>&1
5+
# exit code? don't care
6+
7+
exit 0
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# /etc/rsyslog.conf Configuration file for rsyslog.
2+
#
3+
# For more information see
4+
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
5+
#
6+
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf
7+
$MaxMessageSize 1024k
8+
9+
#################
10+
#### MODULES ####
11+
#################
12+
13+
$ModLoad imuxsock # provides support for local system logging
14+
$ModLoad imklog # provides kernel logging support
15+
#$ModLoad immark # provides --MARK-- message capability
16+
17+
# provides UDP syslog reception
18+
$ModLoad imudp
19+
$UDPServerRun 514
20+
21+
# provides TCP syslog reception
22+
$ModLoad imtcp
23+
$InputTCPServerRun 514
24+
25+
# Enable non-kernel facility klog messages
26+
$KLogPermitNonKernelFacility on
27+
28+
###########################
29+
#### GLOBAL DIRECTIVES ####
30+
###########################
31+
32+
#
33+
# Use traditional timestamp format.
34+
# To enable high precision timestamps, comment out the following line.
35+
#
36+
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
37+
38+
# Filter duplicated messages
39+
$RepeatedMsgReduction on
40+
41+
#
42+
# Set the default permissions for all log files.
43+
#
44+
$FileOwner syslog
45+
$FileGroup adm
46+
$FileCreateMode 0640
47+
$DirCreateMode 0755
48+
$Umask 0022
49+
$PrivDropToUser syslog
50+
$PrivDropToGroup syslog
51+
52+
#
53+
# Where to place spool and state files
54+
#
55+
$WorkDirectory /var/spool/rsyslog
56+
57+
#
58+
# Include all config files in /etc/rsyslog.d/
59+
#
60+
$IncludeConfig /etc/rsyslog.d/*.conf

0 commit comments

Comments
 (0)