search
数据采集 采集源配置 MySQL Binlog 数据采集

MySQL Binlog 数据采集

简介

通过 binlog 采集 MySQL 中的数据

前置条件

配置

进入 DataKit 安装目录下的 conf.d/db 目录,复制 binlog.conf.sample 并命名为 binlog.conf。示例如下:

[[inputs.binlog]]

##(optional)
null_int=0 //指定整数类型的字段值为 null 时应该替换为 0
null_float=0.0 //指定浮点类型的字段值为 null 时应该替换为 0.0

##(required)
[[inputs.binlog.sources]] # 配置 MySQL 采集源
  ##(required) MySQL 连接地址
  addr="localhost:3306"

  ##(required) MySQL 连接帐号密码,只读权限即可
  user="root"
  password="Pa55W0rd"

  ##(required) 配置需采集的数据库,可配置多个
  [[inputs.binlog.sources.databases]] 

    ##(required) 数据库名
    db = "test"

    ##(required) 配置需采集的数据库表,可配置多个
    [[inputs.binlog.sources.databases.tables]] 
    # ##(required) 表名称
    name="user" 

    ##(optional) 采集后该表对应的指标集名,如果为空,默认会使用表名
    measurement=""

    ##(required) 指定表中哪些字段为指标
    fields=["column0"]

    ##(optional) 指定表中哪些字段为标签
    tags=["column1"]

    ##(optional) 设置需排除哪些 binlog 事件,默认 binlog 的 insert,update,delete 
    exclude_events=[]

注意:如果表名或者字段是关键字,请使用单引号进行配置,例如:name='\`user\`'tags=['\`column1\`']fields=['\`column0\`']

配置好后,重启 DataKit 即可生效

采集指标

采集数据的指标和标签根据用户的配置决定,但是每个指标默认会带上这些预置标签和指标:

  • _host_:采集的 MySQL 服务地址,标签
  • _collector_host_:安装采集器的主机的 hostname,标签
  • _db_:数据库名,标签
  • _event_:日志事件类型 insert,update,delete,标签
  • _table_:表名,标签
  • _logtime_:日志产生时间,指标

问题排查

如果配置好重启 DataKit 后仍然无数据,请检查以下问题:

  1. MySQL binlog 是否开启
  2. DataKit 所在服务器是否能访问配置文件中提供的 MySQL 地址
  3. 帐号密码是否正确
  4. 在配置的 field 和 tag 中是否有 MySQL 关键字。如果用关键字,请加上 ``。例如 fields=["\`select\`"]

如果仍然无法上报数据,请开启 DataKit 的 Debug 日志(将 datakit.conf 中的 loglevel 设置为 debug,然后重启),查看datakit.log 中的日志进行排查。