以下均为生产环境下亲测使用 如有出入 请私信梁工
一、安装flume
1、docker中查看镜像
docker search flume
2、pull 新版稳定 flume2.0.0
docker pull probablyfine/flume:2.0.0
3、 创建一个flume文件夹 里面包含 conf logs
conf : 文件夹下放我们写的配置文件 sources channel sink
logs : 对容器内的logs在本地做映射
以下为 从log文件中实时监控 进行采集到kafka中
$ vi los-flume-kakfa.conf
# Name the components on this agent
app.sources = r1
app.channels = c1
# Describe/configure the source
app.sources.r1.type = exec
app.sources.r1.command = tail -F /tmp/test_logs/app.log
app.sources.r1.channels = c1
# Use a channel which buffers events in KafkaChannel
# 设置app.channels.c1的类型
app.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
# 设置Kafka集群中的Broker 集群以逗号分割
app.channels.c1.kafka.bootstrap.servers = 11.188.666.250:9092
# 设置app.channels.c1使用的Kafka的Topic
app.channels.c1.kafka.topic = test1
# 设置成不按照flume event格式解析数据,因为同一个Kafka topic可能有非flume Event类数据传入
app.channels.c1.parseAsFlumeEvent = false
# 设置消费者组,保证每次消费时能够获取上次对应的Offset
app.channels.c1.kafka.consumer.group.id = test-consumer-group
# 设置消费过程poll()超时时间(ms)
app.channels.c1.pollTimeout = 1000
4、启动容器
docker run --name flume-test --restart always --net=host \
-v /home/soft/flume/flumetest/conf:/opt/flume-config/flume.conf \
-v /home/soft/flume/flumetest/flume_log:/var/tmp/flume_log \
-v /home/soft/flume/flumetest/logs:/opt/flume/logs \
-v /tmp/test_logs/:/tmp/test_logs/ \
-e FLUME_AGENT_NAME="agent" \
-d flume:2.0.0
启动成功
5、docker logs 查看日志有没有错误 无错误 安装完成
二、flume+kafka日志采集
配置文件在conf里 上面已经写好了
1、进入flume容器
docker exec -it flume-test /bin/bash
2、查看是否映射成功
cd /opt/flume-config/flume.conf
cd /opt/flume/logs
3、进入bin目录下 启动agent 使用后台启动
在新窗口查看logs文件 flume.log是否报错 没有报错 说明flume启动成功
4、进入kafka容器 启动kafka消费者
5、对刚刚进行实时监控的logs文件进行echo 然后等待消费
成功!
有所帮助请留个赞 以下是安装docker下安装kafka教程
docker环境下安装kafka集群 实现logs+flume+kafka日志采集 镜像安装
docker容器(centos7)中rpm离线方式安装mysql镜像