最新版本:iLogtail社区版使用入门 - 采集MySQL Binlog

优采云 发布时间: 2022-11-29 07:19

  最新版本:iLogtail社区版使用入门 - 采集MySQL Binlog

  iLogtail是阿里云日志服务(SLS)团队自研的可观察数据采集代理。它具有轻量级、高性能和自动配置等许多生产级特性。可以部署在物理机、虚拟机、Kubernetes等多种环境中。采集

遥测数据。iLogtail服务过阿里云上万台客户主机和容器的可观测性采集工作。也是阿里巴巴集团核心产品线,如淘宝、天猫、支付宝、菜鸟、高德的默认日志和监控。、Trace等可观察数据采集

工具。目前,iLogtail 已经有数千万的安装量,每天采集

数十 PB 的可观察数据。广泛应用于在线监控、问题分析/定位、操作分析、安全分析。其威力在实战中得到了验证。性能和稳定性。

  在如今的云原生时代,我们坚信开源是iLogtail最好的发展战略,也是释放其最大价值的途径。因此,我们决定开源iLogtail,期待与众多开发者一起将iLogtail打造成世界一流的可观察数据采集器

  MySQL Binlog后台

  MySQL Binlog记录了MySQL的变更日志,包括DML、DDL等,DML不记录SELECT、SHOW等,因为只读的SQL语句不会影响数据库的状态。

  Binlog对于MySQL的重要性不言而喻,在数据库崩溃时可以借助Binlog进行恢复。因为Binlog记录了每一次变化的内容,所以理论上可以将数据库的状态恢复到Binlog存在时的任意时刻,常用数据库备份。

  主从复制也是Binlog的一个重要使用场景。在读多写少的互联网应用中,数据库一主多从的部署架构可以为应用增加更多的响应能力。主库到从库的数据同步,很多时候也会用到Binlog。

  数据库操作审计,因为Binlog记录了数据库的所有变化,所以一些误操作或者危险的操作也会被记录在里面。记录Binlog并分析其中的操作行为,可以实现轻量级的数据库操作审计和跟踪。识别误操作发生的时间或危险SQL发生的时间。

  Binlog如此重要,业界也有一些同步Binlog数据的方案,比如Canal、MaxWell、DTS等,不同的工具可以达到不同的目的。iLogtail还提供了方便的Binlog同步功能。iLogtail采集

Binlog后,可以输出结果给各种flusher。本文以Kafka为例进行介绍。

  了解iLogtail采集

Binlog的原理

  iLogtail内部实现了MySQL Slave节点的交互协议,具体流程如下。

  iLogtail模拟MySQL从节点向MySQL主节点发送转储请求。MySQL主节点收到dump请求后,会实时将自己的Binlog发送给iLogtail。iLogtail对Binlog进行事件解析、过滤、数据解析等操作,并将解析后的数据上传至Flusher。

  支持 Binlog 站点

  通过指定Binlog的位置,支持从特定位置的Binlog消费。

  支持关卡

  当iLogtail重启或机器意外重启时,iLogtail会保存当前的消费位置,下次重启时从上次消费的位置开始消费。

  支持多数据库过滤

  支持数据库表的黑白名单配置。

  支持全局事务 ID (GTID)

  支持MySQL数据库服务器的GTID功能,避免主从切换造成的数据丢失。

  使用场景

  本文介绍使用iLogtail采集

数据库增删改查的Binlog,并将采集

到的数据输出到Kafka。本文以MySQL的示例数据库employees为例进行采集。涉及的表是titles。内容如下

  emp_no title from_date to_date

10006 Senior Engineer 1990-08-05 9999-01-01

  部署iLogtail采集

MySQL Binlog

  下面介绍如何使用iLogtail采集

MySQL Binlog

  前提条件 安装MySQL并开启Binlog,Binlog为ROW模式;请参阅链接。安装卡夫卡

  # 下载、解压

$ wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz

