fluentd(td-agent)文档

作者: 我就是小政政 | 来源:发表于2018-10-22 19:14 被阅读0次

简介

Fluentd(td-agent)是一个日志采集器,提供了丰富的插件来适配不同的数据源、输出目的地等
Fluentd is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data.

image.png

从图中可以看出,有了Fluentd,原来混乱的数据发送有了一个统一的处理app:Fluentd。

本篇文章使用系统为CentOS


安装

在线安装

官网提供了一个直接安装的脚本,使用如下命令即可完成安装,首先要保证自己的网络通畅:
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

echo "=============================="
echo " td-agent Installation Script "
echo "=============================="
echo "This script requires superuser access to install rpm packages."
echo "You will be prompted for your password by sudo."

# clear any previous sudo permission
sudo -k

# run inside sudo
sudo sh <<SCRIPT

  # add GPG key
  rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent

  # add treasure data repository to yum
  cat >/etc/yum.repos.d/td.repo <<'EOF';
[treasuredata]
name=TreasureData
baseurl=http://packages.treasuredata.com/3/redhat/\$releasever/\$basearch
gpgcheck=1
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
EOF

  # update your sources
  yum check-update

  # install the toolbelt
  yes | yum install -y td-agent

SCRIPT

# message
echo ""
echo "Installation completed. Happy Logging!"
echo ""

从这个脚本可以看出:添加了一下yum源,使用yum直接安装,比较简单。

离线安装

大多数产品化时,基本上是使用离线安装的,我们下载rpm包进行安装。

下载所有rpm包

找一台网络通畅的CentOS机器,首先添加yum源

  # add GPG key
  rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent

  # add treasure data repository to yum
  cat >/etc/yum.repos.d/td.repo <<'EOF';
[treasuredata]
name=TreasureData
baseurl=http://packages.treasuredata.com/3/redhat/\$releasever/\$basearch
gpgcheck=1
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
EOF

  # update your sources
  yum check-update

使用下面命令下载所有rpm包
mkdir /home/fluentd_rpms
yum -y install td-agent --downloadonly --downloaddir=/home/fluentd_rpms
有了rpm包,找到依赖顺序,使用rpm -ivh *.rpm进行安装

启动服务

查看是否安装:rpm -qa|grep td-agent

image.png
使用命令启动:systemctl start td-agent
默认配置文件路径:/etc/td-agent/td-agent.conf
默认日志文件路径:/var/log/td-agent/td-agent.log
可以从这个日志文件中查看td-agent服务运行日志/报错信息

名词解释

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

image.png
下图为常用的output插件
image.png

@type:一般用来指定使用的插件名称


具体情景配置

开放tcp、http端口接收数据,发送到本地文件

# 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>

# 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>

可以看到,我们使用了2个输入源(tcp、http),一个输出(file),使用@type来指定插件名称。

测试请求

curl -X POST -d 'json={"event":"data"}' http://localhost:8081/myapp.access
当发送这个请求时,fluentd 引擎会将这个事件自动转换为如下格式的数据:

generated by http://this.host:8081/myapp.access?json={"event":"data"}
tag: myapp.access              #用来标识事件的标记
time: (current time)           #当前事件
record: {"event":"data"}       #传入的数据
输出到文件的数据
image.png

可以看到fluentd采集了日志,并发送到了文件中:

[root@localhost access]# cat buffer.b578cf2dd43c2e00f6fd9a38197bef4e8.log
2018-10-22T19:01:46+08:00   myapp.access    {"event":"data"}

To Be Continued

相关文章

网友评论

    本文标题:fluentd(td-agent)文档

    本文链接:https://www.haomeiwen.com/subject/bcogzftx.html