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

[经验分享] flume日志收集系统搭建

[复制链接]

尚未签到

发表于 2015-11-27 21:01:02 | 显示全部楼层 |阅读模式
原创文章,转载请注明: 转载自始终不够
本文链接地址: flume日志收集系统搭建
转载请注明:始终不够 » flume日志收集系统搭建

flume原理简介
flume是Apache的一款开源日志收集软件。在flume中,主要有三个重要的角色:source、channel和sink。source负责收集日志,日志可以是来自任何地方,例如socket,本地文件等等。sink负责将收集来的日志处理掉,处理的方法同样可以是多种多样的,例如写入HDFS,或者在本地文件系统中进行持久化。二channel则是负责source和sink之间的通信的,通信方式最常用的主要有内存管道和文件管道。这样设计的一个好处就是能够让每个角色做到单一职责,source只负责收集,sink只负责处理,而channel只负责通信。
flume提供了多种多样的sink、channel和sink,你可以通过简单的修改配置文件的方式,实现不同sink、channel和sink的组合。甚至你可以在一个节点设置多个channel和sink,将一个日志源发送给多个处理节点。
flume负载均衡原理
flume的负载均衡设计非常简单,简单到你只需要修改几行配置即可实现。这得益于flume软件架构的简单设计。这里我们看一张从官网扒的图:
DSC0000.png
这里我们看到在webserver的前端,有一个consolidation,我们可以称之为controller,它也是一个flume节点,与其他webserver节点不同的是,他的source是webserver,他的sink是HDFSH或其他sink。webserver的sink与controller的source使用arvo rfc进行通信。
但是这样依然解决不了负载均衡的问题,到目前为止,我们只有一台controller。
别急,还记得上面说flume支持使用多个channel和sink,这里我们可以在webserver上部署多个sink,flume支持使用轮询、随机调度的方式使用sink,这样我们通过差异化sink的配置,就能够实现日志上传到不同的机器。当controller发生宕机时,webserver上的flume会自动尝试其他sink继续上传。
flume安装
操作系统:centos6.4
首先需要安装jdk1.6以上版本,我装的是1.8最新版,运行没发现什么问题。然后在官网下载flume,安装官网的安装方法进行安装即可,同时官网提供了一套测试安装是否成功的方法。
flume测试
由于我只有一台机器,所以是启用了不同的端口进行的。配置文件列举如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#负载机flume client配置 #组件名称配置client.sources= source_clientclient.sinks= sink_client sink_client_bakclient.channels= channel_client #日志源组件配置(获取44444端口数据)#client.sources.source_client.type= netcat#client.sources.source_client.bind= 127.0.0.1#client.sources.source_client.port= 44444 #日志源组件配置(监听目录下新增文件)client.sources.source_client.type= spooldirclient.sources.source_client.channels= channel_clientclient.sources.source_client.spoolDir= /www/statistics.huyanping.cn/logs/blog_log/queue/20150312client.sources.source_client.fileHeader= trueclient.sources.source_client.fileHeaderKey= trueclient.sources.source_client.basenameHeader= trueclient.sources.source_client.basenameHeaderKey= true #sink组件组配置(用于负载均衡配置)client.sinkgroups= sink_groupclient.sinkgroups.sink_group.sinks= sink_client sink_client_bakclient.sinkgroups.sink_group.processor.type= load_balanceclient.sinkgroups.sink_group.processor.backoff= trueclient.sinkgroups.sink_group.processor.selector= random #sink组件配置(用于将日志信息持久化或发送给其他服务,注意两个sink访问的hosts或port是不同的)client.sinks.sink_client.type= avroclient.sinks.sink_client.channel= channel_clientclient.sinks.sink_client.hostname= 127.0.0.1client.sinks.sink_client.port= 4141 #sink组件配置(用于负载均衡配置)client.sinks.sink_client_bak.type= avroclient.sinks.sink_client_bak.channel= channel_clientclient.sinks.sink_client_bak.hostname= 127.0.0.1client.sinks.sink_client_bak.port= 4142 #内存管道设置#client.channels.channel_client.type= memory#client.channels.channel_client.capacity= 1000#client.channels.channel_client.transactionCapacity= 100 #文件管道设置client.channels.channel_client.type= fileclient.channels.channel_client.checkpointDir= /data/tmp/checkpointclient.channels.channel_client.dataDirs= /data/tmp
12345678910111213141516171819202122232425262728293031323334353637#日志收集中心flume controller 配置 #组件名称配置master.sources= source_mastermaster.sinks= sink_master filesystem_sinkmaster.channels= channel_master filesystem_channel #日志源组件配置(两个channel,分别用于本地持久化和其他用途,例如写入HDFS,或者logger调试)master.sources.source_master.type= avromaster.sources.source_master.channels= channel_master filesystem_channelmaster.sources.source_master.bind= 127.0.0.1master.sources.source_master.port= 4141 #sink组件配置master.sinks.sink_master.type= loggermaster.sinks.sink_master.channel= channel_master #内存管道配置#master.channels.channel_master.type= memory#master.channels.channel_master.capacity= 1000#master.channels.channel_master.transactionCapacity= 100 #文件管道配置(其他用途)master.channels.channel_master.type= filemaster.channels.channel_master.checkpointDir= /data/master/tmp/checkpointmaster.channels.channel_master.dataDirs= /data/master/tmp #文件管道配置(本地文件系统持久化)master.channels.filesystem_channel.type= filemaster.channels.filesystem_channel.checkpointDir= /data/filesystem/tmp/checkpointmaster.channels.filesystem_channel.dataDirs= /data/filesystem/tmp #本地文件系统sink组件配置master.sinks.filesystem_sink.type= file_rollmaster.sinks.filesystem_sink.channel= filesystem_channelmaster.sinks.filesystem_sink.serializer= TEXTmaster.sinks.filesystem_sink.sink.directory= /data/master/back_log
1234567891011121314151617181920212223242526#日志收集中心flume controller back配置 #组件名称配置master.sources= source_mastermaster.sinks= sink_mastermaster.channels= channel_master #日志源组件配置master.sources.source_master.type= avromaster.sources.source_master.channels= channel_mastermaster.sources.source_master.bind= 127.0.0.1master.sources.source_master.port= 4142 #sink组件配置master.sinks.sink_master.type= loggermaster.sinks.sink_master.channel= channel_master #内存管道配置#master.channels.channel_master.type= memory#master.channels.channel_master.capacity= 1000#master.channels.channel_master.transactionCapacity= 100 #文件管道配置master.channels.channel_master.type= filemaster.channels.channel_master.checkpointDir= /data/master_bak/tmp/checkpointmaster.channels.channel_master.dataDirs= /data/master_bak/tmp

运维网声明 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-144386-1-1.html 上篇帖子: flume-ng负载均衡load-balance、failover集群搭建 下篇帖子: flume master服务监听端口总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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