1. 程式人生 > >windows 安裝logstach進行同步mysql到Elasticsearch

windows 安裝logstach進行同步mysql到Elasticsearch

工作需要,要同步mysql資料到Elasticsearch,比較好的方案是使用logstach,還需要安裝一個logstash-input-jdbc外掛來進行同步

先從官網下載logstach,注意版本一定要一致,不然不支援

 

下載後解壓,進入bin目錄

新建一個logstash.conf檔案,檔名隨意取,啟動正確到自己檔名就行。我這裡是新建了一個mysql資料夾,再新建的一個mysql.conf

如果出現以下錯誤,有可能是這些問題:mysql.cnf檔案編碼格式很嚴格,必須是UTF-8無BOM模式編碼的,而且內容對空格等要求也很嚴格,換行後的檔案內容必須是tab的空格,鍵盤空格鍵不行(自己測試的)

如果新建的檔案不是,可以使用notpad++進行轉換

mysql.conf配置:

input {
	jdbc {
		jdbc_driver_library => "D:\repository\mysql\mysql-connector-java\5.1.40\mysql-connector-java-5.1.40.jar"
		jdbc_driver_class => "com.mysql.jdbc.Driver"
		jdbc_connection_string => "jdbc:mysql://211.149.199.68:3306/mypinyu?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false"
		jdbc_user => "root"
		jdbc_password => "
[email protected]
" # 定時器 多久執行一次SQL,預設是一分鐘 schedule => "* * * * *" #是否清除 last_run_metadata_path 的記錄,如果為真那麼每次都相當於從頭開始查詢所有的資料庫記錄 clean_run => "false" #或者以下方式指定sql檔案 :sql_last_value為1970-01-01 00:00:00 statement => "SELECT * FROM sys_user" # 執行的sql 檔案路徑+名稱 #statement_filepath => "C:\Users\admin\Desktop\logstash-5.0.2\bin\mysql\jdbc.sql" jdbc_paging_enabled => "true" jdbc_page_size => "100000" # 索引型別 type => "jdbc" } stdin{ } } #filter { json { source => "message" remove_field => ["message"] } } output { elasticsearch { hosts => "localhost:9200" index=> "mypinyu" document_id => "%{id}" } stdout{ # JSON格式輸出 codec => "json_lines" } }

hosts:elasticsearch的地址

index:同步資料過來的索引名稱

安裝logstash-input-jdbc:

進入logstach/bin目錄

命令:.\logstash-plugin.bat install logstash-input-jdbc

出現以下內容標識安裝成功

啟動logstach:

可以直接輸入命令,也可以建立檔案的方式

命令輸入:logstash -f C:\Users\admin\Desktop\logstash-5.0.2\bin\mysql\mysql.conf

我是新建了一個run.bat檔案來啟動,方便點

run.bat檔案內容就是  logstash -f C:\Users\admin\Desktop\logstash-5.0.2\bin\mysql\mysql.conf

雙擊run.bat

資料同步:

 

同步方式可以增量同步,也可以全量

自己配置即可。

到此完成mysql和elasticsearch的資料同步