共计 820 个字符,预计需要花费 3 分钟才能阅读完成。
背景
在实际的生产中的大量实践后我们会发现即使 Elasticsearch 官方宣称 filebeat 为轻量级采集 agent,但是如果一个性能较好的机器上同时部署几十个应用,也就意味着有几十个应用在源源不断的产生大量日志,这种情况下无论 filebeat 再怎么轻量也会不堪重负,从而成为 cpu 负载的 No.1。
解决
解决起来很简单,只要在主配置 filebeat.yml 中加入 max_procs: 2 即可 (这里假定机器是 4 核的),由于 yaml 这种文件格式极易出错引起不适,我就把完整的配置贴出来一下,供大家参阅!
filebeat.inputs:
- type: log
enabled: false
paths:
- /var/log/*.log
filebeat.config.inputs:
enabled: true
path: ${path.config}/config/*.yml
setup.ilm.enabled: false
setup.template.name: "xxlog"
setup.template.pattern: "xx-*"
output.elasticsearch:
hosts: [""]
loadbalance: true
#index: "xx-%{[fields.appname]}-%{+yyyy.MM.dd}"
index: "xx-%{[fields.appname]}-%{+yyyy.w}"
username: ""password:""
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- drop_fields:
fields: ["ecs","host","input.type","log","agent.ephemeral_id","agent.type","agent.id","agent.version"]
ignore_older: 48h
clean_inactive: 72h
max_procs: 2
正文完