maxwell采集mysql的bin_log
1. Maxwell 安装部署
安装地址:
- Maxwell 官网地址:http://maxwells-daemon.io
- 文档查看地址:http://maxwells-daemon.io/quickstart/
安装部署:
-
软件基础,读者需要提前安装好 kafka 和 MySQL,此文档不再赘述。
-
上传 maxwell-1.29.2.tar.gz 到/opt下
-
解压 maxwell-1.29.2.tar.gz 的安装包到/opt/module 下
tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/
-
更改命名
mv maxwell-1.29.2/ maxwell
-
修改环境变量
vim /etc/profile
exprot MAXWELL_HOME=/opt/module/maxwell export PATH=$PATH:$MAXWELL_HOME/bin
. /etc/profile //生效
2. 修改 mysql 的配置文件, 开启mysql的bin_log设置
-
vim进入my.cnf(mysql的配置文件)
[mysqld] server_id=1 log-bin=mysql-bin binlog_format=row #产生bin_log的数据库(可多个) binlog-do-db=test_maxwell
-
重启mysql
systemctl restart mysqld
-
登录mysql查看是否修改成功
mysql -uroot -p123456 mysql> show variables like '%binlog%'; 查看下列属性(与配置项是否一致) binlog_format | ROW
-
进入/var/lib/mysql 目录,查看 MySQL 生成的 binlog 文件
- cd /var/lib/mysql
- ls -l
总用量 188500 -rw-r-----. 1 mysql mysql 154 11 月 17 16:30 mysql-bin.000001 -rw-r-----. 1 mysql mysql 19 11 月 17 16:30 mysql-bin.index
注:MySQL 生成的 binlog 文件初始大小一定是 154 字节,然后前缀是 log-bin 参数配 置的,后缀是默认从.000001,然后依次递增。除了 binlog 文件文件以外,MySQL 还会额外 生产一个.index 索引文件用来记录当前使用的 binlog 文件。
3. 初始化 Maxwell 元数据库
-
在 MySQL 中建立一个 maxwell 库用于存储 Maxwell 的元数据
mysql -uroot -p123456 mysql> CREATE DATABASE maxwell;
-
设置 mysql 用户密码安全级别
mysql> set global validate_password_length=4; mysql> set global validate_password_policy=0;
-
分配一个账号可以操作该数据库
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '123456';
-
分配这个账号可以监控其他数据库的权限
mysql> GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO maxwell@'%';
-
刷新 mysql 表权限
mysql> flush privileges;
4. maxwell进程启动
Maxwell 进程启动方式有如下两种:
-
使用命令行参数启动 Maxwell 进程
cd /opt/module/maxwell
maxwell --user='maxwell' --password='123456' --host='hadoop102' --producer=stdout
–user 连接 mysql 的用户
–password 连接 mysql 的用户的密码
–host mysql 安装的主机名
–producer 生产者模式(stdout:控制台 kafka:kafka 集群)
-
修改配置文件,定制化启动 Maxwell 进程
cp config.properties.example config.properties
vim config.properties
# tl;dr config log_level=info producer=kafka kafka.bootstrap.servers=master:9092 # mysql login info host=master user=maxwell password=123456
启动进程
maxwell --config /opt/module/maxwell/config.properties
5. maxwell采集mysql bin_log 到kafka
-
启动zookeeper 和 kafka(master,slave1,slave2 同步命令)
zookeeper
zkServer.sh start
kafka
kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
-
启动 Maxwell 监控 binlog
maxwell --config config.properties
-
启动kafka消费
kafka-console-consumer.sh --bootstrap-server master:9092 --topic maxwell
注:在更变test_maxwell表的时候,bin_log会监控test_maxwell表数据的变化。maxwell会采集bin_log中的数据变化发送到kafka让其消费。
kafka会自己创建没有的topic