日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

采集MySQL Binlog(計(jì)劃棄用)

更新時(shí)間:

本文介紹通過(guò)Logtail采集MySQL Binlog的操作步驟。

重要

日志服務(wù)后續(xù)計(jì)劃不再支持MySQL Binlog采集插件,當(dāng)前已不支持新用戶新建采集配置,原有的采集配置仍能正常使用,建議您使用DataWorks或Flink進(jìn)行采集。具體操作,請(qǐng)參見(jiàn)MySQLMySQL數(shù)據(jù)源

原理

Logtail內(nèi)部實(shí)現(xiàn)了MySQL Slave節(jié)點(diǎn)的交互協(xié)議,具體流程如下所示。

  1. Logtail將自己偽裝為MySQL Slave節(jié)點(diǎn)向MySQL master節(jié)點(diǎn)發(fā)送dump請(qǐng)求。

  2. MySQL master節(jié)點(diǎn)收到dump請(qǐng)求后,會(huì)將自身的Binlog實(shí)時(shí)發(fā)送給Logtail。

  3. Logtail對(duì)Binlog進(jìn)行事件解析、過(guò)濾、數(shù)據(jù)解析等操作,并將解析好的數(shù)據(jù)上傳到日志服務(wù)。

實(shí)現(xiàn)原理

功能特點(diǎn)

  • 通過(guò)Binlog增量采集數(shù)據(jù)庫(kù)的更新操作數(shù)據(jù),性能優(yōu)越。支持RDS等MySQL協(xié)議的數(shù)據(jù)庫(kù)。

  • 支持多種數(shù)據(jù)庫(kù)過(guò)濾方式。

  • 支持設(shè)置Binlog位點(diǎn)。

  • 支持通過(guò)Checkpoint機(jī)制同步保存狀態(tài)。

使用限制

  • Logtail 1.0.31及以上版本支持采集MySQL 8.0的Binlog。

  • MySQL必須開(kāi)啟Binlog,且Binlog必須為row模式(RDS默認(rèn)已開(kāi)啟Binlog)。

    # 查看是否開(kāi)啟Binlog
    mysql> show variables like "log_bin";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin       | ON    |
    +---------------+-------+
    1 row in set (0.02 sec)
    # 查看Binlog類型
    mysql> show variables like "binlog_format";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | binlog_format | ROW   |
    +---------------+-------+
    1 row in set (0.03 sec)
  • ServerID唯一,即需要同步的MySQL的Slave ID唯一。

  • RDS限制

    • 無(wú)法直接在RDS服務(wù)器上安裝Logtail,您需要將Logtail安裝在能連通RDS實(shí)例的服務(wù)器上。

    • RDS備庫(kù)不支持Binlog采集,您需要配置RDS主庫(kù)進(jìn)行采集。

  • 包括數(shù)據(jù)庫(kù)版本升級(jí)、表結(jié)構(gòu)變更、磁盤變更等操作,可能造成數(shù)據(jù)同步中斷。如遇此場(chǎng)景,可嘗試刪除logtail的checkpoint目錄后,重啟logtail。如果問(wèn)題仍然存在,推薦您使用DataWorks或Flink進(jìn)行采集。checkpoint目錄位置默認(rèn)為/etc/ilogtail/checkpoint

應(yīng)用場(chǎng)景

適用于數(shù)據(jù)量較大且性能要求較高的數(shù)據(jù)同步場(chǎng)景。

  • 增量訂閱數(shù)據(jù)庫(kù)變動(dòng),進(jìn)行實(shí)時(shí)查詢與分析。

  • 數(shù)據(jù)庫(kù)操作審計(jì)。

  • 使用日志服務(wù)對(duì)數(shù)據(jù)庫(kù)更新信息進(jìn)行自定義查詢分析、可視化、對(duì)接下游流計(jì)算、導(dǎo)入MaxCompute離線計(jì)算、導(dǎo)入OSS長(zhǎng)期存儲(chǔ)等操作。

注意事項(xiàng)

建議您適當(dāng)放開(kāi)對(duì)Logtail的資源限制以應(yīng)對(duì)流量突增等情況,避免Logtail因?yàn)橘Y源超限被強(qiáng)制重啟,對(duì)您的數(shù)據(jù)造成不必要的風(fēng)險(xiǎn)。

