1、td-agent是什么

td-agent是一个日志采集器,提供了丰富的插件来适配不同的数据源、输出目的地等

在使用上,我们可以把各种不同来源的信息,通过简单的配置,将日志收集到不同的地方,首先发送给Fluentd,接着Fluentd根据配置通过不同的插件把信息转发到不同的 地方,比如文件、SaaS Platform、数据库,甚至可以转发到另一个Fluentd。

2、如何安装td-agent

Linux系统:centos

2.1 执行脚本

curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

2.2 查看是否安装

rpm -qa|grep td-agent

2.3 启动命令

启动td-agent   systemctl start td-agent
启动服务   /etc/init.d/td-agent start
查看服务状态   /etc/init.d/td-agent status
停止服务  /etc/init.d/td-agent stop
重启服务  /etc/init.d/td-agent restart

2.4 默认配置文件路径

/etc/td-agent/td-agent.conf

2.5 默认日志文件路径:

/var/log/td-agent/td-agent.log

3、 名词解释

source:指定数据源
match:指定输出地址
filter:指定了一个事件处理过程
system:用来设置系统的配置
label:为output和filter分组
@include:使用它可以在配置文件里面包含其他的配置文件
插件:fluentd采集发送日志时要使用插件,一些插件是内置的,要使用非内置的插件需要安装插件

4、配置文件解析

# Receive events from 20000/tcp
# This is used by log forwarding and the fluent-cat command
<source>@type forwardport 20000
</source># http://this.host:8081/myapp.access?json={"event":"data"}
<source>@type httpport 8081
</source><source>@type tailpath /root/shell/test.logtag myapp.access
</source># Match events tagged with "myapp.access" and
# store them to /var/log/td-agent/access.%Y-%m-%d
# Of course, you can control how you partition your data
# with the time_slice_format option.
<match myapp.access>@type filepath /var/log/td-agent/access
</match>

sources 配置日志文件的来源

@type :指定配置文件来自哪里

forward:来自另一个fluent

http: 来自一个http请求传的参数

tail:来自一个日志文件

port:读取其他机器传的数据时,开发的数据传输端口

path: 读取的数据位置

tag: 数据的标签,和 match配置的标签进行匹配

match 数据转发配置

myapp.access:输出的标签,和输入的标签进行匹配

@type:输出位置,可以输出到kafak,本地文件,数据库,monggo得到

path:输出到文件时,文件的路径,如果输出到其他位置,还会有其他的专项的配置,比如下面这个配置,因为是转发到Kafka,所以match标签中还配置了很多关于Kafka的配置,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wU9d5qLk-1642839362691)(img/1642670826444.png)]

里的store标签,每个store表示这个tag属性的数据的存储方向,我们可以配置往Kafka存储,可以配置本地文件存储

<source>type tailformat nonepath /var/log/apache2/access_logpos_file /var/log/apache2/access_log.postag mytail
</source>

5、部分参数解释

format:配置表达式,去过滤数据,只有满足format表达式的字符串才能在match中进行store存储。type tail: tail方式是 Fluentd 内置的输入方式,其原理是不停地从源文件中获取增量日志,与linx命令tail相似,也可以使用其他输入方式如http、forward等输入,也可以使用输入插件,将 tail 改为相应的插件名称 如: type tail_ex  ,注意tail_ex为下划线。format apache: 指定使用 Fluentd 内置的 Apache 日志解析器。可以自己配置表达式。path /var/log/apache2/access_log: 指定收集日志文件位置。Pos_file /var/log/apache2/access_log.pos:强烈建议使用此参数,access_log.pos文件可以自动生成,要注意access_log.pos文件的写入权限,因为要将access_log上次的读取长度写入到该文件,主要保证在fluentd服务宕机重启后能够继续收集,避免日志数据收集丢失,保证数据收集的完整性。

6、配置文件案例

6.1、通过http的方式,同时往日志和Kafka传输数据

 # http://this.host:8888/mytail?json={"event":"data"}
<source>@type httpport 8081 </source><match mytail>@type copy <store>@type kafkabrokers localhost:9092default_topic test1default_message_key messageack_timeout 2000flush_interval 1required_acks -1</store><store>@type filepath /var/log/td-agent/access</store>
</match>

6.2 通过读取文件文件,同时往日志和Kafka传输数据

<source>
type tailformat none path /var/log/apache2/access_log
pos_file /var/log/apache2/access_log.postag mytail
</source><match mytail>@type copy <store>@type kafkabrokers localhost:9092default_topic test1default_message_key messageack_timeout 2000flush_interval 1required_acks -1</store><store>@type filepath /var/log/td-agent/access</store>
</match>

