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