您可以通過(guò)/usr/local/ilogtail/ilogtail_config.json文件修改相關(guān)參數(shù)。更多信息,請(qǐng)參見(jiàn)設(shè)置Logtail啟動(dòng)參數(shù)

如下示例表示將CPU的資源限制放寬到雙核,將內(nèi)存資源的限制放寬到2048MB。

{
    ...
    "cpu_usage_limit":2,
    "mem_usage_limit":2048,

    ...
}

數(shù)據(jù)可靠性

建議您啟用MySQL服務(wù)器的全局事務(wù)ID(GTID)功能,并將Logtail升級(jí)到0.16.15及以上版本以保證數(shù)據(jù)可靠性,避免因主備切換造成的數(shù)據(jù)重復(fù)采集。

  • 數(shù)據(jù)漏采集:Logtail與MySQL服務(wù)器之間的網(wǎng)絡(luò)長(zhǎng)時(shí)間中斷時(shí),可能會(huì)產(chǎn)生數(shù)據(jù)漏采集情況。

    如果Logtail和MySQL master節(jié)點(diǎn)之間的網(wǎng)絡(luò)發(fā)生中斷,MySQL master節(jié)點(diǎn)仍會(huì)不斷地產(chǎn)生新的Binlog數(shù)據(jù)并且回收舊的Binlog數(shù)據(jù)。當(dāng)網(wǎng)絡(luò)恢復(fù),Logtail與MySQL master節(jié)點(diǎn)重連成功后,Logtail會(huì)使用自身的checkpoint向MySQL master節(jié)點(diǎn)請(qǐng)求更多的Binlog數(shù)據(jù)。但由于長(zhǎng)時(shí)間的網(wǎng)絡(luò)中斷,它所需要的數(shù)據(jù)很可能已經(jīng)被回收,這時(shí)會(huì)觸發(fā)Logtail的異常恢復(fù)機(jī)制。在異常恢復(fù)機(jī)制中,Logtail會(huì)從MySQL master節(jié)點(diǎn)獲取最近的Binlog位置,以它為起點(diǎn)繼續(xù)采集,這樣就會(huì)跳過(guò)checkpoint和最近的Binlog位置之間的數(shù)據(jù),導(dǎo)致數(shù)據(jù)漏采集。

  • 數(shù)據(jù)重復(fù)采集:當(dāng)MySQL master節(jié)點(diǎn)和slave節(jié)點(diǎn)之間的Binlog序號(hào)不同步時(shí),發(fā)生了主備切換事件,可能會(huì)產(chǎn)生數(shù)據(jù)重復(fù)采集情況。

    在MySQL主備同步的設(shè)置下,MySQL master節(jié)點(diǎn)會(huì)將產(chǎn)生的Binlog同步給MySQL slave節(jié)點(diǎn),MySQL slave節(jié)點(diǎn)收到后存儲(chǔ)到本地的Binlog文件中。當(dāng)MySQL master節(jié)點(diǎn)和slave節(jié)點(diǎn)之間的Binlog序號(hào)不同步時(shí),發(fā)生了主備切換事件,以Binlog文件名和文件大小偏移量作為checkpoint的機(jī)制將導(dǎo)致數(shù)據(jù)重復(fù)采集。

    例如,有一段數(shù)據(jù)在MySQL master節(jié)點(diǎn)上位于(binlog.100, 4)(binlog.105, 4)之間,而在MySQL slave節(jié)點(diǎn)上位于(binlog.1000, 4)(binlog.1005, 4)之間,并且Logtail已經(jīng)從MySQL master節(jié)點(diǎn)獲取了這部分?jǐn)?shù)據(jù),將本地checkpoint更新到了(binlog.105, 4)。如果此時(shí)發(fā)生了主備切換且無(wú)任何異常發(fā)生,Logtail將會(huì)繼續(xù)使用本地checkpoint(binlog.105, 4)去向新的MySQL master節(jié)點(diǎn)采集binlog。但是因?yàn)樾碌腗ySQL master上的(binlog.1000, 4)(binlog.1005, 4)這部分?jǐn)?shù)據(jù)的序號(hào)都大于Logtail所請(qǐng)求的序號(hào),MySQL master將它們返回給Logtail,導(dǎo)致重復(fù)采集。

