flume笔记-1

  一直需要使用收集多个应用服务器上的日志集中进行分析,避免每次都要到每台的服务器上去做重复动作,寻找业务落在哪个哪台服务器上。最糊选择使用flume。

  flume结构很简单,每个flume服务从source接收日志,通过channel发给sink送出去。flume服务可以接力,即A主机上的flumeA传给B主机上的flumeB,再由flumeB传给C主机的flumeC。当然,支持多对一及一对多的传递。因此可以设计一个服务集中收集多个应用服务器的日志,然后存到同一个位置。

  flume的source和sink的支持很多协议。在flume之间传递,可以使用avro协议。source接收原始应用,可以用tail -f命令跟踪log文件;也可以由应用直接通过Log4jAppender类向flume的source直接输出;还可以用natcat接收网络数据。至于将日志输出(sink)到最终存放地的协议,可以生成日志文件;也可以输出到kafka、ElasticSearch、Hive、HDFS等多种目标。

  具体安装和配置网上很多,附几个链接:

https://rdc.hundsun.com/portal/article/941.html

https://www.cnblogs.com/654wangzai321/p/9693317.html

https://blog.csdn.net/qianshangding0708/article/details/50170353

  接下来是踩的坑:

1、应用发出的日志是一行文本(flumeA),但到了日志存储服务(flumeB)上只能看到flumeA穿过来的几个很少的字符,网上对此没有太多资料,可从https://rdc.hundsun.com/portal/article/941.html了解一下。通过自定义的sink可能可以解决。

posted @ 2020-07-25 16:44  badwood  阅读(90)  评论(0编辑  收藏  举报
Badwood's Blog