flume实例一、监听目录日志上传到其他服务器

一、flume-ng简介

请参考官方文档:http://flume.apache.org/FlumeUserGuide.html

二、实例

需求说明:需要监控一个目录,并自动上传到服务器,且需要在传输过程中进行加密。

整体方案:n个client-agent -->server-agent

client-agent:

a1.sources = r1

a1.channels = c1
a1.sinks = k1
#source
a1.sources.r1.type = spooldir
a1.sources.r1.channels = c1
a1.sources.r1.basenameHeader = true
#a1.sources.r1.ignorePattern = .+\.log$
a1.sources.r1.bufferMaxLineLength = 1048576
a1.sources.r1.batchSize = 5000
#拦截器
a1.sources.r1.interceptors = i1 i2 i3
a1.sources.r1.interceptors.i1.type = static
a1.sources.r1.interceptors.i1.key = id
a1.sources.r1.interceptors.i2.type = static
a1.sources.r1.interceptors.i2.key = key
a1.sources.r1.interceptors.i3.type = com.landray.behavior.interceptor.BehaviorClientSerurityHDFSInterceptor$Builder
#file channel
a1.channels = c1
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = ./checkpoint
a1.channels.c1.dataDirs = ./data
#sink
a1.sinks.k1.type = avro
a1.sinks.k1.channel = c1
a1.sinks.k1.compression-type = deflate
a1.sinks.k1.compression-leve = 9
a1.sinks.k1.batch-size = 5000
a1.sinks.k1.hostname = http://test.com.cn
a1.sinks.k1.port = 5281
a1.sinks.k1.request-timeout = 20000
#user define
#需要上传的日志目录
a1.sources.r1.spoolDir =D:/flume_tes/source
#客户唯一ID
a1.sources.r1.interceptors.i1.value = 123456
#秘钥
a1.sources.r1.interceptors.i2.value = 密钥

server-agent:

a2.sources = r2

a2.channels = c2
a2.sinks = k2
#source
a2.sources.r2.type = avro
a2.sources.r2.channels = c2
a2.sources.r2.compression-type = deflate
a2.sources.r2.bind = localhost
a2.sources.r2.port = 5281
a2.sources.r2.interceptors = i1
a2.sources.r2.interceptors.i1.type = com.landray.behavior.interceptor.BehaviorServerSerurityInterceptor$Builder
a2.channels = c2
a2.channels.c2.type = file
a2.channels.c2.checkpointDir = ./checkpoint
a2.channels.c2.dataDirs = ./data
a2.channels.c2.transactionCapacity = 20000
#a2.channels.c2.type = memory
#a2.channels.c2.capacity = 1000000
#a2.channels.c2.transactionCapacity = 20000
#a2.channels.c2.byteCapacityBufferPercentage = 20
#default 80%
#a2.channels.c2.byteCapacity = 800000
a2.sinks.k2.type = com.landray.behavior.sink.BehaviorRollingFileSink
a2.sinks.k2.channel = c2
#no check
a2.sinks.k2.sink.rollInterval = 0
a2.sinks.k2.sink.batchSize = 20000
#user define
#windows
a2.sinks.k2.sink.directory = D:/behavior/logs
#linux
#a2.sinks.k2.sink.directory = /home/nemo/behavior

三、启动脚本

目录截图:

目录说明:

checkpoint:设置的是flume中的检查点

conf配置的是:log4j.properties

data:是flume的memory

Libs:flume启动的jar包

source.conf:配置文件

 

官网给出的是命令启动模式,比较不灵活,这里给出linux和window版本两种启动方式

linux:

#!/bin/sh

JAVA_OPTS=-Xmx1024m

$JAVA_HOME/bin/java $JAVA_OPTS -Dlog4j.configuration=file:./conf/log4j.properties -cp "./lib/*" org.apache.flume.node.Application --conf-file ./target.conf --name a2

windows:

@echo on