$ tar -xzf kafka_2.13-3.2.0.tgz

$ cd kafka_2.13-3.2.0

# 启动

# Start the ZooKeeper service

<p>

" />

# Note: Soon, ZooKeeper will no longer be required by Apache Kafka.

$ nohup bin/zookeeper-server-start.sh config/zookeeper.properties &

# Start the Kafka broker service

$ nohup bin/kafka-server-start.sh config/server.properties &</p>

  bin/kafka-topics.sh --create --topic binlog --bootstrap-server localhost:9092

  安装iLogtail

  $ wget https://ilogtail-community-edition.oss-cn-shanghai.aliyuncs.com/1.1.0/ilogtail-1.1.0.linux-amd64.tar.gz

tar -xzvf ilogtail-1.1.0.linux-amd64.tar.gz

$ cd ilogtail-1.1.0

$ ll

drwxrwxr-x 5 505 505 4096 7月 10 18:00 example_config

-rwxr-xr-x 1 505 505 84242040 7月 11 00:00 ilogtail

-rwxr-xr-x 1 505 505 16400 7月 11 00:00 libPluginAdapter.so

-rw-r--r-- 1 505 505 115963144 7月 11 00:00 libPluginBase.so

-rw-rw-r-- 1 505 505 11356 7月 11 00:00 LICENSE

-rw-rw-r-- 1 505 505 5810 7月 11 00:00 README-cn.md

-rw-rw-r-- 1 505 505 4834 7月 11 00:00 README.md

-rw-rw-r-- 1 505 505 118 7月 14 11:22 ilogtail_config.json

drwxr-xr-x 2 root root 4096 7月 12 09:55 user_yaml_config.d

  在user_yaml_config.d目录下创建binlog.yaml

  enable: true

inputs:

- Type: service_canal

Host: 127.0.0.1

Port: 3306

ServerID: 123456

Password: xxxxx

EnableDDL: true

TextToString: true

flushers:

- Type: flusher_kafka

Brokers:

- localhost:9092

<p>

" />

Topic: access-log

$ tree user_yaml_config.d/

user_yaml_config.d/

└── binlog.yaml</p>

  启动

  $ nohup ./ilogtail > stdout.log 2> stderr.log &

  核实

  # 终端1:启动kafka-console-consumer,消费binlog

  $ bin/kafka-console-consumer.sh --topic binlog --from-beginning --bootstrap-server localhost:9092

  终端2:执行3条语句更新数据库

  # 分别执行三条sql语句

update titles set title = &#39;test-update&#39; where emp_no = 10006

delete from titles where emp_no = 10006

INSERT INTO `titles` (`emp_no`, `title`, `from_date`, `to_date`)

VALUES

