Flume线上日志采集【模板】

预装软件

Java

HDFS

Lzo/Lzop

系统版本

Flume 1.5.0-cdh5.4.0

系统流程图

flume-env.sh配置文件

export JAVA_HOME=/usr/local/jdk1.7.0_55

export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote"

单机版写HDFS配置文件

[root@bs038 conf]# more flume_directHDFS.conf

#Define agent

agent1.channels=ch1

agent1.sources=avro-source1

agent1.sinks=log-sink1

#Defineamemorychannelcalledch1onagent1

agent1.channels.ch1.type=memory

agent1.channels.ch1.capacity=100000

agent1.channels.ch1.transactionCapacity=100000

agent1.channels.ch1.keep-alive=30

agent1.sources.avro-source1.interceptors = i1

agent1.sources.avro-source1.interceptors.i1.type = timestamp

#definesourcemonitorafile

agent1.sources.avro-source1.type=exec

agent1.sources.avro-source1.shell=/bin/bash -c

#agent1.sources.avro-source1.command=tail-n+0-F/home/storm/tmp/id.txt

agent1.sources.avro-source1.command=tail -F test.log

agent1.sources.avro-source1.channels=ch1

agent1.sources.avro-source1.threads=5

#Definealoggersinkthatsimplylogsalleventsitreceives

#andconnectittotheotherendofthesamechannel.

agent1.sinks.log-sink1.channel=ch1

agent1.sinks.log-sink1.type=hdfs

agent1.sinks.log-sink1.hdfs.path=/user/hadoop/cndns/flume/%Y%m%d%M

agent1.sinks.log-sink1.hdfs.writeFormat=Text

agent1.sinks.log-sink1.hdfs.filePrefix=cdns

agent1.sinks.log-sink1.hdfs.inUseSuffix=.tmp

#agent1.sinks.log-sink1.hdfs.fileType=DataStream

agent1.sinks.log-sink1.hdfs.fileType=CompressedStream

agent1.sinks.log-sink1.hdfs.codeC=lzop

agent1.sinks.log-sink1.hdfs.rollInterval=0

agent1.sinks.log-sink1.hdfs.rollSize=67108864

agent1.sinks.log-sink1.hdfs.rollCount=0

agent1.sinks.log-sink1.hdfs.batchSize=1000

agent1.sinks.log-sink1.hdfs.txnEventMax=1000

agent1.sinks.log-sink1.hdfs.callTimeout=60000

agent1.sinks.log-sink1.hdfs.appendTimeout=60000

终端配置文件

[root@bs038 conf]# more agent038.conf

agent1.sources = avro-source1

agent1.sinks = k1

agent1.channels = c1

agent1.sinks.k1.type = avro

agent1.sinks.k1.hostname = bs022.zx.nicx.cn

agent1.sinks.k1.port = 44444

#Defineamemorychannelcalledch1onagent1

agent1.channels.ch1.type=memory

agent1.channels.ch1.capacity=100000

agent1.channels.ch1.transactionCapacity=100000

agent1.channels.ch1.keep-alive=30

agent1.sources.avro-source1.interceptors = i1

agent1.sources.avro-source1.interceptors.i1.type = timestamp

agent1.sources.avro-source1.type=exec

agent1.sources.avro-source1.shell=/bin/bash -c

agent1.sources.avro-source1.command=tail -F test.log

agent1.sources.avro-source1.channels=ch1

agent1.sources.avro-source1.threads=5

agent1.channels.c1.type = file

agent1.channels.c1.checkpointDir = flume.checkpoint

agent1.channels.c1.dataDirs = flume.data

agent1.channels.c1.capacity = 200000000

agent1.channels.c1.keep-alive = 30

agent1.channels.c1.write-timeout = 30

agent1.channels.c1.checkpoint-timeout=600

agent1.sources.avro-source1.channels = c1

agent1.sinks.k1.channel = c1

中间传输流配置文件

agent2.sources = r2

agent2.sinks = k2

agent2.channels = c2

