使用 Apache Flume 收集 CPU 时间日志

Posted

技术标签:

【中文标题】使用 Apache Flume 收集 CPU 时间日志【英文标题】:Collecting CPU time log using Apache Flume 【发布时间】:2016-02-27 07:47:32 【问题描述】:

我是 hadoop 和学习 apache Flume 的新手。我在 Virtualbox 上安装了 CDH 4.7。下面的命令将输出顶部的 cputime。如何使用 Apache flume 将以下命令的日志数据输出传输到我的 HDFS?如何创建flume配置文件?

user@computer-Lenovo-IdeaPad-S510p:$ dstat -ta --top-cputime
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- --highest-total--
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw | cputime process 
27-02 13:14:32|  6   5  87   1   0   0| 216k  235k|   0     0 |   0    11B|  11k 2934 |X              29
27-02 13:14:33|  1   7  93   0   0   0|  64k  176k|   0     0 |   0     0 |  38k 3194 |X            8650
27-02 13:14:34|  2  11  87   0   0   0| 512B  188k|   0     0 |   0     0 |  24k 2612 | --enable-cra  11
27-02 13:14:35|  2  13  85   0   0   0|  45k   56k|   0     0 |   0     0 |  22k 2432 |X              11
27-02 13:14:36|  2  13  85   0   0   0|2093k    0 |   0     0 |   0     0 |  25k 3962 |VirtualBox     12
27-02 13:14:37|  1   4  95   1   0   0|   0    20k|   0     0 |   0     0 |  27k 3126 |VirtualBox   8942
27-02 13:14:38|  2   7  92   0   0   0|   0  8192B|   0     0 |   0     0 |  21k 3019 |VirtualBox   9082
27-02 13:14:39|  3   9  88   0   0   0| 512B  168k|   0     0 |   0     0 |  30k 2508 | --enable-cra  16
27-02 13:14:40|  2  13  86   0   0   0|   0     0 |   0     0 |   0     0 |  21k 2433 |VirtualBox   8041
27-02 13:14:41|  1  10  88   0   0   0|   0     0 |   0     0 |   0     0 |  19k 3191 |VirtualBox     10
27-02 13:14:42|  2   7  91   0   0   0|  32k    0 |   0     0 |   0     0 |  23k 2799 |X            8713
27-02 13:14:43|  2   7  90   1   0   0|   0   192k|   0     0 |   0     0 |  39k 2696 |X              10
27-02 13:14:44|  2  11  87   0   0   0|   0   140k|   0     0 |   0     0 |  35k 2434 |VirtualBox   8961
27-02 13:14:45|  2  11  87   0   0   0|   0     0 |   0     0 |   0     0 |  19k 2157 |VirtualBox   8126
27-02 13:14:46|  2  15  83   0   0   0| 182k    0 |   0     0 |   0     0 |  20k 3262 |VirtualBox     13^C

【问题讨论】:

【参考方案1】:

你可以使用flume exec source,收集日志,使用hdfs sink来存储日志。

config 可以这样:

a1.sources = r1
a1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = dstat -ta --top-cputime
a1.sources.r1.channels = c1

http://flume.apache.org/FlumeUserGuide.html#hdfs-sink http://flume.apache.org/FlumeUserGuide.html#exec-source

【讨论】:

以上是关于使用 Apache Flume 收集 CPU 时间日志的主要内容,如果未能解决你的问题,请参考以下文章

日志收集系统之Apache Flume

Flume 实战,将多台机器日志直接收集到 Kafka

Flume用来收集日志,zeppelin用来展示

安装Flume——海量日志收集聚合系统

flume收集tomcat日志保存到本地目录

Apache Flume简介及安装部署