Enable docker logging
- journald logging driver
- "docker logs" still available
- service name extracted
- corrected severity
Change-Id: I23c30ebc7b8268d3fb1c5544f8ed3f9ccc3393e7
Related-bug: PROD-26228 (PROD:26228)
diff --git a/docker/files/docker-compose.yml b/docker/files/docker-compose.yml
index f1685f0..1e54db2 100644
--- a/docker/files/docker-compose.yml
+++ b/docker/files/docker-compose.yml
@@ -9,6 +9,10 @@
{%- for name, srv in service.iteritems() %}
{%- set env_file_set = False %}
{{ name }}:
+ logging:
+ driver: journald
+ options:
+ tag: {% raw %}'docker.{{.Name}}'{% endraw %}
{%- if 'env_file' in srv.keys() %}{%- set env_file_set = True %}{%- endif %}
{{ srv|yaml(False)|indent(4) }}
{%- if not env_file_set and compose.environment is defined %}
diff --git a/docker/meta/fluentd.yml b/docker/meta/fluentd.yml
index 759614b..4d977e7 100644
--- a/docker/meta/fluentd.yml
+++ b/docker/meta/fluentd.yml
@@ -4,43 +4,30 @@
config:
label:
docker:
- enabled: false
- input:
- container:
- type: tail
- tag: temp.docker.container.*
- path: /var/lib/docker/containers/*/*-json.log
- path_key: log_path
- pos_file: {{ positiondb }}/docker.container.pos
- parser:
- type: json
- time_format: '%Y-%m-%dT%H:%M:%S.%NZ'
- keep_time_key: false
filter:
enrich:
- tag: 'temp.docker.container.**'
+ tag: 'docker.**'
type: record_transformer
enable_ruby: true
- remove_keys: log
record:
- - name: severity_label
- value: INFO
- - name: Severity
- value: 6
- name: programname
- value: docker
- - name: Payload
- value: ${record['log']}
+ value: ${ if record["ident"] == "dockerd"; "dockerd" else record["ident"].split(".")[1] end }
+ - name: severity_label
+ value: ${ if record["Payload"].downcase.include? " error"; "ERROR"; elsif record["Payload"].downcase.include? " warn"; "WARNING"; elsif record["Payload"].downcase.include? " debug"; "DEBUG"; elsif record["Payload"].downcase.include? " debg"; "DEBUG" else; "INFO"; end }
+ add_severity:
+ require:
+ - enrich
+ tag: 'docker.**'
+ type: record_transformer
+ enable_ruby: true
+ record:
+ - name: service
+ value: docker.${ if record["ident"] == "dockerd"; "service" ; else; record["programname"]; end }
+ - name: Severity
+ value: '${ { 8=>"TRACE",7=>"DEBUG",6=>"INFO",5=>"NOTICE",4=>"WARNING",3=>"ERROR",2=>"CRITICAL",1=>"ALERT",0=>"EMERGENCY" }.key(record["severity_label"]) }'
match:
- cast_service_tag:
- tag: 'temp.docker.container.**'
- type: rewrite_tag_filter
- rule:
- - name: log_path
- regexp: '^.*\/(.*)-json\.log$'
- result: docker.container.$1
push_to_default:
- tag: 'docker.container.*'
+ tag: 'docker.**'
type: relabel
label: default_output
{%- endif %}