創(chuàng)建Logtail配置

  1. 登錄日志服務(wù)控制臺(tái)

  2. 接入數(shù)據(jù)區(qū)域,選擇MySQL BinLog-插件

  3. 選擇目標(biāo)Project和Logstore,單擊下一步
  4. 創(chuàng)建機(jī)器組。
    • 如果您已有可用的機(jī)器組,請(qǐng)單擊使用現(xiàn)有機(jī)器組
    • 如果您還沒(méi)有可用的機(jī)器組,請(qǐng)執(zhí)行以下操作(以ECS為例)。
      1. ECS機(jī)器頁(yè)簽中,通過(guò)手動(dòng)選擇實(shí)例方式選擇目標(biāo)ECS實(shí)例,單擊創(chuàng)建

        具體操作,請(qǐng)參見(jiàn)安裝Logtail(ECS實(shí)例)

        重要 如果您的服務(wù)器是與日志服務(wù)屬于不同賬號(hào)的ECS、其他云廠商的服務(wù)器和自建IDC時(shí),您需要手動(dòng)安裝Logtail。更多信息,請(qǐng)參見(jiàn)安裝Logtail(Linux系統(tǒng))安裝Logtail(Windows系統(tǒng))

        手動(dòng)安裝Logtail后,您必須在該服務(wù)器上手動(dòng)配置用戶標(biāo)識(shí)。具體操作,請(qǐng)參見(jiàn)配置用戶標(biāo)識(shí)

      2. 安裝完成后,單擊確認(rèn)安裝完畢
      3. 創(chuàng)建機(jī)器組頁(yè)面,輸入名稱,單擊下一步

        日志服務(wù)支持創(chuàng)建IP地址機(jī)器組和用戶自定義標(biāo)識(shí)機(jī)器組,詳細(xì)參數(shù)說(shuō)明請(qǐng)參見(jiàn)創(chuàng)建IP地址機(jī)器組創(chuàng)建用戶自定義標(biāo)識(shí)機(jī)器組

  5. 確認(rèn)目標(biāo)機(jī)器組已在應(yīng)用機(jī)器組區(qū)域,單擊下一步

    重要

    創(chuàng)建機(jī)器組后立刻應(yīng)用,可能因?yàn)檫B接未生效,導(dǎo)致心跳為FAIL,您可單擊自動(dòng)重試。如果還未解決,請(qǐng)參見(jiàn)Logtail機(jī)器組無(wú)心跳進(jìn)行排查。

  6. 設(shè)置數(shù)據(jù)源,然后單擊下一步

    您可以通過(guò)表單配置方式或JSON配置方式完成數(shù)據(jù)源設(shè)置。更多信息,請(qǐng)參見(jiàn)Logtail配置詳情

  7. 預(yù)覽數(shù)據(jù)及創(chuàng)建索引,然后單擊下一步
    日志服務(wù)默認(rèn)開(kāi)啟全文索引。您也可以根據(jù)采集到的日志,手動(dòng)創(chuàng)建字段索引,或者單擊自動(dòng)生成索引,日志服務(wù)將自動(dòng)生成字段索引。更多信息,請(qǐng)參見(jiàn)創(chuàng)建索引
    重要 如果您要查詢和分析日志,那么全文索引和字段索引必須至少啟用一種。同時(shí)啟用時(shí),以字段索引為準(zhǔn)。
  8. 單擊查詢?nèi)罩?/b>,系統(tǒng)將跳轉(zhuǎn)至Logstore查詢分析頁(yè)面。
    您需要等待1分鐘左右,待索引生效后,才能在原始日志頁(yè)簽中,查看已采集到的日志。更多信息,請(qǐng)參見(jiàn)查詢和分析日志

Logtail配置詳情

您可以通過(guò)表單配置方式或JSON配置方式完成數(shù)據(jù)源設(shè)置。

表單配置方式

數(shù)據(jù)源設(shè)置步驟中,完成如下配置。

參數(shù)

說(shuō)明

配置名稱

Logtail配置名稱。

數(shù)據(jù)庫(kù)主機(jī)

數(shù)據(jù)庫(kù)所在主機(jī)的地址。

數(shù)據(jù)庫(kù)端口

數(shù)據(jù)庫(kù)的端口號(hào)。

數(shù)據(jù)庫(kù)用戶名

