1. 借鉴
2. 开始
我们的集群规划如下:
flume01[172.173.16.16] | flume02[172.173.16.17] | flume03[172.173.16.18] | |
---|---|---|---|
作用 | 日志采集 | 日志采集 | 消费MQ数据 |
镜像准备
- docker hub 下载
docker pull caiserkaiser/centos-ssh
创建自定义网络
docker network create -d bridge --subnet "172.173.16.0/24" --gateway "172.173.16.1" datastore_net
启动容器
docker run -it -d --network datastore_net --ip 172.173.16.16 --name flume01 caiser/centos-ssh:7.8
下载flume
-
下载flume
-
拷贝到容器内
docker cp ~/Downloads/apache-flume-1.7.0-bin.tar.gz 6c41e6d8a348:/opt/envs
-
解压
tar -zxvf apache-flume-1.7.0-bin.tar.gz
配置
flume-env.sh
-
a. 备份
cp /opt/envs/apache-flume-1.7.0-bin/conf/flume-env.sh.template /opt/envs/apache-flume-1.7.0-bin/conf/flume-env.sh
-
b. 编辑flume-env.sh
vi /opt/envs/apache-flume-1.7.0-bin/conf/flume-env.sh
-
c. 配置java home
①. 找到下面这一行
# export JAVA_HOME=/usr/lib/jvm/java-6-sun
②. 然后替换为以下
export JAVA_HOME=/opt/envs/jdk1.8.0_251
-
d. 配置JVM
①. 找到下面这两行
# Give Flume more memory and pre-allocate, enable remote monitoring via JMX # export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote"
②. 然后替换为以下
export JAVA_OPTS="-Xms4096m -Xmx4096m -Dcom.sun.management.jmxremote"
flume-节点配置
-
编辑/etc/hosts,并添加以下hostname
172.173.16.16 flume01 172.173.16.17 flume02 172.173.16.18 flume03
保存为镜像并移除容器
docker commit 6c41e6d8a348 caiser/flume:1.7.0
docker rm 6c41e6d8a348
启动容器
docker run -it -d --network datastore_net --ip 172.173.16.16 --name flume01 caiser/flume:1.7.0 bin/bash
docker run -it -d --network datastore_net --ip 172.173.16.17 --name flume02 caiser/flume:1.7.0 bin/bash
docker run -it -d --network datastore_net --ip 172.173.16.18 --name flume03 caiser/flume:1.7.0 bin/bash
配置ssh免密登录
-
进入容器
docker exec -it flume01 /bin/bash
-
到~/.ssh目录下生成秘钥
ssh-keygen -t rsa
-
拷贝秘钥到flume01,flume02和flume03
a.[如果没开启]三个容器没有开启ssh服务[ps -ef | grep ssh],需要依次执行
/usr/sbin/sshd -D &
b. 拷贝秘钥
ssh-copy-id flume01 ssh-copy-id flume02 ssh-copy-id flume03
-
flume02和flume03依次执行上述1-3步骤
收集日志
/opt/envs/apache-flume-1.7.0-bin/bin/flume-ng agent --conf /opt/envs/apache-flume-1.7.0-bin/conf --conf-file /opt/envs/apache-flume-1.7.0-bin/conf/file-flume-kafka.conf --name a1 -Dflume.root.logger=INFO,console
可以看到这里指定了--conf 和--conf-file,这里不指定没法运行,这个老头子坏得很-_-
网友评论