Add fluentd support to RabbitMQ

Related-Prod: PROD-16107

Change-Id: I8be8838401254ab0fda2f5741aac88d8ea8f65e3
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 8430304..afaa3b6 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -19,3 +19,5 @@
         enabled: true
       prometheus:
         enabled: true
+      fluentd:
+        enabled: true
diff --git a/rabbitmq/meta/fluentd.yml b/rabbitmq/meta/fluentd.yml
new file mode 100644
index 0000000..0b75d10
--- /dev/null
+++ b/rabbitmq/meta/fluentd.yml
@@ -0,0 +1,37 @@
+{%- if pillar.get('fluentd', {}).get('agent', {}).get('enabled', False) %}
+agent:
+  config:
+    label:
+      rabbitmq:
+        input:
+          tail_rabbitmq:
+            type: tail
+            tag: rabbitmq
+            path: /var/log/rabbitmq/rabbit*.log
+            pos_file: {{ pillar.fluentd.agent.dir.positiondb }}/rabbitmq.pos
+            parser:
+              type: multiline
+              time_key: Timestamp
+              time_format: '%d-%b-%Y::%H:%M:%S'
+              keep_time_key: false
+              format_firstline: '/=[A-Z]+\sREPORT====/'
+              format: '/^=(?<orig_severity_label>[A-Z]+)\sREPORT====\s(?<Timestamp>.*)\s===\n(?<Payload>.*)/'
+        filter:
+          match_severity:
+            type: record_transformer
+            tag: rabbitmq
+            remove_keys: orig_severity_label
+            enable_ruby: true
+            record:
+              - name: programname
+                value: rabbitmq
+              - name: severity_label
+                value: ${ {'INFO'=>'INFO','NOTICE'=>'NOTICE','SUPERVISOR'=>'NOTICE','WARNING'=>'WARNING','ERROR'=>'ERROR','CRASH'=>'CRITICAL'}[record['orig_severity_label']] }
+              - name: Severity
+                value: ${ {'INFO'=>6,'NOTICE'=>5,'SUPERVISOR'=>5,'WARNING'=>4,'ERROR'=>3,'CRASH'=>2}[record['orig_severity_label']].to_i }
+        match:
+          push_to_default:
+            tag: rabbitmq
+            type: relabel
+            label: default_output
+{%- endif %}