1.安裝與elasticsearch相同版本號的logstash
在logstash的bin目錄下
? 打開控制臺 輸入? ?logstash -e "input { stdin { } } output { stdout { } }"
注意:雙引號不能改成單引號否則可能會報(bào)
ERROR: Unknown command '{'
返回我們輸入的結(jié)果則證明安裝成功
2.配置數(shù)據(jù)庫同步的模板
在logstash建立mysqletc文件夾在文件夾內(nèi)建一個(gè)配置文件例如mysql.conf內(nèi)容如下
input {
? jdbc {
? # mysql jdbc connection string to our backup databse
? jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/tensquare_article?characterEncoding=UTF8"
? # the user we wish to excute our statement as
? jdbc_user => "root"
? jdbc_password => "123456"
? # the path to our downloaded jdbc driver?
? jdbc_driver_library => "D:\tensquare\logstash-6.5.1\logstash-6.5.1\mysqletc\mysql-connector-java-5.1.46.jar"
? # the name of the driver class for mysql
? jdbc_driver_class => "com.mysql.jdbc.Driver"
? jdbc_paging_enabled => "true"
? jdbc_page_size => "20"
? #以下對應(yīng)著要執(zhí)行的sql的絕對路徑坎炼。
? #statement_filepath => ""
? statement => "SELECT id,title,content,state FROM tb_article"
? #定時(shí)字段 各字段含義(由左至右)分愧膀、時(shí)、天谣光、月檩淋、年,全部為*默認(rèn)含義為每分鐘都更新(測試結(jié)果萄金,不同的話請留言指出)
? ? ? schedule => "* * * * *"
? }
}
output {
? elasticsearch {
? #ESIP地址與端口
? hosts => "127.0.0.1:9200"
? #ES索引名稱(自己定義的)
? index => "tensquare_article"
? #自增ID編號
? document_id => "%{id}"
? document_type => "article"
? }
? stdout {
? ? ? #以JSON格式輸出
? ? ? codec => json_lines
? }
}
然后將mysql數(shù)據(jù)庫驅(qū)動(dòng)放入此文件夾內(nèi)
3.運(yùn)行l(wèi)ogstash
打開cmd進(jìn)入logstash/bin目錄下 logstash -f 配置文件的相對路徑例如:
logstash -f ../mysqletc/mysql.conf
mysql里先插入兩條試驗(yàn)數(shù)據(jù)
一分鐘后看到控制臺上打印出sql語句
elasticsearch-head成功顯示出插入的數(shù)據(jù)
至此蟀悦,數(shù)據(jù)同步成功。