全部產品
Search
文件中心

Simple Log Service:採集MySQL查詢結果

更新時間:Dec 25, 2025

本文介紹如何建立Logtail採集配置來採集MySQL查詢結果。

前提條件

  • 已在伺服器上安裝Linux Logtail 0.16.0及以上版本或Windows Logtail 1.0.0.8及以上版本。具體操作,請參見安裝、運行、升級、卸載Logtail

    重要

    請確保用於安裝Logtail的伺服器可串連目標MySQL資料庫。

  • 在MySQL資料庫中,設定白名單為Logtail所在伺服器的IP地址。

    例如RDS MySQL資料庫的白名單設定,請參見設定IP白名單

  • 使用CRD-AliyunPipelineConfig採集MySQL查詢結果,需要確保叢集已經安裝Logtail組件。

    具體操作,請參見安裝Logtail組件

操作步驟

Log Service控制台

  1. 登入Log Service控制台

  2. 單擊控制台頁面右側的快速接入資料卡片。

    image

  3. 接入資料頁面,選擇 MySQL查詢結果-外掛程式

  4. 選擇目標Project和Logstore,單擊下一步

  5. 機器組配置頁面,配置機器組。

    1. 根據實際需求,選擇使用情境和安裝環境。

      重要

      無論是否已有機器組,都必鬚根據實際需求正確選擇使用情境和安裝環境,這將影響後續的頁面配置。

    2. 確認目標機器組已在應用機器組地區,單擊下一步

      已有機器組

      源機器組列表選擇目標機器組。

      image

      沒有可用機器組

      單擊建立機器組,在建立機器組面板設定相關參數。機器組標識分為IP地址使用者自訂標識,更多資訊請參見建立使用者自訂標識機器組(推薦)建立IP地址機器組

      重要

      建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。

  6. 資料來源設定頁簽中,設定配置名稱外掛程式配置,然後單擊下一步

    您可以通過表單配置方式或編輯器配置(JSON配置)方式完成資料來源設定。詳細配置,請參見MySQL 輸入外掛程式

    image

  7. 建立索引和預覽資料,然後單擊下一步。Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動建立欄位索引,或者單擊自動產生索引,Log Service將自動產生欄位索引。更多資訊,請參見建立索引

    重要

    如果需要查詢日誌中的所有欄位,建議使用全文索引。如果只需查詢部分欄位、建議使用欄位索引,減少索引流量。如果需要對欄位進行分析(SELECT語句),必須建立欄位索引。

  8. 單擊查詢日誌,系統將跳轉至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效後,才能在原始日誌頁簽中,查看已採集到的日誌。更多資訊,請參見查詢與分析快速指引

CRD-AliyunPipelineConfig

