Apache Flume 1.7.0 配置安装

转自:http://blog.csdn.net/alphags/article/details/52862578


本文内容主要参考自Apache Flume用户文档(http://flume.apache.org/FlumeUserGuide.html),由于关于Apache Flume 1.X的中文参考资料不是很多,所以这里将我部署的过程记录下来,希望能给有同样需要的人们有一些提示作用。 
(英文文档的内容很多,这里只写一些我自己用到的)

Overview

Apache Flume 是一个高效的分布式日志收集系统,可以将大量的日志数据从不同的数据源集中到一起。(PS:知道这些就够了)

System Requirments

1、JDK 1.7+ 
2、充足的内存 
3、磁盘还有可用空间 
4、对有相应目录的读写权限

数据流模型

这里写图片描述 
从图上可以看到,每一个Agent 包含一个Source 一个channel 一个sink 
source 可以理解为数据源(日志文件、AVRO、… 有很多 看文档就能知道,我只用到了文件) 
sink 可以理解为数据目的地(同样也有很多,我测试环境也是直接写到文件) 
channel 可以理解为数据流管道(种类也有不少,文档中给的例子是用的内存,但是内存是不稳定的,所以我的测试环境也换成了文件) 
简单表述三者作用(不严谨表述):source 读取日志数据将其写入channel中,sink从channel中读取数据然后写到其指定的地方。这里如果sink写失败,那么数据就会一直在channel中堆积直到sink恢复正常(这样就确保了日志数据不会丢失) 
多个 Apache Flume Agent 还可以连接在一起,模型如下图所示 
这里写图片描述

知道了以上内容就可以开始搭建测试环境了

硬件环境

三台服务器IP地址分别为192.168.0.101~103,全部使用Linux ubuntu 12.04 server 操作系统

系统结构

这里写图片描述

安装过程

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">  wget  http://mirrors<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.cnnic</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.cn</span>/apache/flume/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.7</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>/apache-flume-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.7</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span>-bin<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.tar</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.gz</span>  <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#下载压缩包</span>
  tar -xvzf apache-flume*<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.tar</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.gz</span>  <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#解压</span>
  mv  apache-flume /data/local/flume <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#本人比较喜欢把把软件安装在/data/local目录下   </span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

配置

这里我直接把我本地的配置发上来

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># flume.conf: A Flume configuration</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Agent a1</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span> = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">r1</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span> = k1
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span> = c1

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># source 配置</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = exec
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.command</span> = tail -F /data/logs/system<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.log</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># sink 配置</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span>=avro
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.hostname</span>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.101</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.port</span>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4545</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># channel 配置</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = file
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.checkpointDir</span>=/data/logs/channels/a1/checkpoint
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.dataDirs</span> = /data/logs/channels/a1/data

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 绑定source、single到channel上</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span> = c1
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channel</span> = c1

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#ageng a2</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span>=<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">r2</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span>=k2
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span>=c2
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2 source 配置</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span>=avro
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.bind</span>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">192.168</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.101</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.port</span>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4545</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2 sink 配置 将合并后的日志数据写到/data/local/collector目录下</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = file_roll
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sink</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.directory</span> = /data/local/collector
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sink</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.rollInterval</span>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3600</span>



<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">##下面是注释掉的代码为配置sink ,日志按天合并后保存到单独的文件夹中</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.type=hdfs</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.hdfs.path=hdfs://hadoop-master:9000/events/%y-%m-%d</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.hdfs.filePrefix=events-</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.hdfs.rollInterval=0</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.hdfs.rollSize=0</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.hdfs.rollCount=0</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2.sinks.k2.hdfs.useLocalTimeStamp=true</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#a2 channel配置</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = file
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.checkpointDir</span>=/data/logs/channels/a4/checkpoint
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.dataDirs</span> = /data/logs/channels/a4/data

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 绑定source、single到channel上</span>
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span>=c4
a2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>2<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channel</span>=c4</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li></ul>

说明:

运行

在192.168.0.101上使用下面命令启动Agent2(a2)

<code class="hljs brainfuck has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">bin/flume</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">ng</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">agent</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">file</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">/conf/flume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">name</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">a2</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">Dflume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">root</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">logger=INFO</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">,</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">console</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

在192.168.0.101另启动一个终端,运行下面命令启动Agent1(a1)

<code class="hljs brainfuck has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">bin/flume</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">ng</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">agent</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">file</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">/conf/flume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">name</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">a1</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">Dflume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">root</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">logger=INFO</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">,</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">console</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

分别在192.168.0.102~103上同样启动Agent1(a1)

<code class="hljs brainfuck has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">bin/flume</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">ng</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">agent</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">file</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">/conf/flume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">name</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">a1</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">Dflume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">root</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">logger=INFO</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">,</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">console</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

生成测试数据的python小程序

<code class="hljs d has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-shebang" style="color: rgb(0, 102, 102); box-sizing: border-box;">#!/usr/bin/python</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> os
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> random
from time <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> ctime,sleep
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> i <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> range(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000000</span>):
        smil=random.randint(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">50</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>)
        print smil/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000.0</span>
        com=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"echo \"hello message from 202\t"</span>+str(i)+<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"\">> /data/logs/system.log"</span>;
        print com
        os.system(com)
        sleep(smil/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000.0</span>)</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>

测试结果

可以看到在目录/data/logs/collector 目录下生成了多个合并后的日志文件

PS:

建议大家阅读Flume的文档,虽然英文读起来比较累但是大家搞技术的谁不懂点英文呢,所以下点功夫还是能看懂的。 
如果通过本文仍不能理解Flume的工作流程,建议大家学习文档中给出的 A simple example 。(下面作个简单解释)

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># example.conf: A single-node Flume configuration</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Name the components on this agent</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span> = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">r1</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span> = k1
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span> = c1

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Describe/configure the source</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = netcat
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.bind</span> = localhost
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.port</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">44444</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Describe the sink</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = logger

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Use a channel which buffers events in memory</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.type</span> = memory
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.capacity</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.c</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.transactionCapacity</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># Bind the source and sink to the channel</span>
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sources</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.r</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channels</span> = c1
a1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.sinks</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.k</span>1<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.channel</span> = c1</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li></ul>

原文:This configuration defines a single agent named a1. a1 has a source that listens for data on port 44444, a channel that buffers event data in memory, and a sink that logs event data to the console. 
译:这个配置定义了一个名称为a1的agent。a1有一个source 监听端口44444 (接收44444端口的任何收到的数据),一个内存管道(channel)将所有接收到的数据都暂存在内存当中,一个sink 将收到的数据打印到控台。

<code class="hljs brainfuck has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">$</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">bin/flume</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">ng</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">agent</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">example</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">conf</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">name</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">a1</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">Dflume</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">root</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">.</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">logger=INFO</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">,</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">console</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

执行上述命令后在另外一个命令窗口执行(没有telnet? apt-get install telnet 或者yum install telnet 安装 )

<code class="hljs r has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">$ telnet localhost <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">44444</span>
Trying <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">127.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.1</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span>
Connected to localhost.localdomain (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">127.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.1</span>).
Escape character is <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'^]'</span>.
Hello world! <ENTER>
OK</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>

我们可以看到Flume 的控台打印出

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">12</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">06</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">19</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">15</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">32</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">19</span> INFO source<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.NetcatSource</span>: Source starting
<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">12</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">06</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">19</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">15</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">32</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">19</span> INFO source<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.NetcatSource</span>: Created serverSocket:sun<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.nio</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.ch</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.ServerSocketChannelImpl</span>[/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">127.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.1</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">44444</span>]
<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">12</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">06</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">19</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">15</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">32</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">34</span> INFO sink<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.LoggerSink</span>: Event: { headers:{} body: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">48</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">65</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>C <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>C <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>F <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">20</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">77</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>F <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">72</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>C <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">64</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">21</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>D          Hello world!. }</code>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值