一、浅谈fluentd
1.1、什么是Fluentd?1.2、应该选择 fluentd 还是 td-agent? 二、安装td-agent服务器
2.1、安装td-agent2.2、启动td-agent服务2.3、使用http post请求测试 三、怎么去使用这个td-agent
3.1、了解td-agent的内部结构
1)Input Plugin2)Parse Plugin3)Filter Plugin4)Output Plugin 四、Fluentd在实际中的架构以及实际应用
一、浅谈fluentd 1.1、什么是Fluentd?Fluentd是一个用于统一日志层的开源数据收集器。Fluentd允许您统一数据收集和使用,以便更好地使用和理解数据。Fluentd是云端原生计算基金会(CNCF)的成员项目之一,遵循Apache 2 License协议。
Treasure Data, Inc 对该产品提供支持和维护。fluent-bit 是一个用 C 写成的插件式、轻量级、多平台开源日志收集工具。它允许从不同的源收集数据并发送到多个目的地。这个两个日志收集组件完全兼容docker 和kubernetes 生态环境。随着 Kubernetes 的强势崛起,业务分布在多个计算节点,日志收集凸显重要,本文主要讲述本人在使用 fluentd 和 fluent-bit 中碰到的问题,以及解决方法。
td-agent 是基于 fluentd 核心功能开发,td-agent 优先考虑稳定性而不是新功能。如果您希望自己控制Fluentd功能和更新,建议使用 Fluentd gem。如果您是第一次使用 Fluentd 或在生产环境集群环境中使用它,建议使用td-agent。每2或3个月发布一次新版本的td-agent。
二、安装td-agent服务器博主使用的是centos7虚拟机,所以按照官网的安装手册是这样的,别的系统可参考==>fluentd安装
2.1、安装td-agentcurl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh2.2、启动td-agent服务
systemctl start td-agent.service systemctl status td-agent.service2.3、使用http post请求测试
td-agent的配置文件是/etc/td-agent/td-agent.conf
td-agent的日志文件是/var/log/td-agent/td-agent.log
curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test tail -n 1 /var/log/td-agent/td-agent.log三、怎么去使用这个td-agent 3.1、了解td-agent的内部结构 1)Input Plugin
自带插件:tail、forward、udp、tcp、http等等
需安装插件:sql、dstat等等
2)Parse Plugin
自带插件:regexp、apache2、nginx、csv、json、multiline等等
3)Filter Plugin@type regexp expression /^[(? [^]]*)] (? [^ ]*) (? [^ ]*) (? d*)$/ time_key logtime time_format %Y-%m-%d %H:%M:%S %z types id:integer
自带插件:record_transformer、grep、parser等等
@type grep key message pattern /cool/ key hostname pattern /^webd+.example.com$/ key message pattern /uncool/
The value of the message field contains cool. 这个message值中包含cool The value of the hostname field matches web4)Output Plugin.example.com. 这个hostname中匹配这个规则 The value of the message field does NOT contain uncool. 这个message值中不包含uncool
自带插件:file、forward、http、copy、kafka、elasticsearch等等
需要安装的插件:sql、hdfs等等
@type kafka2 # list of seed brokers brokers : , : use_event_time true # buffer settings @type file path /var/log/td-agent/buffer/td flush_interval 3s # data type settings@type json # topic settings topic_key topic default_topic messages # producer settings required_acks -1 compression_codec gzip
brokers kafka的服务器地址 buffer 缓存刷新(可以保存到文件,设置刷新时间) format 格式化 topic 目标topic default_topic 默认topic四、Fluentd在实际中的架构以及实际应用
利用Fluentd在各个服务器上抓取日志信息,再推送给Mysql或者ES或者JAVA应用等等进行可视化展示
博主实现的是利用Fluentd抓取nginx日志到kafka
配置的td-agent.conf
@type grep regexp1 path catalog.json @type kafka2 brokers 127.0.0.1:9092 use_event_time true flush_interval 5s @type json topic_key nginx default_topic messages required_acks -1 compression_codec gzip
根据nginx日志记录的格式抓取
使雍springboot继承kafka监听消息
成功消费kafka中推送的日志信息
最后感谢B站大佬的指导视频 ===> 分布式日志采集工具:fluentd-20200708-王子健
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)