Maxwell安装使用和简单案例

devtools/2024/9/18 12:06:59/ 标签: Maxwell

一、解压

cd /opt/software/
​
tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/
​
cd /opt/module/

二、MySQL 环境准备

1、修改 mysql 的配置文件

修改 mysql 的配置文件,开启 MySQL Binlog 设置

vi /etc/my.cnf

添加以下内容

server_id=1
log-bin=mysql-bin
binlog_format=row
#binlog-do-db=test_maxwell
​
#(可添加可不添加)
#添加binlog的多个库(用于区分是不是自己的库)
#binlog-do-db=库名

解释

        server_id=1:指定了MySQL服务器实例的唯一标识符,用于复制和识别不同的服务器。 ​

        log-bin=mysql-bin:启用二进制日志(binary log),并指定了二进制日志文件的名称为mysql-bin。二进制日志包含了对数据库所做更改的详细记录,可用于数据复制和恢复等操作。 ​

        binlog_format=row:指定了二进制日志的格式为行级别(row-based)格式。在行级别格式中,二进制日志记录了实际被修改的行的内容。这种格式相对于其他格式(如语句级别或混合级别)更为详细和安全,因为它记录了实际数据的变化,而不仅仅是执行的SQL语句。 ​

        binlog-do-db=test:这个选项定义了需要记录到二进制日志的数据库名称。在这个例子中,只有名为test的数据库的更改会被记录到二进制日志中。这有助于减少二进制日志文件的大小和提高性能,因为不需要记录所有数据库的更改。

2、重启MySQL

#重启MySQL
systemctl restart mysqld
​
#关闭
systemctl stop mysqld
​
#查看
systemctl status mysqld

登录查看是否修改完成

mysql -uroot -pPassword123$

查看下列属性

show variables like '%binlog%';

3、查看 MySQL 生成的 binlog 文件

进入/var/lib/mysql 目录,查看 MySQL 生成的 binlog 文件、

cd /var/lib/mysql

 

cat mysql-bin.index

再次重启

systemctl restart mysqld

查看

4、测试

cd /var/lib/mysql
​
cat mysql-bin.000002

三、初始化 Maxwell 元数据库

1、在 MySQL 中建立一个 maxwell 库

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

mysql -uroot -pPassword123$
​
create database maxwell;

2、设置 mysql 用户密码安全级别(可设置可不设置)

set global validate_password_length=4;
​
set global validate_password_policy=0;

3、分配一个账号可以操作该数据库

grant all on maxwell.* to 'maxwell'@'%' identified by 'Password123$';

4、分配这个账号可以监控其他数据库的权限

grant select ,replication slave ,replication client on *.* to maxwell@'%';

 

5、刷新 mysql 表权限

flush privileges;

四、进程启动

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

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

cd /opt/module/maxwell-1.29.2/
​
bin/maxwell --user='maxwell' --password='Password123$' --host='master' --producer=stdout

解释

--user 连接 mysql 的用户
--password 连接 mysql 的用户的密码
--host mysql 安装的主机名
--producer 生产者模式(stdout:控制台 kafka:kafka 集群)

测试

修改数据表在控制台即可看到

2、修改配置文件,定制化启动 Maxwell 进程

cd /opt/module/maxwell-1.29.2/
​
cp config.properties.example config.properties
​
vi config.properties
​
#启动命令
bin/maxwell --config ./config.properties

修改以下内容

修改后

启动 

bin/maxwell --config ./config.properties

启动成功

测试

添加或修改

查看

3、查看进程

五、案例

1、监控 Mysql 数据并在控制台打印

先建表

或者

mysql -uroot -pPassword123$
​
#新建数据库
create database test_maxwell;
​
#使用数据库
use test_maxwell;
​
#新建表
create table test (id int,name varchar(50));

(1)运行 maxwell 来监控 mysql 数据更新

启动

cd /opt/module/maxwell-1.29.2/
​
bin/maxwell --user='maxwell' --password='Password123$' --host='master' --producer=stdout

(2)向 test 表插入一条数据

向 mysql 的 test_maxwell库的 test 表插入一条数据,查看 maxwell 的控制台输出

insert into test values(1,'aaa');

{"database":"test_maxwell",  --库名"table":"test",   --表名"type":"insert",  --数据更新类型"ts":1708240480,  --操作时间"xid":397,        --操作 id"commit":true,    --提交成功"data":{          --数据"id":1,"name":"aaa"}
}

(3)向 test 表同时插入 3 条数据

向 mysql 的 test_maxwell 库的 test 表同时插入 3 条数据,控制台出现了 3 条 json日志,说明 maxwell 是以数据行为单位进行日志的采集的。

insert into test values(2,'bbb'),(3,'ccc'),(4,'ddd');

(4)修改 test 表的一条数据

修改 test_maxwell 库的 test 表的一条数据,查看 maxwell 的控制台输出