本文以ACK叢集為例,介紹如何建立採集配置。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面中,單擊目的地組群操作列下的更多,然後單擊管理叢集

  3. 建立名為example-k8s-file.yaml的檔案。

    參數說明

    樣本

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    # 建立一個 ClusterAliyunPipelineConfig
    kind: ClusterAliyunPipelineConfig
    metadata:
      # 設定資源名,在當前Kubernetes叢集內唯一。該名稱也是建立出的iLogtail採集配置名
      name: example-crd-mysql
    spec:
      # 指定目標project
      project:
        name: k8s-log-clusterid
      # 建立用於儲存日誌的 Logstore
      logstores:
        - name: crd-mysql-test
      # 定義iLogtail採集配置
      config:
        # 日誌範例(可不填寫)
        sample: ''
        inputs:
        - Type: service_mysql
          Address: "rm-*.mysql.rds.aliyuncs.com"
          CheckPoint: true
          CheckPointColumn: id
          CheckPointColumnType: int
          CheckPointSavePerPage: true
          CheckPointStart: "0"
          Database: ****
          IntervalMs: 1000
          Limit: true
          MaxSyncSize: 100
          PageSize: 100
          User: ****
          Password: *******
          StateMent: "select * from test where id > ? order by id"
        # 定義輸出外掛程式
        flushers:
          # 使用flusher_sls外掛程式輸出到指定Logstore。
          - Type: flusher_sls
            Logstore: crd-mysql-test
            Endpoint: cn-hangzhou.log.aliyuncs.com
            Region: cn-hangzhou
            TelemetryType: logs

    Type string(必選)

    資料來源類型,固定為service_mysql

    Address string(可選)

    MySQL地址,例如rm-****.mysql.rds.aliyuncs.com

    預設值為127.0.0.1:3306

    地址類型:

    • 內網(專用網路):僅用於同VPC下的執行個體(ECS、ACK等阿里雲執行個體)內網訪問。

    • 外網地址:業務部署在其他VPC或本地機器上,需要通過外網地址訪問執行個體,但您需提前手動申請外網地址。具體操作,請參見申請或釋放外網地址

    說明

    由於外網網路易波動,建議在業務中使用內網地址進行串連。

    User string(可選)

    用於登入MySQL資料庫的使用者名稱稱。預設值為root

    Password string(可選)

    登入MySQL資料庫的使用者密碼。

    如果安全需求較高,建議將使用者名稱稱和密碼配置為xxx,待採集配置同步至本地機器後,在本地檔案/usr/local/ilogtail/user_log_config.json中找到對應配置進行修改。具體操作,請參見採集MySQL查詢結果

    重要

    如果您在控制台上修改了此參數,同步至本地後會覆蓋本地的配置。

    DataBase string(可選)

    MySQL資料庫名稱。

    DialTimeOutMs int(可選)

    串連MySQL資料庫逾時時間,預設值為5000,單位:ms。

    ReadTimeOutMs int(可選)

    讀取MySQL查詢結果的逾時時間,預設值為5000,單位:ms。

    StateMent string(可選)

    SELECT語句。

    設定CheckPointtrue時,Statement中SELECT語句的where條件中必須包含CheckPoint列(CheckPointColumn)。支援使用半形問號(?)表示替換符,與CheckPoint列配合使用。

    例如設定CheckPointColumnid,設定CheckPointStart0,設定StateMentSELECT * from ... where id > ?。則每次採集後,系統會儲存最後一條資料的ID作為Checkpoint,下次採集時查詢語句中的半形問號(?)將被替換為該Checkpoint對應的ID。

    Limit boolean(可選)

    是否使用Limit分頁。

    • true:使用。

    • false(預設值):不使用。

    建議使用Limit進行分頁。設定Limittrue後,進行SQL查詢時,系統將自動在SELECT語句中追加LIMIT語句。

    PageSize int(可選)

    分頁大小,Limit 為 true 時必須配置。

    MaxSyncSize int(可選)

    每次同步最大記錄數。預設值為 0,表示無限制。

    CheckPoint boolean(可選)

    是否使用 CheckPoint。

    • true:使用。

    • false(預設值):不使用。

    CheckPoint 可作為下次採集資料的起點,實現資料增量採集。

    CheckPointColumn string(可選)

    CheckPoint列名稱。

    設定CheckPointtrue時,需要配置。

    警告

    該列的值必須遞增,否則可能會出現資料漏採集問題(每次查詢結果中的最大值將作為下次查詢的輸入)。

    CheckPointColumnType string(可選)

    設定CheckPointtrue時,需要配置。

    CheckPoint列的資料類型,支援int和time。int類型的內部儲存為int64,time類型支援MySQL的date、datetime、time類型。

    CheckPointStart string(可選)

    設定CheckPointtrue時,需要配置。

    CheckPoint列的初始值。

    CheckPointSavePerPage boolean(可選)

    設定CheckPointtrue時,需要配置。

    是否每次分頁時儲存一次CheckPoint。

    • true(預設值):每次分頁時儲存一次CheckPoint。

    • false:每次同步完成後儲存一次CheckPoint。

    IntervalMs int(必選)

    同步間隔,預設值為60000,單位:ms。

  4. 執行kubectl apply -f example-k8s-file.yaml,Logtail開始採集MySQL資料。

  5. 登入Log Service控制台,在Project列表,單擊開啟目標Project。

  6. 在對應的日誌庫右側的表徵圖表徵圖,選擇查詢分析,查看查詢日誌。

    image