首页 » 大数据 » ELK » EFK集群之td-agent部署

EFK集群之td-agent部署

 
文章目录

td-agent安装

适于于Redhat&Centos的安装方式:

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh
 启动td-agent服务并设置开机自启动:
$ sudo /etc/init.d/td-agent start
 Starting td-agent: [  OK  ]
 $ sudo /etc/init.d/td-agent status
 td-agent (pid  21678) is running…
 $ chkconfig td-agent on


测试一下td-agent是否正常工作:

td-agent默认被配置为从http获取日志,并将其路由到/var/log/td-agent/td-agent.log文件中

$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test

td-agent插件

td-agent的很多功能实现是通过安装插件来完成的,举个例子,如果想把日志路由到amazon的s3服务,则我们要安装fluent-plugin-s3这个插件:

$ sudo /usr/sbin/td-agent-gem install fluent-plugin-s3

查看插件是否安装成功:

td-agent-gem list | grep s3

下面地址包含了td-agent所有的可用插件:

https://www.fluentd.org/plugins

下面来做一个小demo,完成从使用td-agent收集日志到日志处理的部分流程

Demo

日志处理流程简图:

流程简介:

EC2上安装了td-agent,负责收集节点上相关日志,Logserver上也安装了td-agent,对EC2上发来的日志进行集中处理,比如将日志路由到amzon的kinesis(基于apache kafka的实现),或者是amzonS3存储,再根据相关需要将日志打到elasticSearch。

step1:

第一步我这里先实现日志从EC2打入Log Server,LogServer这里我们按两台进行配置,以实现高可用,网络拓扑图如下:

node上td-agent的配置:

# TCP input
<source>
  @type forward
  port 24224
</source>
 
# HTTP input
<source>
  @type http
  port 8888
</source>
 
# Log Forwarding
<match mytag.**>
  @type forward
 
  # primary host
  <server>
    host 192.168.0.1
    port 24224
  </server>
  # use secondary host
  <server>
    host 192.168.0.2
    port 24224
    standby
  </server>
 
  # use longer flush_interval to reduce CPU usage.
  # note that this is a trade-off against latency.
  <buffer>
    flush_interval 60s
  </buffer>
</match>
LogServer上的配置:

# Input
<source>
  @type forward
  port 24224
</source>
 
# Output
<match mytag.**>
  @type file
  path /var/log/fluent/myapp
  compress gzip
  <buffer>
    timekey 1d
    timekey_use_utc true
    timekey_wait 10m
  </buffer>
</match>

在node节点上,使用curl命令生成可以被td-agent匹配的日志:

curl -i -X POST -d 'json={"action":"login","user":2}' http://localhost:8888/mytag.test

Logserver指定目录生成的log文件:

[root@bogon myapp]# pwd
/var/log/fluent/myapp
[root@bogon myapp]# ls
buffer.b57e22f65d19fcc1fad19d6ae8f79d79c.log
buffer.b57e22f65d19fcc1fad19d6ae8f79d79c.log.meta
[root@bogon myapp]#

常见的问题:

1.使用td-agent向es上打数据,过几天发现es上数据中断,查看td-agent日志发现一系列的timeout, 连接es失败,但es是正常的,重启可以恢复,但不持久,后来更换了td-agent的es插件解决了问题:

td-agent-gem install fluent-plugin-elasticsearch -v 2.12.1
 td-agent-gem uninstall fluent-plugin-elasticsearch -v 3.1.0

原文链接:EFK集群之td-agent部署,转载请注明来源!

1