登錄數(shù)據(jù)庫(kù)的用戶名稱。

需保證配置的用戶具有數(shù)據(jù)庫(kù)讀權(quán)限以及MySQL REPLICATION權(quán)限,示例如下。

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

數(shù)據(jù)庫(kù)密碼

登錄數(shù)據(jù)庫(kù)的賬號(hào)密碼。

如果安全需求較高,建議將訪問(wèn)用戶名和密碼配置為xxx,待配置同步至本地機(jī)器后,在本地文件/usr/local/ilogtail/user_log_config.json中找到對(duì)應(yīng)配置進(jìn)行修改。具體操作,請(qǐng)參見(jiàn)修改本地配置

重要

如果您在控制臺(tái)上修改了此參數(shù),同步至本地后會(huì)覆蓋本地的配置。

ServerID

Logtail偽裝成的MySQL Slave的ID。

重要

ServerID對(duì)于MySQL數(shù)據(jù)庫(kù)必須唯一,否則會(huì)采集失敗。

包含的表

包含的表名稱(包括數(shù)據(jù)庫(kù)名稱,例如test_db.test_table),支持正則表達(dá)式。

  • 如果需要完全匹配,請(qǐng)加上前綴^,加上后綴$,例如^test_db\\.test_table$

  • 如果需要采集所有表,請(qǐng)?jiān)O(shè)置為.*\\..*

  • 如果某個(gè)表名稱不符合包含的表中的任一條件,則該表中的數(shù)據(jù)不會(huì)被采集。

忽略的表

忽略的表名稱(包括數(shù)據(jù)庫(kù)名稱,例如test_db.test_table),支持正則表達(dá)式。

  • 如果需要完全匹配,請(qǐng)加上前綴^,加上后綴$,例如^test_db\\.test_table$

  • 如果某個(gè)表符合忽略的表中的任一條件,則該表中的數(shù)據(jù)不會(huì)被采集。

首次采集的Binlog文件名

首次采集的Binlog文件名。不設(shè)置時(shí),默認(rèn)從當(dāng)前時(shí)間點(diǎn)開(kāi)始采集。

如果想從指定位置開(kāi)始采集,可以查看當(dāng)前的Binlog文件以及文件大小偏移量,并將首次采集的Binlog文件名首次采集的Binlog文件的偏移量設(shè)置成對(duì)應(yīng)的值,示例如下。

# 設(shè)置首次采集的Binlog文件名為mysql-bin.000063, 設(shè)置首次采集的Binlog文件的偏移量為0。
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000063 |       241 |
| mysql-bin.000064 |       241 |
| mysql-bin.000065 |       241 |
| mysql-bin.000066 |     10778 |
+------------------+-----------+
4 rows in set (0.02 sec)
說(shuō)明

指定首次采集的Binlog文件名后,第一次采集會(huì)產(chǎn)生較大流量。

首次采集的Binlog文件的偏移量

首次采集的Binlog文件的偏移量。

是否附加全局事務(wù)ID

選中該選項(xiàng),則上傳的數(shù)據(jù)中將附加全局事務(wù)ID

是否采集insert事件的數(shù)據(jù)

選中該選項(xiàng),則Logtail將采集insert事件數(shù)據(jù)。

是否采集update事件的數(shù)據(jù)

選中該選項(xiàng),則Logtail將采集update事件數(shù)據(jù)。

是否采集delete事件的數(shù)據(jù)

選中該選項(xiàng),則Logtail將采集delete事件數(shù)據(jù)。

是否采集DDL事件數(shù)據(jù)

選中該選項(xiàng),則Logtail將采集DDL(data definition language)事件數(shù)據(jù)。

說(shuō)明

該選項(xiàng)不支持通過(guò)包含的表忽略的表過(guò)濾。

編碼方式

數(shù)據(jù)的編碼方式。

是否將text類型的數(shù)據(jù)轉(zhuǎn)換成字符串

選中該選項(xiàng),則Logtail會(huì)將text類型的數(shù)據(jù)轉(zhuǎn)換成字符串。

是否將事件數(shù)據(jù)打包成JSON格式

選中該選項(xiàng),則Logtail會(huì)將事件數(shù)據(jù)以JSON格式集中打包到dataold_data兩個(gè)字段中,其中old_data字段僅在row_update事件中有意義。

