maxwell采集mysql bin_log

本文介绍了如何安装和配置Maxwell来采集MySQL的bin_log,并将这些日志流式传输到Kafka。首先,需要在系统中安装Kafka和MySQL。接着,部署Maxwell并修改MySQL配置以启用bin_log。然后,创建Maxwell的元数据库和相应权限。最后,启动Maxwell进程并将数据推送到Kafka进行消费。
摘要由CSDN通过智能技术生成

maxwell采集mysql的bin_log

1. Maxwell 安装部署

安装地址:

  1. Maxwell 官网地址:http://maxwells-daemon.io
  2. 文档查看地址:http://maxwells-daemon.io/quickstart/

安装部署:

  1. 软件基础,读者需要提前安装好 kafka 和 MySQL,此文档不再赘述。

  2. 上传 maxwell-1.29.2.tar.gz 到/opt下

  3. 解压 maxwell-1.29.2.tar.gz 的安装包到/opt/module 下

     tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/
    
  4. 更改命名

    mv maxwell-1.29.2/ maxwell
    
  5. 修改环境变量

    vim /etc/profile

    exprot MAXWELL_HOME=/opt/module/maxwell
    export PATH=$PATH:$MAXWELL_HOME/bin
    

    . /etc/profile //生效

2. 修改 mysql 的配置文件, 开启mysql的bin_log设置

  1. vim进入my.cnf(mysql的配置文件)

    [mysqld]
    server_id=1 
    log-bin=mysql-bin
    binlog_format=row
    #产生bin_log的数据库(可多个)
    binlog-do-db=test_maxwell
    
  2. 重启mysql

    systemctl restart mysqld
    
  3. 登录mysql查看是否修改成功

    mysql -uroot -p123456
    mysql> show variables like '%binlog%';
    查看下列属性(与配置项是否一致)
    binlog_format | ROW 
    
  4. 进入/var/lib/mysql 目录,查看 MySQL 生成的 binlog 文件

    1. cd /var/lib/mysql
    2. 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 元数据库

  1. 在 MySQL 中建立一个 maxwell 库用于存储 Maxwell 的元数据

    mysql -uroot -p123456
    mysql> CREATE DATABASE maxwell;
    
  2. 设置 mysql 用户密码安全级别

    mysql> set global validate_password_length=4;
    mysql> set global validate_password_policy=0;
    
  3. 分配一个账号可以操作该数据库

    mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '123456';
    
  4. 分配这个账号可以监控其他数据库的权限

    mysql> GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON 
    *.* TO maxwell@'%';
    
  5. 刷新 mysql 表权限

    mysql> flush privileges;
    

4. maxwell进程启动

Maxwell 进程启动方式有如下两种:

  1. 使用命令行参数启动 Maxwell 进程

    cd /opt/module/maxwell

    maxwell --user='maxwell' --password='123456' --host='hadoop102' --producer=stdout
    

    –user 连接 mysql 的用户

    –password 连接 mysql 的用户的密码

    –host mysql 安装的主机名

    –producer 生产者模式(stdout:控制台 kafka:kafka 集群)

  2. 修改配置文件,定制化启动 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

  1. 启动zookeeper 和 kafka(master,slave1,slave2 同步命令)

    zookeeper

    zkServer.sh start
    

    kafka

    kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
    
  2. 启动 Maxwell 监控 binlog

    maxwell --config config.properties
    
  3. 启动kafka消费

    kafka-console-consumer.sh --bootstrap-server master:9092 --topic maxwell
    

    注:在更变test_maxwell表的时候,bin_log会监控test_maxwell表数据的变化。maxwell会采集bin_log中的数据变化发送到kafka让其消费。

    kafka会自己创建没有的topic

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值