agent2.sources.r2.type = avro

agent2.sources.r2.bind = bs022.zx.nicx.cn

agent2.sources.r2.port = 44444

agent2.sinks.k2.type = avro

agent2.sinks.k2.hostname = bs042.zx.nicx.cn

agent2.sinks.k2.port = 55555

agent2.channels.c2.type = file

agent2.channels.c2.checkpointDir = flume.checkpoint

agent2.channels.c2.dataDirs = flume.data

agent2.channels.c2.capacity = 200000000

agent2.channels.c2.keep-alive = 30

agent2.channels.c2.write-timeout = 30

agent2.channels.c2.checkpoint-timeout=600

agent2.sources.r2.channels = c2

agent2.sinks.k2.channel = c2

写HDFS配置文件

[root@bs042 flume-ng-1.5.0-cdh5.4.0]# more conf/agent042.conf

#Define agent

agent1.channels=ch1

agent1.sources=avro-source1

agent1.sinks=log-sink1

#definesourcemonitorafile

agent1.sources.avro-source1.type = avro

agent1.sources.avro-source1.bind = bs042.zx.nicx.cn

agent1.sources.avro-source1.port = 55555

agent1.sources.avro-source1.interceptors = i1

agent1.sources.avro-source1.interceptors.i1.type = timestamp

#Definealoggersinkthatsimplylogsalleventsitreceives

#andconnectittotheotherendofthesamechannel.

agent1.sinks.log-sink1.channel=ch1

agent1.sinks.log-sink1.type=hdfs

agent1.sinks.log-sink1.hdfs.path=/user/hadoop/cndns/flume/%Y%m%d

agent1.sinks.log-sink1.hdfs.writeFormat=Text

agent1.sinks.log-sink1.hdfs.filePrefix=cdns

agent1.sinks.log-sink1.hdfs.inUseSuffix=.tmp

#agent1.sinks.log-sink1.hdfs.fileType=DataStream

agent1.sinks.log-sink1.hdfs.fileType=CompressedStream

agent1.sinks.log-sink1.hdfs.codeC=lzop

agent1.sinks.log-sink1.hdfs.rollInterval=0

agent1.sinks.log-sink1.hdfs.rollSize=67108864

agent1.sinks.log-sink1.hdfs.rollCount=0

agent1.sinks.log-sink1.hdfs.batchSize=1000

agent1.sinks.log-sink1.hdfs.txnEventMax=1000

agent1.sinks.log-sink1.hdfs.callTimeout=60000

agent1.sinks.log-sink1.hdfs.appendTimeout=60000

#Defineamemorychannelcalledch1onagent1

agent1.channels.ch1.type = file

agent1.channels.ch1.checkpointDir = flume.checkpoint

agent1.channels.ch1.dataDirs = flume.data

agent1.channels.ch1.capacity = 200000000

agent1.channels.ch1.keep-alive = 30

agent1.channels.ch1.write-timeout = 30

agent1.channels.ch1.checkpoint-timeout=600

agent1.sources.avro-source1.channels = ch1

agent1.sinks.log-sink1.channel = ch1

tail -F断点续传问题

tail -n +$(tail -n1 num) -F test.log 2>&1 | awk 'ARGIND==1{i=$0;next}{i++;if($0~/^tail/){i=0};print $0;print i >> "num";fflush("")}' num –

【注】