例如數(shù)據(jù)表有三列數(shù)據(jù)c1、c2、c3,并且取消選中是否將事件數(shù)據(jù)打包成JSON格式,則row_insert事件數(shù)據(jù)中會(huì)有c1c2c3三個(gè)字段。而選中是否將事件數(shù)據(jù)打包成JSON格式時(shí),c1,c2,c3會(huì)被統(tǒng)一打包為data字段,值為{"c1":"...", "c2": "...", "c3": "..."}

重要

Logtail 0.16.19及以上版本支持該功能。

是否采集事件的元數(shù)據(jù)

選中該選項(xiàng),則Logtail將采集事件的元數(shù)據(jù)。Binlog事件的元數(shù)據(jù)包括event_time、event_log_position、event_size和event_server_id。

重要

Logtail 0.16.21及以上版本支持該功能。

數(shù)據(jù)處理

處理配置,用于解析數(shù)據(jù),例如提取字段、提取日志時(shí)間、脫敏數(shù)據(jù)、過(guò)濾日志等。可選項(xiàng),您可以配置一種或多種處理方式。更多信息,請(qǐng)參見(jiàn)使用Logtail插件處理數(shù)據(jù)

JSON配置方式

插件配置中填寫您的Logtail配置信息,示例如下所示。

  • inputs為數(shù)據(jù)源配置,必選項(xiàng)。

    重要

    一個(gè)inputs中只允許配置一個(gè)類型的數(shù)據(jù)源。

  • processors為處理配置,用于解析數(shù)據(jù)。可選項(xiàng),您可以配置一種或多種處理方式。

    如果當(dāng)前的inputs配置無(wú)法滿足日志解析需求,您可以在插件配置中添加processors配置,即添加Logtail插件處理數(shù)據(jù)。例如提取字段、提取日志時(shí)間、脫敏數(shù)據(jù)、過(guò)濾日志等。更多信息,請(qǐng)參見(jiàn)使用Logtail插件處理數(shù)據(jù)

{
 "inputs": [
     {
         "type": "service_canal",
         "detail": {
             "Host": "************.mysql.rds.aliyuncs.com",
             "Port": 3306,
             "User" : "user1",
             "ServerID" : 56321,
             "Password": "*******",
             "IncludeTables": [
                 "user_info\\..*"
             ],
             "ExcludeTables": [
                 ".*\\.\\S+_inner"
             ],
             "TextToString" : true,
             "EnableDDL" : true
         }
     }
 ]
}

參數(shù)

類型

是否必須

說(shuō)明

type

string

數(shù)據(jù)源類型,固定為service_canal

Host

string

數(shù)據(jù)庫(kù)所在主機(jī)地址,默認(rèn)值為127.0.0.1

Port

int

數(shù)據(jù)庫(kù)端口,默認(rèn)值為3306

User

string

登錄數(shù)據(jù)庫(kù)用戶名稱,默認(rèn)值為root

需保證配置的用戶具有數(shù)據(jù)庫(kù)讀權(quán)限以及MySQL REPLICATION權(quán)限,示例如下。

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

Password

string

登錄數(shù)據(jù)庫(kù)的用戶密碼,默認(rèn)值為空。

如果安全需求較高,建議將訪問(wèn)用戶名和密碼配置為xxx,待配置同步至本地機(jī)器后,在本地文件/usr/local/ilogtail/user_log_config.json中找到對(duì)應(yīng)配置進(jìn)行修改。具體操作,請(qǐng)參見(jiàn)修改本地配置

重要

如果您在控制臺(tái)上修改了此參數(shù),同步至本地后會(huì)覆蓋本地的配置。

ServerID

int

Logtail偽裝成的Mysql Slave的ID。默認(rèn)值為125

重要

ServerID對(duì)于MySQL數(shù)據(jù)庫(kù)必須唯一,否則會(huì)采集失敗。

IncludeTables

string數(shù)組

包含的表名稱(包括數(shù)據(jù)庫(kù)名稱,例如test_db.test_table),支持正則表達(dá)式。

  • 如果需要完全匹配,請(qǐng)加上前綴^,加上后綴$,例如^test_db\\.test_table$

  • 如果需要采集所有表,請(qǐng)?jiān)O(shè)置為.*\\..*

  • 如果某個(gè)表名稱不符合IncludeTables中的任一條件,則該表中的數(shù)據(jù)不會(huì)被采集。

