zoukankan      html  css  js  c++  java
  • 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可能可以解决。

  • 相关阅读:
    割边
    割点
    缩点
    强连通分量
    本地读取服务器Xml文件及本地读本地的xml
    获取webconfig配置文件内容
    c# winform中使用WebKit实现网页与winform的交互
    【Django】ContentType组件
    【Django】实现跨域请求
    【DRF解析器和渲染器】
  • 原文地址:https://www.cnblogs.com/badwood316/p/13377265.html
Copyright © 2011-2022 走看看