使用Logstash將數(shù)據(jù)庫(kù)導(dǎo)入Elastic Search

唉,生活所迫生活所迫,我又搞這些雜七雜八的啦,不記錄一下也白瞎啦。這篇主要講怎么把數(shù)據(jù)庫(kù)里的數(shù)據(jù)直接導(dǎo)入到elastic search。參考的比較多的是這篇,寫的非常好,可是我在實(shí)際操作的時(shí)候還是遇到了一些問題,所以自己寫一個(gè)。寫作的邏輯呢,就是怎么配置并且使用的全過程。

??首先了解一下,logstash的主要工作原理是在配置文件中定義一個(gè)管道,用這個(gè)管道就可以完成全過程。因此你需要做的事情其實(shí)只有三步:

    1. 把logstash下載下來解壓好,把mysql 對(duì)應(yīng)版本的connector下載好
    1. 寫配置文件
    1. 運(yùn)行配置文件

1.運(yùn)行elastic search 和 kibana

??怎么安裝的我就不講啦,剛?cè)腴T的娃娃應(yīng)該也不會(huì)看這種文章。我的環(huán)境呢是windows,直接到es的Bin目錄下啟動(dòng)elasticsearch.bat文件就可以,啟動(dòng)之后在瀏覽器中輸入localhost:9200如果有返回值說明啟動(dòng)成功了。kibana呢是方便查看結(jié)果的,用不用都行吧,反正我用了。

2. 配置logstash

??logstash是elastic search官方開發(fā)的用于整合數(shù)據(jù)的一個(gè)工具,它可以整合日志以及來自文件的兩大類數(shù)據(jù)。整合日志的那個(gè)呢,官方教程里有我這里也就不細(xì)說了。我們今天要講的是整合文件的數(shù)據(jù),在這里其實(shí)是整合的數(shù)據(jù)庫(kù)的數(shù)據(jù)。

??配置文件就是我下面給出的,這個(gè)配置文件直接放在logstash的根目錄下就行,命名為`。里面有個(gè)坑:注意觀察數(shù)據(jù)庫(kù)連接字符串,里面多了一個(gè)時(shí)區(qū)參數(shù)的定義,在這里我們一定要留心,否則會(huì)報(bào)錯(cuò)。還有個(gè)坑,如果數(shù)據(jù)庫(kù)里有date類型的話,就不要在定義索引的時(shí)候定義date的格式,直接用默認(rèn)就行啦,不然又是報(bào)錯(cuò)。

input {
  jdbc {
    # 數(shù)據(jù)庫(kù)驅(qū)動(dòng)路徑
    jdbc_driver_library => "D:/elasticsearch/logstash-6.5.3/mysql-connector-java-8.0.12.jar"
    # 驅(qū)動(dòng)名稱
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    # 數(shù)據(jù)庫(kù)的連接字符串
    jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test_db?serverTimezone=UTC"
    # 數(shù)據(jù)庫(kù)用戶名
    jdbc_user => "root"
    # 數(shù)據(jù)庫(kù)密碼
    jdbc_password => "123456"
    # 重復(fù)執(zhí)行導(dǎo)入任務(wù)的時(shí)間間隔  分-時(shí)-日-月-星期
    schedule => "* * * * *"
    # 導(dǎo)入的表(查詢SQL,可以過濾數(shù)據(jù))
    statement => "SELECT *from articles"
    #  默認(rèn)時(shí)區(qū)
    jdbc_default_timezone => "Asia/Shanghai"
  }
}
output {
  
  elasticsearch {
  # es地址
  hosts => "127.0.0.1:9200"
  # 索引名稱
  index => "articles"
  # 索引類型
  document_type => "_doc"
  # 類似主鍵,es中id對(duì)應(yīng)數(shù)據(jù)庫(kù)的字段
  document_id => "%{aid}"
  }
  stdout {
  codec => plain { charset => "UTF-8"}
  }
}

3.下載mysql connector

??connector是程序用來連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng),可以去mysql的官網(wǎng)下載,但是現(xiàn)在居然還要注冊(cè)啦,而且注冊(cè)登陸都挺費(fèi)勁的。不過好在可以直接去遠(yuǎn)程maven庫(kù)中下載,什么版本的都有。

4.運(yùn)行l(wèi)ogstash

運(yùn)行bin目錄下的logstash腳本(我是用mingwin運(yùn)行的),命令為logstash -f ../jdbc.cnf就跑起來啦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容