https://hub.docker.com/r/zendesk/maxwell
https://github.com/zendesk/maxwell
docker run -d --name maxwell --restart=always --link mariadb --link kafka -e TZ='Asia/Shanghai' --ulimit nofile=262144:262144 -v /etc/localtime:/etc/localtime:ro zendesk/maxwell bin/maxwell --user='root' --password='wdqdmm@r' --host='mariadb' --producer=kafka --kafka.bootstrap.servers='kafka:9092' --kafka_topic='mysql2kafka'
# kafdrop - kafka可视化web工具
https://abc.htmltoo.com/thread-46677.htm
Maxwell是一个能实时读取MySQL二进制日志binlog,并生成JSON格式的消息,作为生产者发送给Kafka
cd /data/docker/tools/Dockerfile/maxwell
wget https://github.com/zendesk/maxwell/releases/download/v1.24.1/maxwell-1.24.1.tar.gz
tar -xzvf maxwell-1.24.1.tar.gz && rm -rf maxwell-1.24.1.tar.gz && cd maxwell-1.24.1/
mv * ../ && cd ../ && rm -rf maxwell-1.24.1
vi /data/docker/tools/Dockerfile/maxwell/bin/maxwell-docker
exec `dirname $0`/maxwell --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD --host=$MYSQL_HOST --producer=$MAXWELL_PRODUCER $MAXWELL_OPTIONS --kafka_topic=$KAFKA_TOPIC
vi /data/docker/tools/Dockerfile/maxwell/Dockerfile
FROM maven:3.6-jdk-8
ENV MAXWELL_VERSION=1.24.1 KAFKA_VERSION=1.0.0
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y make wget vim net-tools curl git cron axel zip unzip cmake golang python build-essential autoconf automake libtool \
&& apt-get dist-upgrade -y \
&& apt-get upgrade -y \
&& apt autoremove \
&& apt clean
# prime so we can have a cached image of the maven deps
COPY pom.xml /tmp
RUN cd /tmp && mvn dependency:resolve
COPY . /workspace
RUN cd /workspace \
&& KAFKA_VERSION=$KAFKA_VERSION make package MAXWELL_VERSION=$MAXWELL_VERSION \
&& mkdir /app \
&& mv /workspace/target/maxwell-$MAXWELL_VERSION/maxwell-$MAXWELL_VERSION/* /app/ \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* /workspace/ /root/.m2/ \
&& echo "$MAXWELL_VERSION" > /REVISION
WORKDIR /app
CMD [ "/bin/bash", "-c", "bin/maxwell-docker" ]
sudo docker build -t maxwell .
sudo docker tag maxwell:latest hub.htmltoo.com:5000/db:maxwell
sudo docker push hub.htmltoo.com:5000/db:maxwell
# maxwell
镜像: hub.htmltoo.com:5000/db:maxwell
变量:
MYSQL_USERNAME = root
MYSQL_PASSWORD = wdqdmm@r
MYSQL_HOST = mysql
MAXWELL_PRODUCER = kafka
KAFKA_HOST = kafka
KAFKA_PORT = '9092'
KAFKA_TOPIC = mysql2kafka
卷:
/etc/localtime:/etc/localtime:ro
/data/file:/data/file
-------
docker run -it --rm zendesk/maxwell bin/maxwell --user=$MYSQL_USERNAME \
--password=$MYSQL_PASSWORD --host=$MYSQL_HOST --producer=kafka \
--kafka.bootstrap.servers=$KAFKA_HOST:$KAFKA_PORT --kafka_topic=maxwell
-------过滤数据库
--filter 'exclude: dbName01.*, include: dbName02.*'