ExcludeTables

string 數(shù)組

忽略的表名稱(包括數(shù)據(jù)庫(kù)名稱,例如test_db.test_table),支持正則表達(dá)式。

  • 如果需要完全匹配,請(qǐng)加上前綴^,加上后綴$,例如^test_db\\.test_table$

  • 如果某個(gè)表符合ExcludeTables中的任一條件,則該表中的數(shù)據(jù)不會(huì)被采集。

StartBinName

string

首次采集的Binlog文件名。默認(rèn)從當(dāng)前時(shí)間點(diǎn)開(kāi)始采集。

如果想從指定位置開(kāi)始采集,可以查看當(dāng)前的Binlog文件以及文件大小偏移量,并將StartBinNameStartBinlogPos設(shè)置成對(duì)應(yīng)的值,示例如下。

# 設(shè)置StartBinName為"mysql-bin.000063", 設(shè)置StartBinlogPos為0
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000063 |       241 |
| mysql-bin.000064 |       241 |
| mysql-bin.000065 |       241 |
| mysql-bin.000066 |     10778 |
+------------------+-----------+
4 rows in set (0.02 sec)
說(shuō)明

指定StartBinName后,第一次采集會(huì)產(chǎn)生較大流量。

StartBinlogPos

int

首次采集的Binlog文件的偏移量,默認(rèn)值為0

EnableGTID

bool

上傳的數(shù)據(jù)中是否附加全局事務(wù)ID

  • true(默認(rèn)值):附加全局事務(wù)ID。

  • false:不附加全局事務(wù)ID。

EnableInsert

bool

是否采集insert事件的數(shù)據(jù)。

  • true(默認(rèn)值):采集。

  • false:不采集。

EnableUpdate

bool

是否采集update事件的數(shù)據(jù)。

  • true(默認(rèn)值):采集。

  • false:不采集。

EnableDelete

bool

是否采集delete事件的數(shù)據(jù)。

  • true(默認(rèn)值):采集。

  • false:不采集。

EnableDDL

bool

是否采集DDL(data definition language)事件數(shù)據(jù)。

  • true:采集。

  • false(默認(rèn)值):不采集。

說(shuō)明

該選項(xiàng)不支持通過(guò)IncludeTablesExcludeTables過(guò)濾。

Charset

string

數(shù)據(jù)的編碼方式。默認(rèn)值為utf8

TextToString

bool

是否將text類型的數(shù)據(jù)轉(zhuǎn)換成字符串。

  • true:轉(zhuǎn)換。

  • false(默認(rèn)值):不轉(zhuǎn)換。

PackValues

bool

是否將事件數(shù)據(jù)以JSON格式集中打包到dataold_data兩個(gè)字段中,其中old_data僅在row_update事件中有意義。

  • true:打包。

  • false(默認(rèn)值):不打包。

例如數(shù)據(jù)表有三列數(shù)據(jù)c1、c2、c3,并且設(shè)置PackValuesfalse,則row_insert事件數(shù)據(jù)中會(huì)有c1c2c3三個(gè)字段。而設(shè)置PackValuestrue時(shí),c1、c2、c3會(huì)被統(tǒng)一打包為data字段,值為{"c1":"...", "c2": "...", "c3": "..."}

重要

Logtail 0.16.19及以上版本支持該功能。

EnableEventMeta

bool

是否采集事件的元數(shù)據(jù)。 Binlog事件的元數(shù)據(jù)包括event_time、event_log_position、event_size和event_server_id。

  • true:采集。

  • false(默認(rèn)值):不采集。

重要

Logtail 0.16.21及以上版本支持該功能。

修改本地配置

如果您沒(méi)有在插件配置中輸入真實(shí)的Host、User、Password等信息,可以在插件配置下發(fā)到本地后進(jìn)行手動(dòng)修改。

  1. 登錄Logtail所在服務(wù)器。

  2. 打開(kāi)/usr/local/ilogtail/user_log_config.json文件,找到service_canal關(guān)鍵字,修改HostUserPassword等字段。

  3. 執(zhí)行以下命令重啟Logtail。

    sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start

問(wèn)題排查

