在Windows平臺下Elasticsearch同步MySql數據庫
我是用ElasticSearch的版本是elasticsearch-6.3.1
mysql的數據是5.7的,其實這個關系不大。
logstash版本是6.3.1
ElasticSearch的插件elasticsearch-head-master ,現在加壓好了,直接放在ElasticSearch目錄下面就好了,這不強制。
這個是mysql的數據庫連接驅動程序 mysql--connector-java-5.1.18.zip
因為使用了ElasticSearch這個插件所以還需要安裝nondjs,因為需要用的npm
1:先啟動ElasticSearch
安裝ElasticSearch的插件,直接雙擊/bin/ElasticSearch.bat ,啟動成功後:http://127.0.0.1:9200/
2:安裝,啟動ElasticSearch插件
運行head需要借助grunt命令,因此需要安裝grunt。所以先要安裝nodejs,雙加exe就可以了。然後cmd命令,node -v,如果出現版本號,說明安裝成功。
然後安裝grunt,npm install -g grunt -cli ,如果在不行,就cd到nodejs的安裝目錄下執行這個命令。
grunt安裝好了之後,在cd到你解壓好的elasticsearch-head-master這個目錄下面(和bin同級的那個目錄)執行npm install,這裏如果失敗了請參考:https://blog.csdn.net/qq3401247010/article/details/78742524
啟動 cd到你解壓的head目錄下,bin同級,執行npm run start ,執行成功後 :http://localhost:9100/
3,首先在logstash目錄下面建一個lib,把你現在的mysql的連接驅動jar包放進去
建一個sql文件,我的是建jdbc.sql,裏面是你要同步的數據表的sql語句,
SELECT
id,
sys_log_level,
project_name,
function_name,
sys_log_msg,
create_time
FROM
log_sys
ORDER BY
create_time DESC
這些東西都準備好了之後,修改logstash的配置文件,不是config文件夾下面的那個。上面的圖中看得到就是logstash.conf
input { tcp { port=>5549 } jdbc{ jdbc_connection_string => "jdbc:mysql://192.168.2.104:33060/ygsc_scm?useSSL=false&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" jdbc_user => "tt" jdbc_password => "2344WsL1JrUntER2Zns32WmGwr" jdbc_driver_library => "lib\mysql-connector-java-5.1.18-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" statement_filepath => "jdbc.sql" schedule => "* * * * *" type => "jdbc" } } output { elasticsearch { index => "testdb" document_type => "%{type}" hosts => ["localhost:9200"] } }
這些logstash的準備工作都做好了之後,修改logstash 文件夾下Gemfile文件,將source改為:https://gems.ruby-china.org,然後進入logstash的bin目錄,執行logstash-plugin install logstash-input-jdbc 這裏如果有問題,請參考:https://blog.csdn.net/yowrhihoil/article/details/79568743,安裝插件然後進入bin目錄下執行logstash.bat -f ogstash.conf,就可以啟動起來了。
後面會把這啟動項目做成服務的那種。就不用每次點擊bat或者輸入命令來啟動了。
在Windows平臺下Elasticsearch同步MySql數據庫