Fluentd学习

1.fluentd说明

参考官网https://www.fluentd.org/定义,fluentd是一套开源的日志收集器,类似ELK中logstash、阿里云的logtail这样的服务。

2.可用配置(基于windows)


  @type forest
  subtype file
  

上面是一套匹配test..这样tag的日志收集配置,具体说明:

2.1@type forest

指定使用的type,这里是用的forest,一种input 插件;前提是需要安装模块:

fluent-gem install fluent-plugin-forest

2.2根据时间分割

time_slice_format %Y-%m-%d 表示按天

2.3去掉默认添加的时间和tag

output_tag false
output_time false

2.4 format single_value

可用于单列提取,比如原始日志有多个字段但是我们只需要一列,这时候就可以使用

2.5 tag_parts

这个是系统变量,是指tag根据点号分割的数据,下标从0开始。比如我的tag是test.action.pay,那么${tag_parts[1]}就是action

3 其它

3.1 性能比较

没有具体测试过,网上分析fluentd是优于logstash,但是插件丰富程度要差一些。
具体见:https://lintingbin2009.github.io/2018/10/04/Fluentd%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E5%AE%9E%E8%B7%B5/

3.2 优化

flutentd是基于Ruby开发,Ruby有全局锁(GIL),因而在一个Ruby进程里面同时最多只有一个线程在运行。这样的话,Ruby的多线程对需要更多计算资源的操作显得无能为力,所以这会影响fluentd的性能,建议通过多进程来充分使用多核CPU,推荐部署架构:


Fluentd学习_第1张图片
image.png

可参考文章:
https://lintingbin2009.github.io/2018/10/04/Fluentd%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E5%AE%9E%E8%B7%B5/

综合

总体来看fluentd使用还是比较简单方便的,值得学习和使用下,具体性能方面后期有进一步研究再补充。

你可能感兴趣的:(Fluentd学习)