使用Logtail采集日志后,如果預(yù)覽頁(yè)面或查詢頁(yè)面無(wú)數(shù)據(jù),您可以參見(jiàn)Logtail采集日志失敗的排查思路進(jìn)行排查。

數(shù)據(jù)庫(kù)表和日志樣例

例如對(duì)user_info數(shù)據(jù)庫(kù)下的specialalarm表分別執(zhí)行INSERTUPDATEDELETE操作,對(duì)應(yīng)的數(shù)據(jù)庫(kù)表結(jié)構(gòu)、數(shù)據(jù)庫(kù)操作及日志樣例如下所示。

  • 表結(jié)構(gòu)樣例

    CREATE TABLE `specialalarm` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `time` datetime NOT NULL,
    `alarmtype` varchar(64) NOT NULL,
    `ip` varchar(16) NOT NULL,
    `count` int(11) unsigned NOT NULL,
    PRIMARY KEY (`id`),
    KEY `time` (`time`) USING BTREE,
    KEY `alarmtype` (`alarmtype`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=1;
  • 數(shù)據(jù)庫(kù)操作

    執(zhí)行INSERT、DELETE和UPDATE三種操作。

    insert into specialalarm (`time`, `alarmType`, `ip`, `count`) values(now(), "NO_ALARM", "10.10.**.***", 55);
    delete from specialalarm where id = 4829235  ;
    update specialalarm set ip = "10.11.***.**" where id = "4829234";

    zc.specialalarm創(chuàng)建一個(gè)索引。

    ALTER TABLE `zc`.`specialalarm` 
    ADD INDEX `time_index` (`time` ASC);
  • 日志樣例

    在查詢分析頁(yè)面,查看每種操作對(duì)應(yīng)的日志,日志樣例如下所示。

    • INSERT語(yǔ)句

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu*****  
      __topic__:    
      _db_:  zc  
      _event_:  row_insert  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:536  
      _host_:  *********.mysql.rds.aliyuncs.com  
      _id_:  113  
      _table_:  specialalarm  
      alarmtype:  NO_ALARM  
      count:  55  
      id:  4829235  
      ip:  10.10.***.***  
      time:  2017-11-01 12:31:41
    • DELETE語(yǔ)句

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu****
      __topic__:    
      _db_:  zc  
      _event_:  row_delete  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:537  
      _host_:  *********.mysql.rds.aliyuncs.com  
      _id_:  114  
      _table_:  specialalarm  
      alarmtype:  NO_ALARM  
      count:  55  
      id:  4829235  
      ip:  10.10.**.***
      time:  2017-11-01 12:31:41
    • UPDATE語(yǔ)句

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu****  
      __topic__:    
      _db_:  zc  
      _event_:  row_update  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:538  
      _host_:  *********.mysql.rds.aliyuncs.com  
      _id_:  115  
      _old_alarmtype:  NO_ALARM  
      _old_count:  55  
      _old_id:  4829234  
      _old_ip:  10.10.22.133  
      _old_time:  2017-10-31 12:04:54  
      _table_:  specialalarm  
      alarmtype:  NO_ALARM  
      count:  55  
      id:  4829234  
      ip:  10.11.***.***
      time:  2017-10-31 12:04:54
    • DDL(data definition language)語(yǔ)句

      __source__:  10.30.**.**  
      __tag__:__hostname__:  iZbp145dd9fccu****  
      __topic__:    
      _db_:  zc  
      _event_:  row_update  
      _gtid_:  7d2ea78d-b631-11e7-8afb-00163e0eef52:539  
      _host_:  *********.mysql.rds.aliyuncs.com  
      ErrorCode:  0
      ExecutionTime:  0
      Query:  ALTER TABLE `zc`.`specialalarm` 
      ADD INDEX `time_index` (`time` ASC)
      StatusVars:

    字段

    說(shuō)明

    _host_

    數(shù)據(jù)庫(kù)host名稱。

    _db_

    數(shù)據(jù)庫(kù)名稱。

    _table_

    表的名稱。

    _event_

    事件類型。

    _id_

    本次采集的自增ID,從0開(kāi)始,每次采集一個(gè)binlog事件后加1。

    _gtid_

    全局事務(wù)ID。

    _filename_

    Binlog文件名。

    _offset_

    Binlog文件大小偏移量,該值只會(huì)在每次commit后更新。