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 forward
  port 20000
</source>
# http://this.host:8081/myapp.access?json={"event":"data"}
<source>
  @type http
  port 8081
</source>
<source>
  @type tail
  path /root/shell/test.log
  tag 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 file
  path /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 tail
 format none
 path /var/log/apache2/access_log
 pos_file /var/log/apache2/access_log.pos
 tag 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 http port 8081 </source> <match mytail> @type copy <store> @type kafka brokers localhost:9092 default_topic test1 default_message_key message ack_timeout 2000 flush_interval 1 required_acks -1 </store> <store> @type file path /var/log/td-agent/access </store> </match>

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

<source> type tail format none path /var/log/apache2/access_log pos_file /var/log/apache2/access_log.pos tag mytail </source> <match mytail> @type copy <store> @type kafka brokers localhost:9092 default_topic test1 default_message_key message ack_timeout 2000 flush_interval 1 required_acks -1 </store> <store> @type file path /var/log/td-agent/access </store> </match> 1、td-agent是什么td-agent是一个日志采集器,提供了丰富的插件来适配不同的数据源、输出目的地等在使用上,我们可以把各种不同来源的信息,通过简单的配置,将日志收集到不同的地方,首先发送给Fluentd,接着Fluentd根据配置通过不同的插件把信息转发到不同的 地方,比如文件、SaaS Platform、数据库,甚至可以转发到另一个Fluentd。2、如何安装td-agentLinux系统:centos2.1 执行脚本curl -L https://toolbelt.treasur 常见的问题: td-agentFluentd的稳定发行版本,它的出现是因为Fluentd不易于安装。本质上td-agentFluentd是一个东西。 td-agent是做什么用的 简单来说就是收集日志用的,把服务器上的日志收集起来,发送到指定的地方,统一管理分析,功能比较强大,如官方图所示: 它可以收集常用服务,如apache,db等日志,也可以收集由不同语言实现的app日志,对于 ruby 2.2.2或更高版本(自v1.0.0起) fluentd v1.0.0或更高版本(还支持td-agent 3) 当前,fluentd v1和td-agent 3支持处于Alpha状态 和一些其他软件包(Debian / Ubuntu) libssl开发 libxml2-dev libxslt1-dev Ruby开发 如何安装和运行 $ gem install fluentd-ui $ fluentd-ui setup $ fluentd-ui start --daemonize 通过网络浏览器访问 。 默认帐户为use
流利的插件重写标签过滤器 重写标签过滤器。 它旨在重写诸如mod_rewrite之类的标签。 当值与正则表达式匹配/不匹配时,使用重写的标签重新发送记录。 您还可以按域,状态代码(例如500错误)从Apache日志中更改标签, 用户代理,request-uri,正则表达式后向引用等,带有正则表达式。 这是一个输出插件,因为fluentd的filter不允许重写标签。 流利的插件重写标签过滤器 > = 2.0.0 > = v0.14.2 > = 2.1 <2> = v0.12.0 > = 1.9 使用gem或td-agent-gem命令安装: # for system installed fluentd $ gem install fluent-plugin-rewrite-tag-filter # for td-agent2 (w
在 Balanced,我们使用 fluentd 作为日志传输和聚合服务。 它在每个节点本地运行以传输日志,并在聚合器机器集群上运行以分发日志以进行处理和存档。 我们的设置基本上看起来像/var/log/some.log -> local fluentd -> central fluentd -> various data services 我们使用尾部文件插件从远程节点移动数据,因为它最能抵御故障。 如果 fluentd 服务在节点或聚合器上崩溃,它不会中断任何事情。 您可以像这样在节点上设置 fluentd fluentd_matche 默认情况下什么都不做。 Fluentd 配置是/etc/fluentd/fluent.conf可以很容易地被卷覆盖。 -v /path/to/fluentdconfdir:/etc/fluentd docker run -d -v /path/to/fluentdconfdir:/etc/fluentd shimizukawa/td-agent /etc/fluentd/fluent.conf : td-agent 配置文件 /var/log/td-agent/ : td-agent 日志目录 默认 fluent.conf
Fluentd是一个日志收集系统,可以指定多种日志来源,并且配置处理规则,到最后可以输出到不同的持久化系统。EFK就是其典型的应用场景,将日志收集并输出到ElasticSearch中。 本文的目的在于搭建一套收集Nginx产生的日志,并配置td-agent配置source type为tail的方式,从日志文件中实时收集数据,最后将日志信息经过特定的处理发送到Microsoft的EventHub消息...
网络环境:我这台机器处于内网,连不了外网,所以要通过代理上 服务端:elasticsearch和kibana、Fluentd Aggregator安装在一台机器上 IP为192.168.1.5 客户端:192.168.1.6 Mysql Server         192.168.1.7:tomcat Server
1 安装td-agentFluentd的稳定安装版本) 下载地址: https://td-agent-package-browser.herokuapp.com/3/windows 2 命令窗口运行td-agent 2.1 在安装目录(默认安装目录:C:/opt/td-agent/etc/td-agent/)下准备一份配置文件td-agent.conf(安装完成后会有一个默认的配置文件)。下面的...
postgresql版本:10.0 安装td-agent: curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent2.sh | sh 配置td-agent小版本:vi /lib/systemd/system/td-agent.... wget https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh bash install-redhat-td-agent2.sh sy... (1)下载td-agent-2.2.1-0.el6.x86_64.rpm,下载地址:https://td-agent-package-browser.herokuapp.com/2/redhat/6/x86_64 下载安装包到到 /export/installer/文件夹下,安装. 安装后的目录为/etc/td-agent.   (2)touch  /dev/s
td-agent 是一个基于 Fluentd 构建的日志收集器,它的实现原理与 Fluentd 基本相同。Fluentd 是一个开源的日志收集器和数据处理平台,它可以将各种不同格式的日志数据集中到一个中央位置,并对这些数据进行处理、过滤和转发。Fluentd 的数据处理模型基于消息传递,即数据被视为消息,在不同的输入和输出之间流动。 具体来说,td-agent 的实现原理如下: 1. 输入插件:td-agent 支持多种输入插件,如文件、TCP、UDP、HTTP 等。输入插件负责从各种数据源中读取日志数据,并将其转换为 Fluentd 数据格式。 2. 过滤器:td-agent 支持多种过滤器,如 grep、record_transformer、parser 等。过滤器可以对输入的日志数据进行处理、转换、过滤等操作,并将结果发送给输出插件。 3. 输出插件:td-agent 支持多种输出插件,如文件、Elasticsearch、Kafka、S3 等。输出插件负责将经过处理日志数据发送到指定的目标位置。 4. 数据缓存:Fluentd 有一个数据缓存机制,用于存储输入插件采集的日志数据,以及经过过滤器处理后的数据。缓存可以保证数据不丢失,并且提高系统的可靠性。 5. 日志转发:td-agent 可以将处理后的日志数据转发到其他 Fluentd 节点或者其他系统,实现分布式日志处理和集中式日志管理。 总之,td-agent 的实现原理是基于 Fluentd 构建的,通过输入插件、过滤器、输出插件等组件实现日志数据的收集、处理和转发。