apiVersion: v1 kind: ConfigMap metadata: name: bh-shard-2-filebeat-config namespace: bluehelix labels: app: bh-shard-2-test app.kubernetes.io/managed-by: Helm chart: java-0.9.9 heritage: Helm release: bluehelix-bh-shard-2 data: filebeat.yml: |- filebeat.inputs: - type: log processors: # - add_kubernetes_metadata: # in_cluster: true paths: - "/mnt/log/gc.log" fields: app_name: bh-shard-2 app: gc group: bluehelix namespaces: bluehelix clusterName: "${CLUSTER_NAME:}" - type: log processors: paths: - "/mnt/log/requestlog.log" fields: #设置好之后在kibana可以根据fields定义的name过滤和分类 app_name: bh-shard-2 app: request group: bluehelix namespaces: bluehelix clusterName: "${CLUSTER_NAME:}" close_inactive: 1m close_timeout: 3h clean_inactive: 72h ignore_older: 70h exclude_files: ['debug'] json.message_key: message #json.xxx这4行的作用主要是解析json字符串,然后可以根据json里面的key进行筛选过滤,作图要用, json.keys_under_root: true json.overwrite_keys: true json.add_error_key: true - type: log processors: paths: - "/mnt/log/logstash.log" fields: app_name: bh-shard-2 app: bh-shard-2 group: bluehelix namespaces: bluehelix clusterName: "${CLUSTER_NAME:}" #没有新日志采集后多长时间关闭文件句柄,默认5分钟,设置成1分钟,加快文件句柄关闭; close_inactive: 1m #传输了3h后荏没有传输完成的话就强行关闭文件句柄; close_timeout: 3h #这个配置项也应该配置上,默认值是0表示不清理,不清理的意思是采集过的文件描述在registry文件里永不清理,在运行一段时间后,registry会变大,可能会带来问题。 clean_inactive: 72h #设置了clean_inactive后就需要设置ignore_older,且要保证ignore_older < clean_inactive ignore_older: 70h #multiline.pattern: ^20[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} #multiline.xxx主要是做多行合并的,如果filebeat做多行合并直接插入es,那么kibana在作图标的时候将很不方便,因此,如果filebeat直接插入es建议不合并日志,进行逐条插入es,这样更有利于kibana作图 #multiline.negate: true #multiline.match: after # 和福林确认日志只需要处理1毫秒内的多行输出 #multiline.timeout: 50ms # 只保留40行日志 #multiline.max_lines: 40 exclude_files: ['debug'] json.message_key: message json.keys_under_root: true json.overwrite_keys: true json.add_error_key: true output.elasticsearch: enabled: true hosts: ["eck-cluster-es-default.elastic-system.svc.cluster.local:9200"] index: "%{[fields.app]}-%{+yyyy.MM.dd}" setup.ilm.enabled: false setup.template.name: "%{[fields.app]}" setup.template.pattern: "%{[fields.app]}-*" setup.template.enabled: false setup.template.overwrite: true
标签:configmap,filebeat,log,fields,app,yaml,json,bluehelix,true From: https://www.cnblogs.com/fengzi7314/p/17568402.html