logstash6.5.4同步mysql數據到elasticsearch 6.4.1


下載logstash-6.5.4 ZIP解壓和es 放到es根目錄下

下載mysql jdbc的驅動 mysql-connector-java-8.0.12 放在任意目錄下

 

以下方式采用動態模板,還有一種方式靜態模板可以指定字段映射,那樣效率低一點。

一、創建配置文件 mysqltoes.conf  

 

input {
stdin { }
jdbc {
#填寫你的mysql鏈接串8以后驅動必須這樣寫,不然后出錯,這個問題我搞了好幾天才解決 {host}:3306/{database}
jdbc_connection_string => "jdbc:mysql://localhost:3306/easycms?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
#鏈接數據庫用戶名稱
jdbc_user => "root"
#鏈接數據庫的密碼
jdbc_password => "root"
#指定驅動的位置
jdbc_driver_library => "D:/soft/elasticsearch-6.4.1/bin/mysql-connector-java-8.0.12.jar"
#最新的mysql驅動寫法,寫以前的驅動會報錯
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#同步的表,這里也可以只想一個寫了sql的文件
statement => "SELECT * from sys_message"
#表示每分鍾都同步數據
schedule => "* * * * *"
}
}
filter {
date {
# 有多個項的話能匹配多個不同的格式
match => [ "createAt", "MMM dd yyyy HH:mm:ss","ISO8601" ]
target => "fieldName1"
timezone => "Asia/Shanghai"
}
}

output {
stdout {
codec => json_lines
}
elasticsearch {
#數據到es
hosts => "localhost:9200"
#指定索引,名字任意
index => "sysmessage"
#指定類型,任意
document_type => "messagedata"
document_id => "%{id}"
template_overwrite => true
#模板中的template名需要和output中的索引名一致,template可以使用*配置任意字符。
template => "mysqltoes-template.json"
}
}

 

 

二、創建mysqltoes-template.json 也放在logstash-6.5.4\bin目錄下

      使用logstash dynamic template功能,字段添加映射ik分詞器

 

{
"template":"*",
"version":60001,
"settings":{
"index.refresh_interval":"5s"
},
"mappings":{
"_default_":{
"dynamic_templates":[
{
"message_field":{
"path_match":"message",
"match_mapping_type":"string",
"mapping":{
"type":"text",
"norms":false
}
}
},
{
"string_fields":{
"match":"*",
"match_mapping_type":"string",
"mapping":{
"type":"text",
"norms":false,
"analyzer":"ik_max_word",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
}
],
"properties":{
"timestamp":{
"type":"date"
},
"version":{
"type":"keyword"
},
"geoip":{
"dynamic":true,
"properties":{
"ip":{
"type":"ip"
},
"location":{
"type":"geo_point"
},
"latitude":{
"type":"half_float"
},
"longitude":{
"type":"half_float"
}
}
}
}
}
}
}

 

三、執行命令

     然后切換到logstash-6.5.4\bin 目錄下執行命令  logstash -f mysqltoes.conf

 

四、效果

 

 

 

參考:https://blog.csdn.net/u012976879/article/details/85259911

https://www.cnblogs.com/jstarseven/p/7707499.html

https://blog.csdn.net/github_38787002/article/details/84993664


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM