设为首页 收藏本站
查看: 1422|回复: 0

[经验分享] Flume 1.5日志收集和存款mongodb安装结构

[复制链接]

尚未签到

发表于 2015-9-17 09:13:02 | 显示全部楼层 |阅读模式
  Flume该演示是不是说。你可以自己搜索。
  但现在的互联网主要是Flume 1.4前版本号的信息。Flume 1.5在轰动的大变化。假设你准备尝试,我在这里给大家介绍一下程序最小化结构,和使用MongoSink的数据被存储mongodb。完全独立的执行,没有master。没有collector(说白了collector也就是一个agent,仅仅是数据来源于多个其它agent),仅仅有一个agent。把这套东西理解了你就能够自由发挥了 DSC0000.gif
  


  Flume是必需要求java执行环境的哈,jdk安装就不解释了。推荐yum安装。
  另外安装JDK好以后不用设置什么环境变量,flume事实上能够自己找到的,仅仅是会发出一个警告而已。无视之


  


  首先去下载Flume 1.5安装包
  http://flume.apache.org/download.html


  仅仅须要下载apache-flume-1.5.0.1-bin.tar.gz就能够了,32位64位系统通吃
  


  这里我们把安装包放到/home文件夹下,然后解压缩
  tar zxvf apache-flume-1.5.0-bin.tar.gz

把解压得到的apache-flume-1.5.0-bin目录改名成flume,所以我们flume的路径是/home/flume
  


  网上非常多说要设置flume home环境变量,事实上不用的
  


  这里我们新增一个配置文件到/home/flume/conf/netcat.conf(当中的agent2/source2/sink2/channel2都是自定义的名称。随便改)
  # 定义组件名称
agent2.sources = source2
agent2.sinks = sink2
agent2.channels = channel2
# 定义数据入口
agent2.sources.source2.type = netcat
agent2.sources.source2.bind = 192.168.6.198
agent2.sources.source2.port = 44444
agent2.sources.source2.channels = channel2
# 定义数据出口
agent2.sinks.sink2.type = org.riderzen.flume.sink.MongoSink
agent2.sinks.sink2.host = 192.168.6.222
agent2.sinks.sink2.port = 27017
agent2.sinks.sink2.model = single
agent2.sinks.sink2.collection = events
agent2.sinks.sink2.batch = 100
agent2.sinks.sink2.channel = channel2

# 使用内存管道
agent2.channels.channel2.type = memory
agent2.channels.channel2.capacity = 1000
agent2.channels.channel2.transactionCapacity = 100

  



以上配置文件相信大家一看就非常明了了。我简介一下:  数据源是source2。而source2的定义是接收本机192.168.6.198:44444port发过来的数据,然后存放到channel2缓冲管道里面去

channel2是什么呢?看最以下对channel2的定义,它是一个内存缓冲队列。容量是1000条数据,满100条就会被sink处理掉


  那么sink的定义呢?这里我们用到了Leon Lee(李龙?可能是国内哪位大神。感谢你哈)编写的一个MongoSink,作用是把从channel2取出的数据存入MongoDB,而且累计100条数据才提交
  MongoSink请到这里下载:https://github.com/leonlee/flume-ng-mongodb-sink


  


  MongoSink我简单说一下,仅仅须要把他打成jar包丢到/home/flume/lib里面即可了,当然别忘了把mongodb驱动也丢进去。以后你要是开发其它扩展包都是丢到lib里面就好


  


  好。那么我们就清楚了,flume的作用就是从source获取数据,存入channel缓冲队列。最后由sink放入永久存储
  


  执行下面命令启动flume
  /home/flume/bin/flume-ng agent --conf /home/flume/conf --conf-file /home/flume/conf/netcat.conf --name agent2 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545


大致解释一下:
  --name agent2                指定当前执行的这个agent的名称


  --conf /home/flume/conf        这个參数最好指定绝对路径,说明你的配置文件存放文件夹,不单单指agent的配置。当中还有log4j的配置。不然无法记录日志


  --conf-file /home/flume/conf/netcat.conf         这个是指当前要执行的agent所使用的配置文件


  -Dflume.monitoring.type=http          指定开启HTTP监控,能够通过浏览器直接訪问本机HTTP地址查看flume执行状态
  -Dflume.monitoring.port=34545            指定HTTP监控的端口


  


  假设你须要在控制台显示一些调试信息的话请自行配置/home/flume/conf/log4j.properties
  OK,等着成功吧
  


  现眼下我们主要是攻克了日志数据不必直接写mongo库,仅仅要把IP和port告知其它项目团队,他们直接往这里发送数据即可了
  


  后期考虑到mongodb可能有些局限性,我们能够很灵活的改写sink,把数据存款hdfs,然后,和高大的hadoop与拉亲密接触
  




         
版权声明:本文博客原创文章,博客,未经同意,不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-114722-1-1.html 上篇帖子: Flume 的失败选择机器和BACKOFF的机制 下篇帖子: flume ng配置拓扑图
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表