update test set name='abc' where id =1;

 

{"database":"test_maxwell","table":"test","type":"update","ts":1708241222,"xid":2262,"commit":true,"data":{  --修改后的数据"id":1,"name":"abc"},"old":{   --修改前的数据"name":"aaa"}
}

(5)删除 test 表的一条数据

删除 test_maxwell 库的 test 表的一条数据,查看 maxwell 的控制台输出

delete from test where id=1;

 

2、监控 Mysql 数据输出到 kafka

在mysql进行增删改查的binlog,保存到了kafka里

(1)启动kafka和zooKeeper

启动zooKeeper

# 启动
zkServer.sh start
​
# 查看状态
zkServer.sh status
​
# 停止
zkServer.sh stop

启动kafka

各节点上启动

/opt/module/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-2.4.1/config/server.properties

关闭kafka

/opt/module/kafka_2.11-2.4.1/bin/kafka-server-stop.sh -daemon /opt/module/kafka_2.11-2.4.1/config/server.properties

(2)启动 Maxwell 监控 binlog

cd /opt/module/maxwell-1.29.2/
​
bin/maxwell --user='maxwell' --password='Password123$' --host='master' --producer=kafka --kafka.bootstrap.servers=master:9092 --kafka_topic=maxwell

(3)打开 kafka 的控制台的消费者消费 maxwell 主题

cd /opt/module/kafka_2.11-2.4.1/bin
​
./kafka-console-consumer.sh --bootstrap-server master:9092 --topic maxwell --from-beginning

(4)向 test_maxwell 库的 test 表再次插入一条数据

insert into test values(5,'aaa');

(5)通过 kafka 消费者来查看到了数据,说明数据成功传入 kafka

{"database": "test_maxwell","table": "test","type": "insert","ts": 1708243199,"xid": 6293,"commit": true,"data": {"id": 5,"name": "aaa"}
}

复制一个窗口,查看

cd /opt/module/kafka_2.11-2.4.1/bin
​
./kafka-topics.sh --bootstrap-server master:9092 --list


http://www.ppmy.cn/devtools/16088.html

相关文章

WebDriver库:实现对音频文件的自动下载与保存

1. 背景介绍 音频娱乐在当今社会已经成为了人们日常生活中不可或缺的一部分。从早晨的音乐播放到晚上的电台节目,音频内容贯穿了我们的整个生活。随着互联网的普及和技术的进步,越来越多的音频内容通过网络平台进行传播和分享。网易云音乐作为中国领先的…

DBeaver工具在无网络的情况下连接clickhouse方法

1、问题 1、安装DBeaver后,一般在生产环境下是没有网络的,这就存在一个问题,使用DBeaver去连接clickhouse服务时,是需要下载驱动的,但是没有网络,就不能下载驱动; 2、解决方法 1、首先是在有…

Oracle 第二章

