• iLogtail 社区版使用入门 - 采集 MySQL Binlog


    iLogtail是阿里云日志服务(SLS)团队自研的可观测数据采集Agent,拥有的轻量级、高性能、自动化配置等诸多生产级别特性,可以署于物理机、虚拟机、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节点的交互协议,具体流程如下所示。

    1. iLogtail模拟MySQL Slave节点向MySQL master节点发送dump请求。
    2. MySQL master节点收到dump请求后,会将自身的Binlog实时发送给iLogtail。
    3. iLogtail对Binlog进行事件解析、过滤、数据解析等操作,并将解析好的数据上传到Flusher。

    支持Binlog位点

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

    支持Checkpoint

    在iLogtail重启或者机器意外重启的情况下,iLogtail会对当前消费的位点进行保存,并在下次重新启动时,从上次消费的位置进行消费。

    支持多种数据库过滤

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

    支持全局事务ID(GTID)

  • 相关阅读:
    为什么输出的深度和广度优先遍历的结果只有24并且最小生成树的结果也不正确
    【Proteus仿真】L297驱动步进电机
    关于浅克隆和深克隆入门理解
    6.25AtCoderABC257E - Addition and Multiplication 2题解
    neo4j 图数据库初步调研 三元组、属性图、图模型、超图、RDF-f
    yolox
    Kubernetes技术与架构-服务
    Vue3为什么推荐使用ref而不是reactive
    如何使用Python和Plotly绘制3D图形
    Java算法(九):过滤集合:封装方法,实现对一个Student类中的学生信息的筛选 && 并且返回一个新的集合 && 遍历集合调用
  • 原文地址:https://blog.csdn.net/weixin_43970890/article/details/126485199