Updated fluentd related yamls
- Rechecked fluentd filters
- Moved some of the value params to the reclass
Change-Id: I21f67b0e570a1053d70e3c22273bff038a0bf345
Related-Bug: PROD-21821
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml
index 7cb8a38..03bd870 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml
@@ -4,7 +4,7 @@
kind: Deployment
metadata:
name: fluentd-aggregator
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
k8s-app: fluentd-aggregator
version: v1
@@ -30,20 +30,18 @@
effect: NoSchedule
containers:
- name: fluentd-aggregator
- image: fluent/fluentd-kubernetes-daemonset:v1.2-debian-elasticsearch
+ image: {{ common.addons.fluentd.aggregator.get('image', 'fluent/fluentd-kubernetes-daemonset:v1.2-debian-elasticsearch') }}
env:
- name: FLUENTD_ELASTICSEARCH_HOST
- value: "{{ common.addons.fluentd.aggregator.es.get('host', '127.0.0.1') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.output.es.get('host', '127.0.0.1') }}"
- name: FLUENTD_ELASTICSEARCH_PORT
- value: "{{ common.addons.fluentd.aggregator.es.get('port', '9200') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.output.es.get('port', '9200') }}"
- name: FLUENTD_ELASTICSEARCH_SCHEME
- value: "{{ common.addons.fluentd.aggregator.es.get('scheme', 'http') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.output.es.get('scheme', 'http') }}"
- name: FLUENTD_AGGREGATOR_BIND_PORT
- value: "{{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.forward_input.bind.get('port', '24224') }}"
- name: ENVIRONMENT_LABEL
value: "{{ grains.domain }}"
- # - name: FLUENTD_OPT
- # value: "--use-v1-config"
# TODO: a hack to pass the broken entrypoint in upstream docker image for k8s fluent when configmap is used
- name: FLUENT_ELASTICSEARCH_USER
value: "null"
@@ -51,11 +49,11 @@
value: "null"
resources:
limits:
- memory: 500Mi
+ memory: {{ common.addons.fluentd.aggregator.resources.limits.get('memory', '500Mi') }}
requests:
- memory: 500Mi
+ memory: {{ common.addons.fluentd.aggregator.resources.requests.get('memory', '500Mi') }}
ports:
- - containerPort: {{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}
+ - containerPort: {{ common.addons.fluentd.aggregator.config.forward_input.bind.get('port', '24224') }}
name: main-input
protocol: TCP
- containerPort: 9880
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml
index 34fb625..70b65c9 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml
@@ -1,9 +1,10 @@
+{%- from "kubernetes/map.jinja" import common with context -%}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: fluentd-aggregator-cfg
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
addonmanager.kubernetes.io/mode: Reconcile
data:
@@ -37,7 +38,7 @@
Type log
environment_label "#{ENV['ENVIRONMENT_LABEL']}"
Hostname ${ hostname }
- Timestamp ${ time.strftime('%Y-%m-%dT%H:%M:%S.%N%z') }
+ Timestamp ${ time.strftime("{{ common.addons.fluentd.aggregator.config.general.get('time_format', '%Y-%m-%dT%H:%M:%S.%N%z') }}") }
</record>
</filter>
@@ -50,30 +51,36 @@
<filter temp.kubernetes.**>
@type record_transformer
enable_ruby true
- remove_keys log
<record>
kubernetes_namespace_container_name ${record["kubernetes"]["namespace_name"]}.${record["kubernetes"]["container_name"]}
- Payload ${record['log']}
</record>
</filter>
- <filter temp.kubernetes.kube-system.**>
- @type parser
- format kubernetes
- reserve_data true
- key_name log
- suppress_parse_error_log true
- </filter>
+ <match temp.kubernetes.container>
+ @type rewrite_tag_filter
+ <rule>
+ key
+ pattern ^(.*)$
+ tag __TAG__.$1
+ </rule>
+ </match>
<filter temp.kubernetes.container.**>
@type record_transformer
enable_ruby
<record>
- severity_label INFO
- Severity 6
+ severity_label ${ {"ERROR"=>"stderr","INFO"=>"stdout"}.key(record["stream"]) }
+ Severity ${ {3=>"stderr",6=>"stdout"}.key(record["stream"]) }
programname ${ record['kubernetes']['container_name'] }
</record>
</filter>
systemd-filter.conf: |
+ <filter systemd.source>
+ @type record_transformer
+ enable_ruby
+ <record>
+ severity_label ${ {"TRACE"=>8,"DEBUG"=>7,"INFO"=>6,"NOTICE"=>5,"WARNING"=>4,"ERROR"=>3,"CRITICAL"=>2,"ALERT"=>1,"EMERGENCY"=>0}.key(record["Severity"].to_i) }
+ </record>
+ </filter>
<match systemd.source>
@type rewrite_tag_filter
<rule>
@@ -83,18 +90,20 @@
</rule>
</match>
<filter systemd.source.kubelet>
- type parser
+ @type parser
format kubernetes
reserve_data true
- key_name MESSAGE
- suppress_parse_error_log true
+ key_name Payload
</filter>
- <filter systemd.source.docker>
- type parser
- format /^time="(?<time>[^)]*)" level=(?<severity>[^ ]*) msg="(?<message>[^"]*)"( err="(?<error>[^"]*)")?( statusCode=($<status_code>\d+))?/
+ <filter systemd.source.kube-apiserver>
+ @type parser
+ format kubernetes
reserve_data true
- key_name MESSAGE
- suppress_parse_error_log true
+ key_name Payload
+ </filter>
+ <filter systemd.source.**>
+ @type record_transformer
+ remove_keys message, severity
</filter>
output.conf: |
@@ -109,24 +118,25 @@
<match **>
@type elasticsearch
- log_level debug
+ @log_level {{ common.addons.fluentd.aggregator.config.output.get('log_level', 'info') }}
host "#{ENV['FLUENTD_ELASTICSEARCH_HOST']}"
port "#{ENV['FLUENTD_ELASTICSEARCH_PORT']}"
scheme "#{ENV['FLUENTD_ELASTICSEARCH_SCHEME'] || 'http'}"
ssl_verify "#{ENV['FLUENTD_ELASTICSEARCH_SSL_VERIFY'] || 'true'}"
reload_connections "#{ENV['FLUENTD_ELASTICSEARCH_RELOAD_CONNECTIONS'] || 'true'}"
type_name message
+ tag_key Logger
include_tag_key true
time_key Timestamp
time_key_exclude_timestamp true
- logstash_format true
- logstash_prefix k8s
- logstash_dateformat %Y.%m.%d
- request_timeout 10s
- buffer_chunk_limit 2M
- buffer_queue_limit 32
- flush_interval 10s
- max_retry_wait 30
+ logstash_format {{ common.addons.fluentd.aggregator.config.output.get('logstash_format', 'true') | lower }}
+ logstash_prefix {{ common.addons.fluentd.aggregator.config.output.get('logstash_prefix', 'log') }}
+ logstash_dateformat {{ common.addons.fluentd.aggregator.config.output.get('logstash_dateformat', '%Y.%m.%d') }}
+ request_timeout {{ common.addons.fluentd.aggregator.config.output.get('request_timeout', '10s') }}
+ buffer_chunk_limit {{ common.addons.fluentd.aggregator.config.output.get('buffer_chunk_limit', '2m') }}
+ buffer_queue_limit {{ common.addons.fluentd.aggregator.config.output.get('buffer_queue_limit', '32') }}
+ flush_interval {{ common.addons.fluentd.aggregator.config.output.get('flush_interval', '10s') }}
+ max_retry_wait {{ common.addons.fluentd.aggregator.config.output.get('max_retry_wait', '30') }}
disable_retry_limit
- num_threads 8
+ num_threads {{ common.addons.fluentd.aggregator.config.output.get('num_threads', '8') }}
</match>
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml
index 7c58fd5..f6569b5 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml
@@ -4,7 +4,7 @@
kind: Service
metadata:
name: fluentd-aggregator
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
k8s-app: fluentd-aggregator
kubernetes.io/cluster-service: "true"
@@ -15,5 +15,5 @@
k8s-app: fluentd-aggregator
ports:
- name: fluentd-aggregator
- port: {{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}
+ port: {{ common.addons.fluentd.aggregator.config.forward_input.bind.get('port', '24224') }}
protocol: TCP
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-logger-ds.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-logger-ds.yaml
index a5c5764..685ade4 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-logger-ds.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-logger-ds.yaml
@@ -4,7 +4,7 @@
kind: DaemonSet
metadata:
name: fluentd-logger
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
k8s-app: fluentd-logger
version: v1
@@ -30,17 +30,17 @@
- key: node-role.kubernetes.io/master
containers:
- name: fluentd-logger
- image: fluent/fluentd-kubernetes-daemonset:v1.2-debian-stackdriver
+ image: {{ common.addons.fluentd.logger.get('image', 'fluent/fluentd-kubernetes-daemonset:v1.2-debian-stackdriver') }}
env:
- name: FLUENTD_AGGREGATOR_HOST
value: "fluentd-aggregator"
- name: FLUENTD_AGGREGATOR_PORT
- value: "{{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.forward_input.bind.get('port', '24224') }}"
resources:
limits:
- memory: 500Mi
+ memory: {{ common.addons.fluentd.logger.resources.limits.get('memory', '500Mi') }}
requests:
- memory: 500Mi
+ memory: {{ common.addons.fluentd.logger.resources.requests.get('memory', '500Mi') }}
volumeMounts:
- name: varlog
mountPath: /var/log
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-logger-fluent-conf.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-logger-fluent-conf.yaml
index 3003504..d7f7c15 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-logger-fluent-conf.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-logger-fluent-conf.yaml
@@ -1,9 +1,10 @@
+{%- from "kubernetes/map.jinja" import common with context -%}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: fluentd-logger-cfg
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
addonmanager.kubernetes.io/mode: Reconcile
data:
@@ -28,7 +29,7 @@
@type tail
path /var/log/containers/*.log
pos_file /var/log/fluentd-containers.log.pos
- time_format %Y-%m-%dT%H:%M:%S.%NZ
+ time_format {{ common.addons.fluentd.logger.config.kubernetes_input.get('time_format') }}
tag temp.kubernetes.container.*
format json
read_from_head true
@@ -38,6 +39,7 @@
systemd-input.conf: |
<source>
@type systemd
+ matches [{"_SYSTEMD_UNIT": "kubelet.service"}, {"_SYSTEMD_UNIT": "docker.service"}, {"_SYSTEMD_UNIT": "kube-apiserver.service"} ]
path /run/log/journal
pos_file /var/log/fluentd-journald-systemd.pos
tag systemd.source
@@ -52,21 +54,21 @@
forward-output.conf: |
<match **>
@type forward
- require_ack_response true
- ack_response_timeout 30
- recover_wait 10s
- heartbeat_interval 1s
- phi_threshold 16
- send_timeout 10s
- hard_timeout 10s
- expire_dns_cache 15
- heartbeat_type tcp
- buffer_chunk_limit 2M
- buffer_queue_limit 32
- flush_interval 5s
- max_retry_wait 15
+ 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 8
+ num_threads {{ common.addons.fluentd.logger.config.forward_output.get('num_threads', '8') }}
<server>
name fluentd-aggregator
host fluentd-aggregator
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml
index 1d454eb..5c6a50d 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml
@@ -1,8 +1,9 @@
+{%- from "kubernetes/map.jinja" import common with context -%}
---
kind: Namespace
apiVersion: v1
metadata:
- name: stacklight
+ name: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
labels:
k8s-app: fluentd
addonmanager.kubernetes.io/mode: Reconcile
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml
index 5d0b262..d3ce2ef 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml
@@ -1,3 +1,4 @@
+{%- from "kubernetes/map.jinja" import common with context -%}
---
apiVersion: v1
kind: ServiceAccount
@@ -5,7 +6,7 @@
labels:
addonmanager.kubernetes.io/mode: Reconcile
name: fluentd
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
@@ -39,4 +40,4 @@
subjects:
- kind: ServiceAccount
name: fluentd
- namespace: stacklight
+ namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}