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 %}