set FLUME_HOME=%~dp0
echo %~dp0
rem 配置JAVA环境变量
set JAVA_HOME=%FLUME_HOME%..\jdk1.6
set PATH=%JAVA_HOME%\bin
echo %JAVA_HOME%
java -version
java %JAVA_OPTS% -Dlog4j.configuration=file:./conf/log4j.properties -cp .;./lib/* org.apache.flume.node.Application
 --conf-file ./target_hdfs.conf --name a2
PAUSE
时间: 2024-10-14 19:40:45

flume实例一、监听目录日志上传到其他服务器的相关文章

flume实例二、监听目录日志上传到HDFS文件系统

一.概述 接实例一,实例一中server-aget是把日志上传保存到服务器上面,随着日志越来越大,公司启动了hadoop项目,需要把日志直接上传hdfs中保存,配置文件target_hdfs.conf如下: a2.sources = r2 a2.channels = c2 a2.sinks = k2 #source a2.sources.r2.type = avro a2.sources.r2.channels = c2 a2.sources.r2.compression-type = defl

java实现服务端守护进程来监听客户端通过上传json文件写数据到hbase中

1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试代码.这里须有一个需要提到的是,我在实现接收json文件的同时,而且还需将数据写到hbase中.写入到hbase当中采用的是批量插入的方式,即一次插入多条记录. 好了,有了前面的说明,下面来简单的说一下我实现的服务端的小程序把. 2.为了实现服务端能够监听客户端的行为,因此我在服务端采用多线程的技术

通过FileWatcher,监听通过web上传的图片,并进行压缩

需求是这样的,通过web传输过来的图片,无论是JS上传,还是其他的上传方式,都需要生成2张缩略图,分别是用于商品列表的小图small,和用于分享的小图share.基于不同上传方式的不同需求,使用exe程序可以简单适配所有情况,因此有以下的解决方案. 首先是简单的FileWatcher的使用,我们只需要监听Create事件即可.因为small和share均在同一个文件夹中,因此无需监控子文件夹的变化. this.fileWatcher.Path = tbDir.Text; fileWatcher.

flume简介与监听文件目录并sink至hdfs实战

场景 1. flume是什么 1.1 背景 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera.但随着 FLume 功能的扩展,Flume OG 代码工程臃肿.核心组件设计不合理.核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 1

Linux hostname对Oracle实例以及监听的影响

在Linux平台中,对hostname的修改,是否对ORACLE数据库实例或监听进程有影响呢?如果有影响,又要如何解决问题呢?另外/etc/hosts下相关内容的修改,是否也会影响实例或监听呢?这里涉及的场景非常多,当然关系也非常复杂,我们下面通过几个例子来测试验证一下. 如下所示,服务器/etc/hosts 与/etc/sysconfig/network的原始配置信息如下 [[email protected] ~]# more /etc/hosts # Do not remove the fo

让IIS只监听一个IP上的80端口

服务器上分配了3个IP,想让IIS监听其中一个IP,其余端口分配给tomcat,经研究方法如下: 1.打开命令行,运行CMD 进入CMD界面2.输入netsh 进入网络配置3.输入http 进入HTTP配置4.输入sho iplisten 查看当前IIS监听的IP列表 (如果为空即默认为所有IP)5.输入 add iplisten ipaddess=10.1.1.1 (这里会提示添加成功)6.再次输入 sho iplisten 进行查看 (正常情况这里会出现 10.1.1.1的信息) 到上面为止

日志易数据接入之 Syslog 日志上传

在企业运维环境中,运维人员管理的主要对象分别是服务器.存储.网络设备.安全设备等.而在对整个企业网站进行监控时,这些设备的日志数据都需纳入到监控的范围之内.日志分析与监控,这事说大不大,说小也不小.传统的ES开源解决方案虽然节约了应用成本,但对应的人力维护成本较高.这个中的辛酸故事毋需多言.在此介绍一种商业日志分析解决方案--日志易.好不好用暂不评论,是否拿来对比试用也取决于各位心情.第一步自然是日志数据接入.数据源如何接入到日志易服务之中呢? 日志易的日志接入方式主要包括以下三种: 日志易Ag

开源中国源码学习(三)——Log日志上传

在AppStart中开启了一个服务LogUploadService用来上传应用程序的日志. 采用的是start的方式开启服务,代码如下: Intent uploadLog = new Intent(this, LogUploadService.class); startService(uploadLog); 一.功能介绍: 在服务LogUploadService被开启后,根据情况进行如下几种操作: 读取osc本地文件夹下的日志信息 如果日志信息为空,服务停止-- LogUploadService

Android学习能力之统计日志上传设计

一款软件就像一个孩子,不断的在学习,在探索,当孩子犯下错误的时候,我们可以去包容,当孩子犯不改的时候,获取他就不再让人喜欢,甚至是去抛弃他.人之常情的问题,也是做软件的我们需要去考虑的问题.同样孩子的成长速度和懂事程度也是我们非常关注的. 本章讲述Android日志上传功能,更快的更准确的将孩子的错误通知给我们,我们帮助孩子改正它的错误. 1.日志统计和日志存储 public static void record(Context context, String ex) { if (context