使用docker-compose安装flume

本文档介绍了如何使用Dockerfile构建基于CentOS7的JDK1.8镜像和Flume镜像,并通过docker-compose在华为云上部署日志采集服务。首先,详细展示了构建两个独立镜像的步骤,接着编写docker-compose.yml文件以启动并管理Flume容器,包括配置文件、启动脚本和日志目录的映射。最后,提供了启动和停止容器的命令。
摘要由CSDN通过智能技术生成

使用flume采集应用服务器(华为云)上的日志信息,但运维同学为了方便管理资源,要求使用docker-compose方式安装。而官方docker仓库中的flume不是最新版的,所以打算自己构建flume镜像。 flume依赖于jdk,所以安装flume的容器需要有jdk;那么首先构建一个基于centos7的jdk1.8的镜像centos7-jdk1.8;然后基于镜像centos7-jdk1.8构建安装的flume镜像flume;最后再使用docker-compose安装容器。

一、构建centos7-jdk1.8镜像

1)编写Dockerfile文件

# 使用 centos7 作为基础镜像
FROM centos:7
MAINTAINER niedefang "niedefang@126.com"
# 添加压缩包到容器目录 /usr/java/jdk 中
ADD jdk-8u281-linux-x64.tar.gz /usr/local/java
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_281
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
CMD ["java","-version"]

2)创建镜像并推到远程华为云仓库

docker build -t swr.cn-north-4.myhuaweicloud.com/shuiben/centos7-jdk1.8:1.0 . && docker push swr.cn-north-4.myhuaweicloud.com/shuiben/centos7-jdk1.8:1.0

二、构建flume镜像

1)编写Dockerfile文件

FROM swr.cn-north-4.myhuaweicloud.com/shuiben/centos7-jdk1.8:1.0
MAINTAINER niedefang "niedefang@126.com"
ADD apache-flume-1.9.0-bin.tar.gz /opt/
RUN mv /opt/apache-flume-1.9.0-bin /opt/flume
#设置环境变量
ENV FLUME_HOME /opt/flume
ENV PATH $PATH:$FLUME_HOME/bin
WORKDIR /opt/flume
#ENTRYPOINT ["tail", "-f", "/dev/null"]
#ENTRYPOINT ["./conf/start_agents.sh"]
CMD ["flume-ng","version"]

2)创建镜像并推到远程华为云仓库

docker build -t swr.cn-north-4.myhuaweicloud.com/shuiben/flume .

docker push swr.cn-north-4.myhuaweicloud.com/shuiben/flume

注:这两个镜像也可以放在一个Dockerfile中构建成一个镜像;我这里分开构建的原因是如果后期再有需要使用jdk的镜像,则可以直接使用。

三、构建flume容器

1)编写docker-compose.yml文件

version: "3"
services:
  flume:
    image: swr.cn-north-4.myhuaweicloud.com/shuiben/flume
    container_name: myflume
    restart: always
    network_mode: bridge
    privileged: true 
    volumes:
      - ./conf:/opt/flume/conf  #映射配置文件目录
      - ./logs:/opt/flume/logs  #映射日志文件目录
      - /data/log/xiaohe/prod:/logs/xiaohe  #映射flume监听的日志文件所在目录
    entrypoint: ["bash","-c","/opt/flume/conf/start_agents.sh"] #启动flume的agent的脚本 
    tty: true  #不加这个属性,容器启动后会自动停止

2)启动flume agent的脚本

start_agents.sh

#!/bin/bash
echo "Start agents..."

flume-ng agent -c conf/ -n log_monitor -f conf/flume.conf -Dflume.root.logger=INFO,console > logs/log_monitor.out 2>&1

#如果使用docker run 的方式启动容器,都要记得加上 exec "$@" 或者  tail -f /dev/null ;否则执行完脚本容器就自动关闭了;而docker-compose方式因为有tty:true,所以这里就不需要了
#exec "$@"
#tail -f /dev/null

3)flume.conf文件编写


log_monitor.sources = r1
log_monitor.channels = c1
log_monitor.sinks = k1

log_monitor.sources.r1.type = TAILDIR
#当偏移量不能写入到文件时是否跳到文件结尾
#log_monitor.sources.r1.channels.skipToEnd = True
log_monitor.sources.r1.filegroups = f1
log_monitor.sources.r1.filegroups.f1 = /logs/xiaohe/app.log*

log_monitor.channels.c1.type=SPILLABLEMEMORY
log_monitor.channels.c1.checkpointDir = /data/flume/checkpoint
log_monitor.channels.c1.dataDirs = /data/flume

log_monitor.sinks.k1.type =avro
log_monitor.sinks.k1.hostname = 39.107.24.78
log_monitor.sinks.k1.port = 4444
log_monitor.sources.r1.channels = c1
log_monitor.sinks.k1.channel = c1

 4)启动和停止容器

#启动
docker-compose up -d
#停止
docker-compose down -v

Docker Compose是一个用于定义和管理多容器Docker应用程序的工具。它通过使用YAML文件来定义应用程序的服务、网络和卷等配置,并通过简单的命令来启动、停止和管理应用程序。 安装Docker Compose的步骤如下: 1. 首先确保已经安装Docker。你可以通过运行`docker version`命令来检查Docker是否已经安装成功。 2. 下载Docker Compose的二进制文件。可以使用以下命令来下载最新版本的Docker Compose: ``` sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 3. 授予执行权限给docker-compose二进制文件: ``` sudo chmod +x /usr/local/bin/docker-compose ``` 4. 验证Docker Compose是否安装成功: ``` docker-compose --version ``` 如果显示了正确的版本号,则说明安装成功。 使用Docker Compose创建和管理应用程序的步骤如下: 1. 在项目根目录创建一个名为`docker-compose.yml`的YAML文件。 2. 在`docker-compose.yml`文件中定义你的应用程序的服务、网络和卷等配置。例如,以下是一个简单的示例: ```yaml version: '3' services: web: image: nginx ports: - "80:80" db: image: mysql environment: MYSQL_ROOT_PASSWORD: example ``` 3. 使用以下命令来启动应用程序: ``` docker-compose up ``` 这将根据`docker-compose.yml`文件中的配置创建和启动服务。 4. 如果需要在后台运行应用程序,可以使用以下命令: ``` docker-compose up -d ``` 5. 使用以下命令停止应用程序: ``` docker-compose down ``` 以上就是Docker Compose安装和基本使用方法。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码道功成

过程不易,恳请支持一下!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值