使用flume搭建日志收集系统

前言

自动生成日志的打点服务器完成了,日志便可以顺利生成了。接下来就要使用flume对日志进行收集,即将日志产生的节点收集到一个日志主控节点上去,这样的目的是便于在主控节点上为不同的日志打上不同的标签,从而推送到kafka上,供不同的消费者来使用。下面为大家介绍一下如何使用flume搭建自己的日志收集系统。

环境

操作系统: CentOS7 * 2

Flume版本:flume-ng-1.6.0-cdh5.7.0

JDK版本:1.8

步骤

1. 分别安装jdk1.8和flume

上传到服务器后解压,配置环境变量JAVA_HOME,进入到Flume主目录下

cd conf
cp flume-env.sh.template flume-env.sh

配置flume-env.sh

# JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME=jdk安装目录

2. 在日志产生节点上进入flume主目录/conf/下进行配置

vim exec-memory-avro.conf

配置内容:

exec-memory-avro.sources = exec-source
exec-memory-avro.sinks = avro-sink
exec-memory-avro.channels = memory-channel

exec-memory-avro.sources.exec-source.type = exec
exec-memory-avro.sources.exec-source.command = tail -F 日志文件路径
exec-memory-avro.sources.exec-source.shell = /bin/sh -c

exec-memory-avro.sinks.avro-sink.type = avro
exec-memory-avro.sinks.avro-sink.hostname = 日志主控服务器IP
exec-memory-avro.sinks.avro-sink.port = 9898

exec-memory-avro.channels.memory-channel.type = memory

exec-memory-avro.sources.exec-source.channels = memory-channel
exec-memory-avro.sinks.avro-sink.channel = memory-channel

3. 进入日志主控服务器进入flume/conf目录下配置

vim avro-memory-logger.conf

配置内容:

avro-memory-logger.sources = avro-source
avro-memory-logger.sinks = logger-sink
avro-memory-logger.channels = memory-channel

avro-memory-logger.sources.avro-source.type = avro
avro-memory-logger.sources.avro-source.bind = 0.0.0.0
avro-memory-logger.sources.avro-source.port = 9898


avro-memory-logger.sinks.logger-sink.type = logger

avro-memory-logger.channels.memory-channel.type = memory

avro-memory-logger.sources.avro-source.channels = memory-channel
avro-memory-logger.sinks.logger-sink.channel = memory-channel

注: avro-source.bind配置的是要监听的IP,为了方便起见,这里设置成监听所有IP,即所有的IP都可以进行连接

4. 启动日志主控服务器的flume

flume-ng agent \
--name avro-memory-logger \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/avro-memory-logger.conf \
-Dflume.root.logger=INFO,console

5. 启动日志源节点的flume

flume-ng agent \ 
--name exec-memory-avro \ 
--conf $FLUME_HOME/conf \ 
--conf-file $FLUME_HOME/conf/exec-memory-avro.conf \
-Dflume.root.logger=INFO,console

注:注意顺序,否则会报错,需先启动主控服务器监听端口,准备接受数据后,再启动日志源节点flume将数据进行传送。

6. 测试

向日志文件中写入数据,在主控节点的控制台上会输出日志。因为还没有搭建kafka消息队列,所以此次接收到的数据就先写出到控制台上,如果需要对接kafka,可以等我下一篇博客更新。至此,flume搭建任务已完成

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏不想当开发的产品不是好测试

jenkins 后台程序运行

# 背景 jenkins持续集成,需要任务后台执行(nohup执行)结果发现jenkins的job执行完后,看不到运行的进程 # 步骤 原因就是这么一个情况:J...

3505
来自专栏Albert陈凯

Hadoop数据分析平台实战——160Sqoop介绍离线数据分析平台实战——160Sqoop介绍

离线数据分析平台实战——160Sqoop介绍 Sqoop介绍 Apache Sqoop(SQL-to-Hadoop) 是一款开源的工具,主要用于在Hadoop(...

3185
来自专栏Python专栏

Python | Pipenv官方推荐的python包管理工具

Pipenv是一款旨在将所有包管理工具(如bundler, composer, npm, cargo, yarn等)的优点集中应用于python领域中的工具。它...

1962
来自专栏Python自动化测试

python接口测试之测试报告

在本文章中,主要使用jenkins和编写的自动化测试代码,来生成漂亮的测试报告,关于什么是CI这些我就不详细的介绍了,这里我们主要是实战为主。

3394
来自专栏Java成神之路

Eclipse_插件_04_热部署_JRebel

2.史上最强插件 -- 热部署JRebel(支持Eclipse、Intellij IDEA)

1054
来自专栏云计算教程系列

你的nginx访问过慢?增加个模块吧!

ngx_pagespeed 是nginx web服务器的一个模块,通过安装它你的网站加载速度将会“嗖”的一下上升。

9423
来自专栏吴伟祥

logging总结 - log4j2使用流程[归档存储]

<web-app> 2.5 以前要多个依赖 log4j-web,还需要在web.xml配置listener、filter

2742
来自专栏Java技术分享

集群分片

 由于复制中,每个数据库都是拥有完整的数据,因此复制的总数据存储量受限于内存最小的数据库节点,如果数据量过大,复制就无能为力了。

2359
来自专栏Java技术分享

集群分片

复制的问题  由于复制中,每个数据库都是拥有完整的数据,因此复制的总数据存储量受限于内存最小的数据库节点,如果数据量过大,复制就无能为力了。 分片 分片(Pat...

2088
来自专栏YG小书屋

python 超时任务kill

4172

扫码关注云+社区

领取腾讯云代金券