精华内容
下载资源
问答
  • Flume采集日志

    2019-10-02 08:05:39
    角色 Source 数据来源 (exec, kafka, http…)Channel 数据通道 (memory,... Agent 代理,负责从source中采集数据,发送给collectorCollector 收集者,收集agent发来的数据上传到outer storage,可以设置load balanc...

    角色


    Source 数据来源 (exec, kafka, http…)
    Channel 数据通道 (memory,file,jdbc)
    Sink 数据目的地 (kafka,hdfs,es…)

    Agent 代理,负责从source中采集数据,发送给collector
    Collector 收集者,收集agent发来的数据上传到outer storage,可以设置load balance,fail over
    Outer storage 外部存储,接收collector上传的数据

     

    安装配置


    下载tar包

     

    解压即安装

     

     

    测试


    修改配置文件,监听44444端口
    # example.conf: A single-node Flume configuration

    # Name the components on this agent
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1

    # Describe/configure the source
    a1.sources.r1.type = netcat
    a1.sources.r1.bind = localhost
    a1.sources.r1.port = 44444

    # Describe the sink
    a1.sinks.k1.type = logger

    # Use a channel which buffers events in memory
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100

    # Bind the source and sink to the channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1

     

    启动

     

    通过telnet测试


    telnet 127.0.0.1 44444
    窗口中输入字符并回车

    flume日志中会输出内容

     

    Note:可使用cat, tail -200等从头或者指定位置开始采集日志

    转载于:https://www.cnblogs.com/zhya/p/9639826.html

    展开全文
  • flume采集日志jar

    2018-06-21 10:44:36
    flume采集日志所用的jar包,将自动采集生成的日志,配合博客使用。
  • flume采集日志文件到hdfs

    千次阅读 2019-04-10 16:37:42
    flume采集日志文件到hdfs配置文件启动命令运行结果 flume可以从正在输出的日志文件中采集数据存到hdfs中 配置文件 agent1.sources = source1 agent1.sinks = sink1 agent1.channels = channel1 # Describe/...

    flume采集日志文件到hdfs

    flume可以从正在输出的日志文件中采集数据存到hdfs中

    配置文件

    agent1.sources = source1
    agent1.sinks = sink1
    agent1.channels = channel1
    
    # Describe/configure tail -F source1
    agent1.sources.source1.type = exec
    agent1.sources.source1.command = tail -F /root/app/hadoop-2.6.4/logs/hadoop-root-namenode-zk1.log
    agent1.sources.source1.channels = channel1
    
    #configure host for source
    agent1.sources.source1.interceptors = i1
    agent1.sources.source1.interceptors.i1.type = host
    agent1.sources.source1.interceptors.i1.hostHeader = hostname
    
    # Describe sink1
    agent1.sinks.sink1.type = hdfs
    #a1.sinks.k1.channel = c1
    agent1.sinks.sink1.hdfs.path =hdfs://zk1:9000/weblog/flume-collection/%y-%m-%d/%H-%M
    agent1.sinks.sink1.hdfs.filePrefix = access_log
    agent1.sinks.sink1.hdfs.maxOpenFiles = 5000
    agent1.sinks.sink1.hdfs.batchSize= 100
    agent1.sinks.sink1.hdfs.fileType = DataStream
    agent1.sinks.sink1.hdfs.writeFormat =Text
    agent1.sinks.sink1.hdfs.rollSize = 102400
    agent1.sinks.sink1.hdfs.rollCount = 1000000
    agent1.sinks.sink1.hdfs.rollInterval = 60
    agent1.sinks.sink1.hdfs.round = true
    agent1.sinks.sink1.hdfs.roundValue = 10
    agent1.sinks.sink1.hdfs.roundUnit = minute
    agent1.sinks.sink1.hdfs.useLocalTimeStamp = true
    
    # Use a channel which buffers events in memory
    agent1.channels.channel1.type = memory
    agent1.channels.channel1.keep-alive = 120
    agent1.channels.channel1.capacity = 500000
    agent1.channels.channel1.transactionCapacity = 600
    
    # Bind the source and sink to the channel
    agent1.sources.source1.channels = channel1
    agent1.sinks.sink1.channel = channel1
    

    启动命令

    bin/flume-ng agent -c conf -f conf/log2hdfs.conf -n agent1
    

    运行结果

    hdfs中的文件一直在增加

    [root@zk2 hadoop]# hdfs dfs -ls /weblog/flume-collection/19-04-11/00-00
    Found 4 items
    -rw-r--r--   2 root supergroup       2287 2019-04-11 00:04 /weblog/flume-collection/19-04-11/00-00/access_log.1554912190981
    -rw-r--r--   2 root supergroup       4373 2019-04-11 00:05 /weblog/flume-collection/19-04-11/00-00/access_log.1554912253151
    -rw-r--r--   2 root supergroup       2552 2019-04-11 00:06 /weblog/flume-collection/19-04-11/00-00/access_log.1554912313318
    -rw-r--r--   2 root supergroup          0 2019-04-11 00:06 /weblog/flume-collection/19-04-11/00-00/access_log.1554912373510.tmp
    [root@zk2 hadoop]# hdfs dfs -ls /weblog/flume-collection/19-04-11/00-00
    Found 5 items
    -rw-r--r--   2 root supergroup       2287 2019-04-11 00:04 /weblog/flume-collection/19-04-11/00-00/access_log.1554912190981
    -rw-r--r--   2 root supergroup       4373 2019-04-11 00:05 /weblog/flume-collection/19-04-11/00-00/access_log.1554912253151
    -rw-r--r--   2 root supergroup       2552 2019-04-11 00:06 /weblog/flume-collection/19-04-11/00-00/access_log.1554912313318
    -rw-r--r--   2 root supergroup       2552 2019-04-11 00:07 /weblog/flume-collection/19-04-11/00-00/access_log.1554912373510
    -rw-r--r--   2 root supergroup          0 2019-04-11 00:07 /weblog/flume-collection/19-04-11/00-00/access_log.1554912433704.tmp
    
    展开全文
  • 一、flume采集日志信息到hdfs系统 【实验目的】 1)掌握flume的应用原理 2)掌握flume对日志信息的采集过程 【实验原理】 Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于...

    一、flume采集日志信息到hdfs系统

    【实验目的】

        1)   掌握flume的应用原理

        2)   掌握flume对日志信息的采集过程

    【实验原理】

        Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种storage。Flume是一个分布式、高可靠、和高可用的海量日志采集、聚合和传输的系统。本试验就是通过学习flume工具实现对数据信息的采集并实时把采集到的信息打印到hdfs系统中指定的位置。

    【实验环境】

         本次环境是:centos6.5 + jdk1.7.0_79 + hadoop2.4.1 + apache-flume-1.5.0

        工具包在/simple/soft目录下

    【实验步骤】

    直接start-all.sh失败

    ip a 命令发现没有IP地址

    修改ip配置

    把DEVICE=eth0改成DEVICE=eth2

     

    重启服务

    命令:service network restart

     

    通过执行命令start-all.sh启动服务

     

    SecureCRT 与虚拟机连接

     

    在本机桌面新建一个a2.conf文件,记事本编辑如下

    a2.sources = r1

    a2.channels = c1

    a2.sinks = k1

    a2.sources.r1.type = exec

    a2.sources.r1.command = tail -F /simple/a.log

    a2.channels.c1.type = memory

    a2.channels.c1.capacity = 1000

    a2.channels.c1.transactionCapacity = 100

    a2.sinks.k1.type = hdfs

    a2.sinks.k1.hdfs.path =  hdfs://192.168.1.2:9000/flume/aa.log

    a2.sinks.k1.hdfs.filePrefix = events-

    a2.sinks.k1.hdfs.fileType = DataStream

    a2.sources.r1.channels = c1

    a2.sinks.k1.channel = c1

    然后通过SecureCRT 把a2.conf文件复制到虚拟机/simple目录下

    在/simple目录下创建一个a.log文件并写入内容aaaaaaaaa

    切换到bin目录下,执行flume命令:./flume-ng agent -n a2 -f /simple/a2.conf -c ../conf/ -Dflume.root.logger=INFO,console

    另外再开启一个终端,通过执行命令:echo ‘bbbbbbbbbb’>>/simple/a.log向a.log文件中追加内容。如图3所示。然后可以通过执行hdfs系统的命令查看hdfs中生成的文件并发现hdfs指定的目录文件下的内容增多。

     

     

    二、flume采集日志信息到控制台

    配置ip ,start-all.sh命令启动hadoop

    SSH连接,然后在本机桌面新建一个a2.conf文件,编辑内容为:

    a2.sources = r1

    a2.channels = c1

    a2.sinks = k1

    a2.sources.r1.type = exec

    a2.sources.r1.command = tail -F /simple/a.log

    a2.channels.c1.type = memory

    a2.channels.c1.capacity = 1000

    a2.channels.c1.transactionCapacity = 100

    a2.sinks.k1.type = logger

    a2.sources.r1.channels = c1

    a2.sinks.k1.channel = c1

    然后将a2.conf文件复制到虚拟机/simple目录下

    在/simple目录下执行命令:touch a.log并向文件中写入内容“aaaaaaaaa”

     

    切换到bin目录下,执行flume命令:./flume-ng agent -n a2 -f /simple/a2.conf -c ../conf/ -Dflume.root.logger=INFO,console。

    执行上一步命令之后,发现在控制台上把/simple/a.log文件的内容输出到控制台上

     

    在另外一个命令终端通过执行命令:echo ‘zzzzzzzzzzzzzzzzzzzzzzzzzzz>>a.log向a.log文件中追加内容时,发现在另外一个终端实时输出’zzzzzzzzzzzzzzzzzzzzzzzzzzzzz’的内容。

     

     

    三、flume采集制定目录下的日志信息到hdfs系统

    通过执行命令start-all.sh启动hadoop

    在/simple 目录下创建一个文件a4.conf内容如下(通过前两个实验的方法)

    a4.sources = r1

    a4.channels = c1

    a4.sinks = k1

    a4.sources.r1.type = spooldir

    a4.sources.r1.spoolDir = /simple/logs

    a4.channels.c1.type = memory

    a4.channels.c1.capacity = 10000

    a4.channels.c1.transactionCapacity = 100

    a4.sources.r1.interceptors = i1

    a4.sources.r1.interceptors.i1.type =  org.apache.flume.interceptor.TimestampInterceptor$Builder

    #a2.sinks.k1.type = logger

    a4.sinks.k1.type = hdfs

    a4.sinks.k1.hdfs.path =  hdfs://192.168.1.2:9000/flume/%Y%m%d

    a4.sinks.k1.hdfs.filePrefix = event-

    a4.sinks.k1.hdfs.fileType = DataStream

    a4.sinks.k1.hdfs.rollCount = 0

    a4.sinks.k1.hdfs.rollSize = 134217728

    a4.sinks.k1.hdfs.rollInterval = 60

    a4.sources.r1.channels = c1

    a4.sinks.k1.channel = c1

     

    在simple目录下创建一个目录,执行命令:mkdir logs 

     

    在simple目录下创建文件a.log,执行命令touch a.log,编辑内容

     

     切换到bin目录下,执行flume命令:./flume-ng agent -n a4 -f /simple/a4.conf -c ../conf/ -Dflume.root.logger=INFO,console。

     

    执行上一步命令之后,同时在另外一个终端中,在simple目录下通过执行拷贝命令:cp a.log logs/a1.log和cp a.log logs/a2.log实现把a.log日志文件拷贝到logs目录下,此时logs目录下的日志文件会被采集并保存到hdfs指定位置/flume目录下

     

     

     

    展开全文
  • Flume采集日志进入HDFS以及Hadoop环境搭建
    前言
     
    方案介绍:
    flume采用spoolDir的方式将文件传输到HDFS
    因为一份文件要备份,一份文件要解析,因此使用了2个sink 对应2个channel
    flume的
    RegexExtractorExtInterceptor是根据源码重新编写的,功能是以文件名为header,分解header的值,来创建hadoop的目录,达到收集-分散到指定目录的效果.

    ps:
    RegexExtractorExtInterceptor打成jar放在flume的lib文件夹下即可

    另外需要一个程序将各个服务器对应地址的日志文件采集到flume所在服务器的spoolDir文件夹内.
    方式随意,目前采用了一个java程序定时取,写shell脚本scp拿也行. 





     
     一.搭建分布式hadoop环境
     
    1.JDK环境配置(省略)

    2.SSH公钥私钥配置
    参考:http://www.cnblogs.com/tankaixiong/p/4172942.html

    3.Host设置
    vi /etc/hosts
    192.168.183.130 hadoop130
    192.168.183.131 hadoop131
    192.168.183.132 hadoop132
    192.168.183.133 hadoop133

    4.安装hadoop
    tar -xvf hadoop-2.7.2.tar.gz
    mv 
     hadoop-2.7.2 hadoop
     

    5.设置hadoop环境变量
    vi /etc/profile
    export HADOOP_HOME=/opt/hadoop/
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
     
    6.修改hadoop配置文件 
    cd /opt/hadoop/conf
    vi core-site.xml


    <configuration> 
    <property> 
    <name>hadoop.tmp.dir</name> 
    <value>/usr/hadoop/tmp</value>
     
    <description>(备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)A base for other temporary directories.</description>
     
     </property> 
    <property>
     
     <name>fs.default.name</name>
     
     <value>hdfs://192.168.183.130:9000</value>
     
     </property>
     
    </configuration>

     备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。


    vi hdfs-site.xml

    <configuration>
     
     <property> 
    <name>dfs.replication</name> 
    <value>1</value>
     
     </property> 
    <property> 
    <name>dfs.namenode.name.dir</name>
     
     <value>file:/opt/hadoop/hdfs/name</value>
     
     <final>true</final> 
    </property> 
    <property> 
    <name>dfs.datanode.data.dir</name>
     
     <value>file:/opt/hadoop/hdfs/data</value>
     
     </property>
     
    </configuration>


    如果需要yarn
    vi yarn-site.xml 
    <configuration> 
    <property>
     
     <name>mapred.job.tracker</name> 
    <value>192.168.149.128:9001</value>
     
     </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.183.130</value>//主机IP
     </property>
     
    </configuration>
     
    注意上面一定要填Ip,不要填localhost,不然eclipse会连接不到!

     
    设置主从关系$HADOOP_HOME/etc/hadoop/目录下:
    vi masters 
    192.168.183.130


    //主机特有,从机可以不需要
    vi slaves

    192.168.183.131
    192.168.183.132
    192.168.183.133
     
    hadoop namenode -format   //第一次需要
     
    启动:
    sbin/start-all.sh
     
    查看状态:主机
     jps
    2751 ResourceManager
    2628 SecondaryNameNode
    2469 NameNode

    查看状态:从机
    jps
    1745 NodeManager
    1658 DataNode
     

     
    总共有5个hadoop线程 
     
    访问地址查看hdfs 的运行状态:
     
     
    二.flume安装与配置
    1.安装flume
    tar -xvf apache-flume-1.5.0-bin.tar.gz
    mv 
    apache-flume-1.5.0-bin  flume

    2.配置环境变量
    vim /etc/profile
    export FLUME_HOME=/opt/flume
    export FLUME_CONF_DIR=$FLUME_HOME/conf
    export PATH=$PATH:$FLUME_HOME/bin

    vim /opt/flume/conf/flume-env.sh
    指定文件内的jdk地址 

    3.检查是否安装成功
    cd /opt/flume/bin/
    ./flume-ng version
    能看到版本信息说明安装成功

    4.按照前言的运用方式配置flume
    vim /opt/flume/conf/flume-conf.properties

    a1.sources = r1
    a1.sinks = k1 k2
    a1.channels = c1 c2

    a1.source.r1.selector.type = replicating
    a1.sources.r1.type = spooldir
    a1.sources.r1.spoolDir = /var/log/flume_spoolDir
    a1.sources.r1.deletePolicy=immediate
    a1.sources.r1.basenameHeader=true
    #忽略copy时的.tmp文件,避免同时读写的问题
    #a1.sources.r1.ignorePattern = ^(.)*\\.tmp$   

    a1.sources.r1.interceptors=i1  
    a1.sources.r1.interceptors.i1.type=org.apache.flume.interceptor.RegexExtractorExtInterceptor$Builder  
    a1.sources.r1.interceptors.i1.regex=(.*)_(.*)\\.(.*)  
    a1.sources.r1.interceptors.i1.extractorHeader=true  
    a1.sources.r1.interceptors.i1.extractorHeaderKey=basename  
    a1.sources.r1.interceptors.i1.serializers=s1 s2 s3
    #basename's value must be filename_date.suffix. example storelog_2015-03-16.log
    a1.sources.r1.interceptors.i1.serializers.s1.name=filename  
    a1.sources.r1.interceptors.i1.serializers.s2.name=date  
    a1.sources.r1.interceptors.i1.serializers.s3.name=suffix 
    a1.sources.r1.channels = c1 c2

    # Describe the sink
    a1.sinks.k1.type =hdfs
    a1.sinks.k1.hdfs.path=hdfs://store.qbao.com:9000/storelog/bak/%{date}/%{filename}
    a1.sinks.k1.hdfs.filePrefix=%{filename}_%{date}
    a1.sinks.k1.hdfs.round = true
    a1.sinks.k1.hdfs.rollInterval = 60
    # File size to trigger roll, in bytes (0: never roll based on file size)
    a1.sinks.k1.hdfs.rollSize = 128000000
    a1.sinks.k1.hdfs.rollCount = 0
    a1.sinks.k1.hdfs.batchSize = 100
    a1.sinks.k1.hdfs.idleTimeout=60
    a1.sinks.k1.hdfs.roundValue = 1
    a1.sinks.k1.hdfs.roundUnit = minute
    a1.sinks.k1.hdfs.useLocalTimeStamp = true
    a1.sinks.k1.hdfs.fileType = DataStream

    # Use a channel which buffers events in memory
    #a1.channels.c1.type = memory
    #a1.channels.c1.capacity = 1000
    #a1.channels.c1.transactionCapacity = 200

    a1.channels.c1.type = file
    a1.channels.c1.checkpointDir=/opt/flume/checkpoint_c1
    a1.channels.c1.dataDirs=/opt/flume/dataDir_c1


    # Bind the source and sink to the channel
    a1.sinks.k1.channel = c1




    # Describe the sink
    a1.sinks.k2.type =hdfs
    a1.sinks.k2.hdfs.path=hdfs://store.qbao.com:9000/storelog/etl/%{filename}
    a1.sinks.k2.hdfs.filePrefix=%{filename}_%{date}
    a1.sinks.k2.hdfs.round = true
    a1.sinks.k2.hdfs.rollInterval = 60
    # File size to trigger roll, in bytes (0: never roll based on file size)
    a1.sinks.k2.hdfs.rollSize = 128000000
    a1.sinks.k2.hdfs.rollCount = 0
    a1.sinks.k2.hdfs.batchSize = 100
    a1.sinks.k2.hdfs.idleTimeout=60
    a1.sinks.k2.hdfs.roundValue = 1
    a1.sinks.k2.hdfs.roundUnit = minute
    a1.sinks.k2.hdfs.useLocalTimeStamp = true
    a1.sinks.k2.hdfs.fileType = DataStream

    # Use a channel which buffers events in memory
    #a1.channels.c2.type = memory
    #a1.channels.c2.capacity = 1000
    #a1.channels.c2.transactionCapacity = 200

    a1.channels.c2.type = file
    a1.channels.c2.checkpointDir=/opt/flume/checkpoint_c2
    a1.channels.c2.dataDirs=/opt/flume/dataDir_c2

    a1.sinks.k2.channel=c2 

     

    5.启动flume
    cd /opt/flume
    nohup bin/flume-ng agent -n a1 -c conf -f conf/flume-conf.properties&


     
     
    ps:所需用的包

    http://pan.baidu.com/s/1hshgS4G
    展开全文
  • 环境4c 4G虚拟机,上面部署应用业务,flume采集应用日志,几乎机器可用内存就几十M,还有4Gswap交换内存,硬件环境就这样,提好几次添加内存,资源有限一直没加。  之前业务日志小flume也可以正常采集日志,但是...
  • 使用flume1.9.0采集滚动日志,配置: ag1.sources = s1 ag1.channels = c1 ag1.sinks = k1 ag1.sources.s1.type=execag1.sources.s1.command=tail -F "/home/flume/logtest/logtest-20190518.log" ag1.channels....
  • 之前我们讲过怎么flume日志采集组件,使用非常简单,在这里我们只需要把flume的sink模块换成kafka的模块就可以了。我们去flume的官方网站中找到这段sink配置 我们进入flume官网后点击Documentation–》Flume User ...
  • flume采集日志到kafka

    2020-01-05 10:25:23
    这样就开启了日志采集 日志采集完毕之后 flume会提示 如下图: 文件会写入到kafka中 具体路径是kafka配置文件中server.properties里面Log Basics的配置 如下图: 查看文件 数据就写入上图文件中   ...
  • flume采集日志到kafaka

    2017-12-12 08:41:48
    1.写一个shell脚本log.sh,产生数据 #bin/bash for((i=0;i<=10000;i++)) do echo "message-" +$i >> /home/hadoop/flume_...2.在flume的conf目录中配置采集数据方案exec.conf a1.sources = r1 a1.sinks ...
  • select data_date ,hour ,count(*) from (select data_date ,from_unixtime(floor(rtime/1000),'yyyyMMddHH') as hour from tmp.table_tmp where data_date >= 2019062800 and data_...
  • flume采集日志到hadoop存储

    千次阅读 2018-11-19 22:06:47
    1.将hadoop的hdfs-site.xml和core-site.xml 放到flume/conf下 2.将hadoop的jar包拷贝到flume的lib目录下 3.配置flume2.conf 4.启动flume(保证首先启动hdfs) 5.测试 准备 首先将flume配置完毕,参考flume的单机版配置...
  • 配置文件: vim dir-hdfs.conf ...###主要作用是监听目录中的新增文件,采集到数据之后,输出到kafka ### 注意:Flume agent的运行,主要就是配置source channel sink ### 下面的a1就是agent的代号,sour...
  • 05、使用flume采集日志

    千次阅读 2019-02-20 15:24:48
    编写flume配置 使用TAILDIR source #表示将r1和c1连接起来 # Name the components on this agent #表示agent的名称 #r1表示a1的输入源 a1.sources = r1 #k1表示a1的输出目的地 a1.sinks = k1 #c1表示a1的缓冲区 a1....
  • 目录Flume版本选择项目流程Flume核心配置启动flume agent采集数据思考问题 hdfs路径是否正确flume自定义拦截器 Flume版本选择 Flume 1.6 无论是Spooling Directory Source和Exec Source均不能满足动态实时收集的...
  • 1.监听目录下日志文件日志采集,下沉到hdfs,channel配置信息。 # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = ...
  • =============== 一 前言 在一个完整的大数据处理系统中,除了hdfs+mapreduce+hive组成分析...flume是由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop相关组件之一...
  • 一、Flume的安装配置 去Flume官网下载Flume安装包,我下载的版本为apache-flume-1.9.0-bin.tar.gz,解压。 (1)修改flume-env.sh。Flume运行在JVM之上,因此安装之前要确保系统安装了JDK,编辑环境配置文件,执行...
  • 利用Flume采集日志数据到HDFS

    千次阅读 2019-09-24 17:23:16
    采集日志数据到HDFS 下载安装 下载地址: http://flume.apache.org/download.html 将安装包上传到服务器并解压 tar - zxvf apache - flume - 1.9 .0 - bin . tar . gz 修改配置文件 cp ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,988
精华内容 1,195
关键字:

flume采集日志