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的資料同步