Fluentd (td-agent) 日志处理相关推荐

  1. 使用fluentd管理docker日志

    对于,大规模运行的容器集群来说,日志不能集中管理是一件很痛苦的事情.不能合理的收集,管理检索应用日志,在应用发生了故障的时候将无法很好的追溯问题发生的原因.  docker日志收集目前的方案较多,本文 ...

  2. docker image存储路径_使用fluentd作为docker日志驱动收集日志

    前言 docker默认的日志驱动是json-file,每一个容器都会在本地生成一个/var/lib/docker/containers/containerID/containerID-json.log ...

  3. fluentd收集K8S日志并以K8S的container_name作为索引名存入Elasticsearch中

    fluentd收集K8S日志并以K8S的container_name作为索引名存入Elasticsearch中 参考地址 https://faun.pub/how-to-create-custom-i ...

  4. fluentd mysql_ELK系列~Fluentd对大日志的处理过程~16K

    Fluentd是一个日志收集工具,有输入端和输出端的概念,前者主要是日志的来源,你可以走多种来源方式,http,forward,tcp都可以,后者输出端主要指把日志进行持久化的过程,你可以直接把它持久 ...

  5. 日志搜集、过滤及推送处理框架logstash及fluentd总结

    简介 Logstash是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型.怎么样听起来挺厉害的吧? 在一个典型的使用场景下(E ...

  6. fluentd tail mysql_使用fluentd实现实时收集日志文件

    目前线上服务使用了k8s进行部署,一个服务配置了多个副本,然后日志是挂载到宿主机器的目录的,所以当服务部署到三台机器时,这时要查看业务日志,就必须依次登录三台服务器来看日志.显然,这非常地不方便.团队 ...

  7. 日志收集工具 Fluentd 使用教程

    Fluentd 是一个开源的数据收集器,致力于为用户搭建统一的日志收集层,它可以让你统一日志的收集和消费,以便更好地使用和理解日志,统一的日志记录层可让你和你的团队更好地利用数据并更快地迭代你的应用. ...

  8. Nginx容器日志收集方案fluentd+elasticsearch+kilbana

    容器技术在发展到今天已经是相当的成熟,但容器不同于虚拟机,我们在使用容器的同时也有很多相关的技术问题需要解决,比如:容器性能监控,数据持久化,日志监控与分析等.我们不能像平时使用虚拟机一样来管理容器, ...

  9. fluentd mysql_使用Fluentd + MongoDB构建实时日志收集系统

    日志处理场景 日志量大 日志分散不易进行统一分析 难以添加有效监控 系统实现 Fluentd(td-agent) MongoDB Python Script(PyMongo module) Zabbi ...

  10. java agent开发 日志打印

    简介 目前java 打印日志用的比较多的就是slf4j配合log4j/logback进行日志打印,但是呢agent是独立的jar包, 使用slf4j就需要将包引入agent中,这样就可能和业务自身的s ...

最新文章

  1. mysql 5.7开启并行复制
  2. 10进制与16进制之间的转换 delphi
  3. 如何在Eclipse中查看JDK以及JAVA框架的源码(转载)
  4. html 服务器运行exe,html运行exe文件,兼容浏览器
  5. 分享几个神奇有效的Python学习网站
  6. django ForeignKey on_delete属性相关参数的使用
  7. at24c16如何划分出多个读写区_AVR学习笔记九、基于AT24C16的数据存储实验
  8. [c# 20问] 4.Console应用获取执行路径
  9. java游戏2333整合包,3dm游戏运行库合集离线安装包
  10. YUV Alpha Blend 推导过程
  11. 给定经纬度计算距离_根据两点经纬度计算距离!
  12. iOS 相机调用后为英文的解决办法
  13. 2021个人年度总结
  14. debian源(Debian源代码)
  15. matlab duffing相图,典型二阶非线性Duffing方程的MATLAB仿真.doc
  16. 导入maven项目,报错Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:mav
  17. html移动端语音波纹,html5 +css3 点击后水波纹扩散效果 兼容移动端
  18. TCP ACKed unseen segment TCP Previous not captured
  19. 第一类换元法(凑微分法)
  20. mos管怎样选型?新人必备MOS管正确选择的过程!

热门文章

  1. env: bash\r: No such file or directory
  2. 今日头条视频采集方法
  3. 计算机语言窗口如何归位,右下角时间语言电脑图标跑到左边去了如何还原
  4. 去除桌面图标文字阴影的4种方法
  5. php微信银行卡rsa加密,如何使用微信公钥加密银行卡号和姓名
  6. JAVA转义字符详解
  7. SOAP实例入门(转)
  8. Lua二进制chunk
  9. 解决微信emjoy特殊符号插入数据库出错
  10. sqlplus执行语句报错:unknown command beginning解决方案