使用filebeat替代logstash进行日志采集

ELK系统使用filebeat替代logstash进行日志采集

最近部署ELK时发现logstash非常吃内存资源,就找了找相关资料,发现很多大佬都推荐filebeat做日志采集。
filebeat是一个ELK官方推出的轻量级日志收集工具,用go语言编写,相比logstash占用资源更少,安装也更方便,可以通过包管理直接安装。缺点是不具备logstash的filter
filebeat官方文档
测试了一下,8线程8GB内存下,logstash常驻内存660M(JAVA),filebeat常驻内存不到30M(GO),还不到logstash的零头。。。
考虑logstash可能对生产应用存在影响,决定采用filebeat替换logstash进行日志采集,然后将日志输出至redis,filter由ELK端logstash完成

为了方便查询以及后期编写filter,可以给日志打tag,然后通过匹配不同tag适配相应的filter(未测试),具体配置如下:

[root@20redis ~]# cat /etc/filebeat/filebeat.yml
filebeat.prospectors:
- input_type: log
  paths:
    - /tmp/test_filebeat.log
  tags: "test_filebeat"

output.redis:
  hosts: ["1.1.1.36:6379"]
  key: "redis"

附logstash及filebeat内存占用对比

logstash内存占用

[root@test ~]# ps -ef |  grep -v grep |    grep logstash  | awk '{print $2}'
12628
[root@test ~]# cat /proc/12628/status | grep -i vm
VmPeak:  6252788 kB
VmSize:  6189252 kB
VmLck:         0 kB
VmHWM:    661168 kB
VmRSS:    661168 kB
VmData:  6027136 kB
VmStk:        88 kB
VmExe:         4 kB
VmLib:     16648 kB
VmPTE:      1888 kB
VmSwap:        0 kB

filebeat内存占用

[root@test ~]# cat  /proc/12750/status  /proc/12751/status |  grep -i vm 
VmPeak:    11388 kB
VmSize:    11388 kB
VmLck:         0 kB
VmHWM:       232 kB
VmRSS:       232 kB
VmData:    10424 kB
VmStk:        88 kB
VmExe:       864 kB
VmLib:         0 kB
VmPTE:        16 kB
VmSwap:        0 kB


VmPeak:    25124 kB
VmSize:    25124 kB
VmLck:         0 kB
VmHWM:     15144 kB
VmRSS:     15144 kB
VmData:    15496 kB
VmStk:        88 kB
VmExe:      4796 kB
VmLib:         0 kB
VmPTE:        68 kB
VmSwap:        0 kB

你可能感兴趣的:(ELK,filebeat)