1- 排序查询 select * from 表名 order by 字段; desc :从大到小排序 默认是从小到大排序 2- 基于伪列的查询 ROWID 和 ROWNUM rowid : 唯一的编号 select rowid,表名.* from 表名 where ROWID AAAStKAANAAAAC/AAC; (rowid号&#…

MySql CPU激增原因分析

QPS激增会导致CPU占用升高 分析 可以使用监控工具,查看CPU利用率曲线图和QPS曲线图进行对比。如果CPU曲线图波动情况跟QPS曲线图波动情况基本保持一致,可以明确明确CPU升高时QPS上升导致。反之,CPU曲线图对比QPS曲线图有不同步的峰值抖动&am…

SHOW ME THE CODE - 面向对象程序设计之 - 单一职责原则

今天我们从代码的角度来讲一讲,到底什么是:单一职责原则 SRP的定义 Single Responsibility Principle, 单一职责原则 单一职责原则(Single Responsibility Principle,SRP)最早是由罗伯特C马丁(Robert C. …

数据结构PT2——堆栈/队列

一、堆栈(FILO) 堆栈是一种线性结构,也是一种特殊的线性表 1:堆栈的顺序存储实现 栈的顺序存储结构通常由一个一维数组和一个记录栈顶元素位置的变量组成 #define MaxSize typeof struct SNode *Stack struct SNode{ElementType Data[MaxSi…

HNCTF 2022 week1 题解

自由才是生活主旋律。 [HNCTF 2022 Week1] Interesting_include <?php //WEB手要懂得搜索 //flag in ./flag.phpif(isset($_GET[filter])){$file $_GET[filter];if(!preg_match("/flag/i", $file)){die("error");}include($file); }else{highlight_…

邦芒面试:如何在面试中精准描述个人能力

在竞争激烈的职场中&#xff0c;个人能力无疑是求职者获得心仪职位的关键。面试时&#xff0c;被问及“请简单描述一下你的个人能力”几乎是每位求职者都难以避免的问题。如何恰到好处地展现自己的个人能力&#xff0c;成为求职者面试成功的重要一环。那么&#xff0c;在面试时…

[柏鹭杯 2021]试试大数据分解?

题目&#xff1a;&#xff08;NSSCTF | 在线CTF平台&#xff09; 题目就是如此&#xff0c;我没看到有5个不同的文本&#xff0c;其中最后一个文本以pem后缀&#xff0c;所以我们先来了解一下什么是pem格式。 PEM 格式 PEM格式通常用于数字证书认证机构&#xff08;Certifica…

K8s: 集群内Pod通信机制之DNS

集群内Pod通信机制之DNS Kubernetes 支持两种基本的服务发现模式 —— 环境变量和 DNS 1 &#xff09; DNS 概述 可以使用附加组件 为 Kubernetes 集群设置 DNS 服务支持群集的 DNS 服务器&#xff08;例如 CoreDNS&#xff09;监视 Kubernetes API 中的新服务&#xff0c;并…

C++初阶学习第三弹——类与对象(上)——初始类与对象

前言&#xff1a; 在前面&#xff0c;我们已经初步学习了C的一些基本语法&#xff0c;比如内敛函数、函数重载、缺省参数、引用等等&#xff0c;接下来我们就将正式步入C的神圣殿堂&#xff0c;首先&#xff0c;先给你找个对象 目录 一、类与对象是什么&#xff1f; 二、类的各…

VUE2版本的仿微信通讯录侧滑列表

<template><!-- Vue模板部分 --><div><div v-for"(group, index) in groupedArray" :key"index" ref"indexcatch"><h2>{{ letter[index] }}</h2><ul><li v-for"item in group" :key&quo…

【STM32+HAL+Proteus】系列学习教程---ADC(查询、中断、DMA模式下的电压采集)

实现目标 1、学会STM32CubeMX软件关于ADC的配置 2、掌握ADC三种模式&#xff08;查询、中断、DMA&#xff09;编程 3、具体目标&#xff1a;1、将开发板单片机采集到的电压值上传至上位机串口调试助手显示。 一、ADC 概述 1、什么是ADC? ADC&#xff08;Analog to Digit…

【UE 材质】雨水流淌效果

在上一篇&#xff08;【UE 材质】雨滴效果&#xff09;基础上继续实现雨水从顶部沿着墙壁侧面向下流淌的效果 效果 步骤 1. 下载所需纹理 2. 新建一个材质函数&#xff0c;这里命名为“MF_Weather_Drips”&#xff0c;在材质函数中添加如下节点 其中输入节点的默认值分别为…

全栈技术面试十问2(中英双语)

适用于全栈工程师的职位&#xff0c;特别是针对具有丰富Java后端和前端开发经验的候选人。这些问题将覆盖技术技能、项目经验和软技能。 适用于全栈工程师的职位&#xff0c;特别是针对具有丰富Java后端和前端开发经验的候选人。这些问题将覆盖技术技能、项目经验和软技能。 …

10个PyCharm常用的免费插件,让开发迅速飙升

10个PyCharm常用的免费插件,让开发效率迅速飙升 PyCharm是一款非常强大的集成开发环境&#xff08;IDE&#xff09;,它本身提供了丰富的功能,但通过安装合适的插件,可以进一步增强其功能和用户体验.以下是几个实用且炫酷的PyCharm插件. 1.Key Promoter X(快捷键&#xff09; …

游戏工作室为什么要使用海外住宅IP防封?

当谈到游戏工作室时&#xff0c;它们通常以多开游戏账号来获取收益为主要目标。这种商业模式在游戏产业中已经成为一个独特而且颇具潜力的领域。然而&#xff0c;随之而来的是防封问题&#xff0c;特别是当游戏工作室试图通过多开账号来赚取更多收益时。因此&#xff0c;我们有…

HTML中meta标签属性详解

文章目录 name 属性⚡️1. viewport⚡️2. keywords⚡️3. description4. author5. application-name6. generator7. robots8. copyright http-equiv 属性⚡️1. content-type⚡️2. Cache-Control3. refresh4. default-style charset 属性⚡️UTF-8 <meta> 标签是一种用…

maya 设置半径 获取时长,设置时长

maya 选择当前节点的所有子节点&#xff0c;设置半径&#xff0c;获取动画时长&#xff0c;并且设置时长 python 脚本 import maya.cmds as cmds# 获取当前选择的节点 selected_nodes cmds.ls(selectionTrue)# 创建一个列表来存储所需的节点&#xff1a;当前选中的节点及其所…

Docker网络模式与cgroup资源控制

前言 在 Docker 中&#xff0c;网络模式和 cgroup 资源控制作为关键功能&#xff0c;对于容器的性能优化和资源管理起着至关重要的作用。本文将介绍 Docker 的网络模式和cgroup资源控制&#xff0c;探讨不同网络模式的特点以及如何利用 cgroup 资源控制机制来有效管理容器的资…