blob: 621c0f1bd5694b0559c113ae0b3f68dfdafaeb3f [file] [log] [blame]
{%- from "kubernetes/map.jinja" import common with context -%}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: fluentd-logger-cfg
namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
addonmanager.kubernetes.io/mode: Reconcile
data:
fluent.conf: |
@include general.conf
@include kubernetes-input.conf
@include systemd-input.conf
@include forward-output.conf
general.conf: |
<match fluent.**>
@type null
</match>
<source>
@type http
port 9880
bind 0.0.0.0
</source>
kubernetes-input.conf: |
<source>
@type tail
path /var/log/containers/*.log
pos_file /var/log/fluentd-containers.log.pos
time_format {{ common.addons.fluentd.logger.config.kubernetes_input.get('time_format') }}
tag temp.kubernetes.container.*
format json
read_from_head true
path_key log_path
</source>
<source>
@type tail
path /var/log/kubernetes.log
pos_file /var/log/fluentd-kubernetes.log.pos
time_format {{ common.addons.fluentd.logger.config.kubernetes_input.get('time_format') }}
tag temp.kubernetes.service
format json
<parse>
@type regexp
expression /^(?<service>[^\[]*)\[.*\]:\s(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<log>.*)/
time_key time
</parse>
read_from_head true
path_key log_path
</source>
systemd-input.conf: |
<source>
@type systemd
matches [{"_SYSTEMD_UNIT": "docker.service"}]
path /run/log/journal
pos_file /var/log/fluentd-journald-systemd.pos
tag systemd.source
<entry>
field_map {"MESSAGE": "Payload", "_CMDLINE": "process", "_COMM": "programname", "_PID": "Pid", "_SYSTEMD_UNIT": "service", "priority": "Severity", "syslog_identifier": "ident" }
field_map_strict true
fields_strip_underscores true
fields_lowercase true
</entry>
</source>
forward-output.conf: |
<match **>
@type forward
require_ack_response {{ common.addons.fluentd.logger.config.forward_output.get('require_ack_response', 'true') | lower }}
ack_response_timeout {{ common.addons.fluentd.logger.config.forward_output.get('ack_response_timeout', '30') }}
recover_wait {{ common.addons.fluentd.logger.config.forward_output.get('recover_wait', '10s') }}
heartbeat_interval {{ common.addons.fluentd.logger.config.forward_output.get('heartbeat_interval', '1s') }}
phi_threshold {{ common.addons.fluentd.logger.config.forward_output.get('phi_threshold', '16') }}
send_timeout {{ common.addons.fluentd.logger.config.forward_output.get('send_timeout', '10s') }}
hard_timeout {{ common.addons.fluentd.logger.config.forward_output.get('hard_timeout', '10s') }}
expire_dns_cache {{ common.addons.fluentd.logger.config.forward_output.get('expire_dns_cache', '15') }}
heartbeat_type {{ common.addons.fluentd.logger.config.forward_output.get('heartbeat_type', 'tcp') }}
buffer_chunk_limit {{ common.addons.fluentd.logger.config.forward_output.get('buffer_chunk_limit', '2M') }}
buffer_queue_limit {{ common.addons.fluentd.logger.config.forward_output.get('buffer_queue_limit', '32') }}
flush_interval {{ common.addons.fluentd.logger.config.forward_output.get('flush_interval', '5s') }}
max_retry_wait {{ common.addons.fluentd.logger.config.forward_output.get('max_retry_wait', '15') }}
disable_retry_limit
num_threads {{ common.addons.fluentd.logger.config.forward_output.get('num_threads', '8') }}
<server>
name fluentd-aggregator
host fluentd-aggregator
port "#{ENV['FLUENTD_AGGREGATOR_PORT']}"
weight 60
</server>
</match>