本文介紹如何建立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控制台
單擊控制台頁面右側的快速接入資料卡片。

在接入資料頁面,選擇 MySQL查詢結果-外掛程式 。
選擇目標Project和Logstore,單擊下一步。
在機器組配置頁面,配置機器組。
根據實際需求,選擇使用情境和安裝環境。
重要無論是否已有機器組,都必鬚根據實際需求正確選擇使用情境和安裝環境,這將影響後續的頁面配置。
確認目標機器組已在應用機器組地區,單擊下一步。
已有機器組
從源機器組列表選擇目標機器組。

沒有可用機器組
單擊建立機器組,在建立機器組面板設定相關參數。機器組標識分為IP地址和使用者自訂標識,更多資訊請參見建立使用者自訂標識機器組(推薦)或建立IP地址機器組。
重要建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在資料來源設定頁簽中,設定配置名稱和外掛程式配置,然後單擊下一步。
您可以通過表單配置方式或編輯器配置(JSON配置)方式完成資料來源設定。詳細配置,請參見MySQL 輸入外掛程式。

建立索引和預覽資料,然後單擊下一步。Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動建立欄位索引,或者單擊自動產生索引,Log Service將自動產生欄位索引。更多資訊,請參見建立索引。
重要如果需要查詢日誌中的所有欄位,建議使用全文索引。如果只需查詢部分欄位、建議使用欄位索引,減少索引流量。如果需要對欄位進行分析(SELECT語句),必須建立欄位索引。
單擊查詢日誌,系統將跳轉至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效後,才能在原始日誌頁簽中,查看已採集到的日誌。更多資訊,請參見查詢與分析快速指引。
CRD-AliyunPipelineConfig
本文以ACK叢集為例,介紹如何建立採集配置。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面中,單擊目的地組群操作列下的更多,然後單擊管理叢集。
建立名為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: logsType
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語句。
設定CheckPoint為true時,Statement中SELECT語句的where條件中必須包含CheckPoint列(CheckPointColumn)。支援使用半形問號(?)表示替換符,與CheckPoint列配合使用。
例如設定CheckPointColumn為id,設定CheckPointStart為0,設定StateMent為
SELECT * from ... where id > ?。則每次採集後,系統會儲存最後一條資料的ID作為Checkpoint,下次採集時查詢語句中的半形問號(?)將被替換為該Checkpoint對應的ID。Limit
boolean(可選)是否使用Limit分頁。
true:使用。
false(預設值):不使用。
建議使用Limit進行分頁。設定Limit為true後,進行SQL查詢時,系統將自動在SELECT語句中追加LIMIT語句。
PageSize
int(可選)分頁大小,Limit 為 true 時必須配置。
MaxSyncSize
int(可選)每次同步最大記錄數。預設值為 0,表示無限制。
CheckPoint
boolean(可選)是否使用 CheckPoint。
true:使用。
false(預設值):不使用。
CheckPoint 可作為下次採集資料的起點,實現資料增量採集。
CheckPointColumn
string(可選)CheckPoint列名稱。
設定CheckPoint為true時,需要配置。
警告該列的值必須遞增,否則可能會出現資料漏採集問題(每次查詢結果中的最大值將作為下次查詢的輸入)。
CheckPointColumnType
string(可選)設定CheckPoint為true時,需要配置。
CheckPoint列的資料類型,支援int和time。int類型的內部儲存為int64,time類型支援MySQL的date、datetime、time類型。
CheckPointStart
string(可選)設定CheckPoint為true時,需要配置。
CheckPoint列的初始值。
CheckPointSavePerPage
boolean(可選)設定CheckPoint為true時,需要配置。
是否每次分頁時儲存一次CheckPoint。
true(預設值):每次分頁時儲存一次CheckPoint。
false:每次同步完成後儲存一次CheckPoint。
IntervalMs
int(必選)同步間隔,預設值為60000,單位:ms。
執行
kubectl apply -f example-k8s-file.yaml,Logtail開始採集MySQL資料。登入Log Service控制台,在Project列表,單擊開啟目標Project。
在對應的日誌庫右側的
表徵圖,選擇查詢分析,查看查詢日誌。