(10006, &#39;Senior Engineer&#39;, &#39;1990-08-05&#39;, &#39;9999-01-01&#39;);

  终端1:查看结果

  # 终端1: 消费到写入的访问日志,说明流程正常。

{"Time":1657890330,"Contents":[{"Key":"_table_","Value":"titles"},{"Key":"_offset_","Value":"4308"},{"Key":"_old_emp_no","Value":"10006"},{"Key":"from_date","Value":"1990-08-05"},{"Key":"_host_","Value":"127.0.0.1"},{"Key":"_event_","Value":"row_update"},{"Key":"_id_","Value":"12"},{"Key":"_old_from_date","Value":"1990-08-05"},{"Key":"_gtid_","Value":"00000000-0000-0000-0000-000000000000:0"},{"Key":"_db_","Value":"employees"},{"Key":"_filename_","Value":"mysql-bin.000001"},{"Key":"_old_title","Value":"Senior Engineer"},{"Key":"_old_to_date","Value":"9999-01-01"},{"Key":"emp_no","Value":"10006"},{"Key":"title","Value":"test-update"},{"Key":"to_date","Value":"9999-01-01"}]}

{"Time":1657890333,"Contents":[{"Key":"_id_","Value":"13"},{"Key":"_filename_","Value":"mysql-bin.000001"},{"Key":"emp_no","Value":"10006"},{"Key":"title","Value":"test-update"},{"Key":"_db_","Value":"employees"},{"Key":"_table_","Value":"titles"},{"Key":"_event_","Value":"row_delete"},{"Key":"from_date","Value":"1990-08-05"},{"Key":"to_date","Value":"9999-01-01"},{"Key":"_host_","Value":"127.0.0.1"},{"Key":"_gtid_","Value":"00000000-0000-0000-0000-000000000000:0"},{"Key":"_offset_","Value":"4660"}]}

{"Time":1657890335,"Contents":[{"Key":"_offset_","Value":"4975"},{"Key":"emp_no","Value":"10006"},{"Key":"title","Value":"Senior Engineer"},{"Key":"from_date","Value":"1990-08-05"},{"Key":"_gtid_","Value":"00000000-0000-0000-0000-000000000000:0"},{"Key":"_filename_","Value":"mysql-bin.000001"},{"Key":"_table_","Value":"titles"},{"Key":"_event_","Value":"row_insert"},{"Key":"_id_","Value":"14"},{"Key":"to_date","Value":"9999-01-01"},{"Key":"_host_","Value":"127.0.0.1"},{"Key":"_db_","Value":"employees"}]}

  总结

  通过以上实例,演示了如何使用iLogtail采集

MySQL Binlog日志。借助iLogtail,简单配置即可完成Binlog的采集。同时,iLogtail还支持更灵活的配置,比如配置采集格式。iLogtail基于Canal方案采集数据库。

  通过采集

Binlog,可以查询、分析、可视化SLS中数据库的增量变化;也可以使用SLS的告警功能来监控和配置危险的SQL。在SLS中,可以进行低成本的长期存储和高性能的查询来实现审计。需要。

  关于iLogtail

  iLogtail作为阿里云SLS提供的可观察数据采集器,可以运行在服务器、容器、K8s、嵌入式等多种环境中,支持上百种可观察数据(日志、监控、轨迹、事件等)的采集。数以千万计的安装量。目前iLogtail已正式开源,欢迎使用和参与共建。

  GitHub: /alibaba/ilogtail

  社区版文档:ilogtail.gitbook.io/ilogtail-docs/about/readme

  企业版官网:/document_detail/65018.html

  外媒:自媒体洗稿软件AI版 V2.1 官方版(自媒体洗稿软件AI版 V2

  大家好,关于自媒体剪辑软件AI版V2.1正式版自媒体剪辑软件AI版V2.1正式版功能介绍 自媒体剪辑软件AI版V2.1 . 我们一起来看看!

  自媒体洗稿软件AI版是一款功能强大的自动洗稿工具。他可以快速为自媒体创作者重新创作稿件,并快速通过原创

测试。非常实用,有需要的用户不要错过。

  【软件特色】

  

" />

  1、适用平台:本软件适用于今日头条、企鹅、搜狐、大鱼、快传、一点等自媒体平台。

  2、通过原创测试:搞自媒体的编辑都知道,创作一篇文章是非常耗时的。大多数时候,他们会找到好的想法并采集

多篇文章,然后将内容组合起来,然后伪原创。不过目前各个平台都有原创文章。测试的话,最好先通过软件对稿件进行一次清洗,然后再进行伪原创,这样才能通过自媒体平台的原创测试。

  3、一键编辑:注册软件登录后,将需要编辑的文章内容放入软件,2秒一键智能编辑,快速整理一篇原创度高的文章。然后再花几分钟微调,就是一篇完美的自媒体文章。

  【更新日志】

  1.新增头条AI生成功能

  

  2.修复稿件清洗卡住的情况

  3.开发WEB网页在线版入口

  4. 获得人工智能NLP技术

  这篇文章就分享到这里,希望对大家有所帮助。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线