最新版本: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 = 'test-update' where emp_no = 10006
delete from titles where emp_no = 10006
INSERT INTO `titles` (`emp_no`, `title`, `from_date`, `to_date`)
VALUES
(10006, 'Senior Engineer', '1990-08-05', '9999-01-01');
终端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技术
这篇文章就分享到这里,希望对大家有所帮助。