Flume线上日志采集【模板】
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线上日志采集【模板】的更多相关文章
- 研发流程 接口定义&开发&前后端联调 线上日志观察 模型变动
阿里等大厂的研发流程,进去前先了解一下_我们一起进大厂 - SegmentFault 思否 https://segmentfault.com/a/1190000021831640 接口定义 测试用例评 ...
- Nodejs线上日志部署
Nodejs 被越来越多的使用到线上系统中,但线上系统没有日志怎么行呢. 一.forever记录日志 我的线上系统使用forever来启动服务,最开始就直接使用了forever来记录 forever ...
- 线上日志集中化可视化管理:ELK
本文来自网易云社区 作者:王贝 为什么推荐ELK: 当线上服务器出了问题,我们要做的最重要的事情是什么?当需要实时监控跟踪服务器的健康情况,我们又要拿什么去分析?大家一定会说,去看日志,去分析日志.是 ...
- 从线上日志统计接口访问量QPS
这一阵子在面试,连续遇到好几家(大小厂都有)问我的项目线上qps的情况了,说实话,我作为一个大头兵,本来没关注过这个数据,只能含混地给个"大概.也许"的回答. 回来之后,我决定对业 ...
- 查看线上日志利器less
less实用命令 搜索 很多关于命令的解释有点令人困惑,因为前字,forward是向前,before也是前面. 上表示backward 下表示forward 向下搜索 / - 使用一个模式进行搜索,并 ...
- 记一次ArrayList产生的线上OOM问题
前言:本以为(OutOfMemoryError)OOM问题会离我们很远,但在一次生产上线灰度的过程中就出现了Java.Lang.OutOfMemoryError:Java heap space异常,通 ...
- Java架构师线上问题排查,这些命令程序员一定用得到!
Java架构师线上问题排查,这些命令程序员一定用得到! 线上问题排查,以下场景,你遇到过吗? 一.了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服 ...
- 原创 记录一次线上Mysql慢查询问题排查过程
背景 前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来: --去除了业务含义的sql update test_user set a=1 where id=1; ...
- 基于Flume+LOG4J+Kafka的日志采集架构方案
本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说 ...
随机推荐
- Cookie && Session之验证实例
为了防止各种自动登录,以及反作弊和破坏,往往会要求登录时让用户输入随机产生的验证码(这组验证码是一组数字和字母),这样可以起到一定的防止他人利用程序让机器自动反复登录的情况.在PHP下要实现这种功能是 ...
- ShellCode的编写入门
上次学习了下堆喷漏洞的原理,虽说之前有学习过缓冲区溢出的原理,但还没了解过堆喷这个概念,于是趁此机会学习了,顺便复习了缓冲区溢出这块知识,之前由于各种原因对Shellcode的编写只是了解个大概,并没 ...
- Fragment 生命周期 事务 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- linux apache服务器优化建议整理(很实用)
转载:http://www.cnblogs.com/zhongbin/archive/2013/06/11/3131865.html 1.apache服务器的time_wait过多 fin_wait1 ...
- UNIX网络编程读书笔记:基本UDP套接口编程
概述 使用UDP编写的一些流行的应用程序有:DNS(域名系统).NFS(网络文件系统)和SNMP(简单网络管理协议). 如下图所示,给出了典型的UDP客户/服务器程序的函数调用: 客户不与服务器建立连 ...
- Java基础语法(第1章变量)
今日内容介绍 1.变量 2. 运算符 变量 1.1.变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为重要的知识点! 什么是变量? ...
- com.fasterxml.jackson.core.JsonParseException: Unexpected character
com.fasterxml.jackson.core.JsonParseException: Unexpected )): was expecting double-quote to start fi ...
- codeforces 558D Guess Your Way Out! II 规律
题目链接 题意: 给出n和q 表示有一棵深度为n的全然二叉树.叶子节点中有恰好一个点是出口 主角从根往下走.但不知道出口在哪里,但主角会获得q个提示. 像这样标号 q个提示 格式: deep [l, ...
- linux内核——PAE(物理地址扩展)
引入PAE机制后,分页模式是怎样的呢? 首先,要搞明白几件事,2.6.11以上版本的linux内核中,存在4中页表(页全局目录,页上级目录,页中级目录,页表),这些页表结构是已经存在于硬盘中的,当进程 ...
- 监听OSGi服务
方法一:实现ServiceListener接口: package org.riawork.demo.web; import org.osgi.framework.BundleActivator; im ...