Flume线上日志采集【模板】的更多相关文章

  1. 研发流程 接口定义&开发&前后端联调 线上日志观察 模型变动

    阿里等大厂的研发流程,进去前先了解一下_我们一起进大厂 - SegmentFault 思否 https://segmentfault.com/a/1190000021831640 接口定义 测试用例评 ...

  2. Nodejs线上日志部署

    Nodejs 被越来越多的使用到线上系统中,但线上系统没有日志怎么行呢. 一.forever记录日志 我的线上系统使用forever来启动服务,最开始就直接使用了forever来记录 forever ...

  3. 线上日志集中化可视化管理:ELK

    本文来自网易云社区 作者:王贝 为什么推荐ELK: 当线上服务器出了问题,我们要做的最重要的事情是什么?当需要实时监控跟踪服务器的健康情况,我们又要拿什么去分析?大家一定会说,去看日志,去分析日志.是 ...

  4. 从线上日志统计接口访问量QPS

    这一阵子在面试,连续遇到好几家(大小厂都有)问我的项目线上qps的情况了,说实话,我作为一个大头兵,本来没关注过这个数据,只能含混地给个"大概.也许"的回答. 回来之后,我决定对业 ...

  5. 查看线上日志利器less

    less实用命令 搜索 很多关于命令的解释有点令人困惑,因为前字,forward是向前,before也是前面. 上表示backward 下表示forward 向下搜索 / - 使用一个模式进行搜索,并 ...

  6. 记一次ArrayList产生的线上OOM问题

    前言:本以为(OutOfMemoryError)OOM问题会离我们很远,但在一次生产上线灰度的过程中就出现了Java.Lang.OutOfMemoryError:Java heap space异常,通 ...

  7. Java架构师线上问题排查,这些命令程序员一定用得到!

    Java架构师线上问题排查,这些命令程序员一定用得到! 线上问题排查,以下场景,你遇到过吗? 一.了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服 ...

  8. 原创 记录一次线上Mysql慢查询问题排查过程

    背景 前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来: --去除了业务含义的sql update test_user set a=1 where id=1; ...

  9. 基于Flume+LOG4J+Kafka的日志采集架构方案

    本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说 ...

随机推荐

  1. ubuntu下修改文件夹权限

    常用方法如下: sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 ××× ...

  2. Linux下读取RFID卡号(C串口编程)

    由于项目需要用到RFID.GPRS.摄像头等模块所以便看了一下,整理了一下学习思路,本篇先是整理一下串口读取RFID卡号的程序思路,后面还会更其他的 RFID模块: 本次采用的是125K的RFID读卡 ...

  3. 使用 Python 创建你自己的 Shell (上)

    我很想知道一个 shell (像 bash,csh 等)内部是如何工作的.于是为了满足自己的好奇心,我使用 Python 实现了一个名为yosh(Your Own Shell)的 Shell.本文章所 ...

  4. Asp 将MSXML2.serverXMLHTTP返回的responseBody 内容转换成支持中文编码

    参考:ASP四个小技巧,抓取网页:GetBody,字节转字符BytesToBstr,正则表达式测试方法,生成静态页 Function GetBody(weburl) '创建对象 Dim ObjXMLH ...

  5. Framework元数据向导错误之BMT-MD-6001与BMT-IMP-0002

    1:错误BMT-MD-6001的两种处理方法 在Framework中创建Project后,运行元数据向导从数据库连接中向物理层导入数据表,报错如下 环境如下:Framework版本:10.2.0,Co ...

  6. Xamarin C# Android for Visual Studio 平台安装笔记参考

    Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发. 简介 Xamarin是基于Mono ...

  7. [Angular-Scaled Web] 6. Navigating between states with ui-router

    There are two ways to naviagting between state: 1. Using $state service, $state.go() 2. Using ui-ser ...

  8. 【EasyUI】——EasyUI的布局

    做一个站点首先要有站点的布局,所谓的布局事实上就是网页的排版.就是说你的网页显示时是什么样子的. 就比方百度的首页: 无论是谁登录.网页都是这个样式的. EasyUI中的网页布局一共分为五部分,分别为 ...

  9. 编写nios-shell时想到的问题-回车vs换行

    在编写nios上类shell用户交互代码时.由于要检測终端输入字符.所以想到了这个问题,故分析之. 回车符的ascii码,ASCII码13 '\r' 换行符的ascii码.ASCII码10 '\n' ...

  10. 算法笔记_144:有向图强连通分量的Tarjan算法(Java)

    目录 1 问题描述 2 解决方案 1 问题描述 引用自百度百科: 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G是一个强连 ...