ElasticSearch - Logstash同步mysql數(shù)據(jù)

有個(gè)同事在搭ES+Logstash來同步mysql的數(shù)據(jù),問我珠漂,我也不懂晚缩,就網(wǎng)上學(xué)習(xí)一下,順便弄了一下媳危,在這分享一下流程荞彼,有啥不對或問題的,歡迎各位斧正待笑。

Elasticsearch:是實(shí)時(shí)分布式全文搜索分析引擎鸣皂,提供搜集、分析暮蹂、存儲(chǔ)數(shù)據(jù)三大功能寞缝,速度快;是一套開放REST和JAVA API等結(jié)構(gòu)提供高效搜索功能仰泻,可擴(kuò)展的分布式系統(tǒng)荆陆。它構(gòu)建于Apache Lucene搜索引擎庫之上。在這Elasticsearch作為后臺(tái)數(shù)據(jù)的存儲(chǔ)集侯。

Logstash:是動(dòng)態(tài)數(shù)據(jù)收集管道被啼,擁有可擴(kuò)展的插件生態(tài)系統(tǒng),能夠與 Elasticsearch 產(chǎn)生強(qiáng)大的協(xié)同作用浅悉。在這Logstash在其過程中擔(dān)任搬運(yùn)工的角色趟据。

                           ![https://upload-images.jianshu.io/upload_images/6791900-23e17655467a2af1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/864/format/webp](https://upload-images.jianshu.io/upload_images/6791900-23e17655467a2af1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/864/format/webp)
image.gif

?

                   Logstash工作三個(gè)階段:1,input數(shù)據(jù)輸入端术健,可以接收來自任何地方的源數(shù)據(jù)汹碱。

                                                           2,F(xiàn)ilter數(shù)據(jù)中轉(zhuǎn)層荞估,主要進(jìn)行格式處理咳促,數(shù)據(jù)類型轉(zhuǎn)換稚新、數(shù)據(jù)過濾、字段添加跪腹,修改等褂删。

                                                           3,output是logstash工作的最后一個(gè)階段冲茸,負(fù)責(zé)將數(shù)據(jù)輸出到指定位置屯阀,兼容大多數(shù)應(yīng)用。

軟件安裝

1轴术,環(huán)境--1.8以上的JDK难衰。

2,下載Elasticsearch和Logstash的軟件壓縮包逗栽,https://www.elastic.co/盖袭,這選擇6.6.1版的Linux 64位壓縮包解壓到自己建立的目錄下面,此處 放在目錄/home/el/彼宠,然后執(zhí)行就可以運(yùn)行了鳄虱。(<ins>注意選著的elasticsearch和logstash版本保持一致,不然會(huì)出問題</ins>

啟動(dòng)和配置:

一凭峡,Elasticsearch

      啟動(dòng) ---進(jìn)入到/home/el/elasticsearch-6.6.1/目錄下拙已,執(zhí)行啟動(dòng)命令 bin/elasticsearch(<ins>*啟動(dòng)時(shí)候不能以root用戶啟動(dòng),否則會(huì)報(bào)錯(cuò)*</ins>),

                 啟動(dòng)成功時(shí)想罕,可以看到IP的綁定(<ins>*10.112.76.31:9300 , 10.112.76.31:9200*</ins>)悠栓。

       瀏覽器訪問elasticsearch ---進(jìn)入到 /home/el/elasticsearch-6.6.1/config/elasticsearch.yml霉涨,修改屬性network.host: 0.0.0.0和http.port: 9200,

                                                   修改端口按价,是因?yàn)镋S 每次啟動(dòng)時(shí),端口可能會(huì)變(端口被占用笙瑟,ES 自己會(huì)改端口)楼镐,還不能正常啟動(dòng) ES,并                                                                   提示端口被占用往枷,就查看一下什么程序占用 9200 端口框产,kill 掉,重啟 ES 就行错洁。最后通過在瀏覽器通過地址                                                                         http://10.112.76.31:9200或http://localhost:9200訪問elasticsearch秉宿。

 二,Logstash

       配置:

            1屯碴,安裝插件描睦,由于這里是從mysql同步數(shù)據(jù)到elasticsearch,所以需要安裝jdbc的入插件和elasticsearch的出插件:logstash-input-                                          jdbc导而、logstash-output-elasticsearch(<ins>*Logstash5版本后自帶input和out 插件忱叭,這邊選用的是6.6.1隔崎,所以不用安裝*</ins>)

             2,下載mysql連接庫韵丑,logstash是ruby開發(fā)的爵卒,所以這里要下載mysql的連接庫jar包,從[官網(wǎng)](https://dev.mysql.com/downloads/connector/j/)下載撵彻,我這里下載的是:mysql-connector-                                    java-5.1.46.jar钓株,將下載好的mysql-connector-java-5.1.46.jar,放至/home/el/elasticsearch-6.6.1/config/目錄下陌僵。

            3享幽,創(chuàng)建配置文件,在/home/el/elasticsearch-6.6.1/config/目錄下拾弃,創(chuàng)建配置文件(mysql-to-es.conf):

<pre>input {
jdbc {
# mysql 數(shù)據(jù)庫鏈接,shop為數(shù)據(jù)庫名
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/shop"</pre>

<pre> # 用戶名和密碼
jdbc_user => "root"
jdbc_password => "root"</pre>

<pre> # jdbc連接mysql驅(qū)動(dòng)的文件目錄
jdbc_driver_library => "./config/mysql-connector-java-5.1.46.jar"</pre>

<pre> # 驅(qū)動(dòng)類名
jdbc_driver_class => "com.mysql.jdbc.Driver"</pre>

<pre> jdbc_paging_enabled => "true"
jdbc_page_size => "50000"</pre>

<pre> # sql 文件路徑, 也可以直接寫SQL語句在此處值桩,如下:
# statement => "select * from t_order where update_time >= :sql_last_value;"
statement_filepath => "./config/jdbc.sql"</pre>

<pre> # 同步的頻率 各字段含義(由左至右)分、時(shí)豪椿、天奔坟、月、年搭盾,全部為默認(rèn)含義為每分鐘都更新
schedule => "
* * * *"</pre>

<pre> # 是否記錄上次執(zhí)行結(jié)果, 如果為真,將會(huì)把上次執(zhí)行到的 tracking_column 字段的值記錄下來,保存到 last_run_metadata_path 指定的文件中
#record_last_run => true</pre>

<pre> # 是否需要記錄某個(gè)column 的值,如果record_last_run為真,可以自定義我們需要 track 的 column 名稱咳秉,
# 該參數(shù)就要為 true. 否則默認(rèn) track 的是 timestamp 的值.
use_column_value => true</pre>

<pre> # 如果 use_column_value 為真,需配置此參數(shù). track 的數(shù)據(jù)庫 column 名,該 column 必須是遞增的. 一般是mysql主鍵
tracking_column => "update_time"</pre>

<pre> tracking_column_type => "timestamp"</pre>

<pre> last_run_metadata_path => "./logstash_capital_bill_last_id"</pre>

<pre> # 是否清除 last_run_metadata_path 的記錄,如果為真那么每次都相當(dāng)于從頭開始查詢所有的數(shù)據(jù)庫記錄
clean_run => false</pre>

<tt class="wikimodel-verbatim">#是否將 字段(column) 名稱轉(zhuǎn)小寫 lowercase_column_names => false }</tt> }

<pre>output {
elasticsearch {</pre>

<pre> #es地址與端口</pre>

<pre> #hosts => ["192.168.100.101:9200","192.168.100.102:9200","192.168.100.103:9200"]</pre>

<pre> hosts => "10.112.76.31:9200"</pre>

<pre> #es索引(自己定義)</pre>

<pre> index => "mysql_order"</pre>

<pre> #表示按照查詢出的字段key_id(一般用主鍵,防止重復(fù))進(jìn)行數(shù)據(jù)的同步</pre>

<pre> document_id => "%{key_id}"</pre>

<pre> template_overwrite => true</pre>

<pre>}
</pre>

  4鸯隅,啟動(dòng)澜建,bin/logstash -f config/mysql-to-es.conf

最后,方便查看蝌以,Elasticsearch 可以安裝head插件炕舵,通過http://...:9100,可以查看Elasticsearch里的數(shù)據(jù)。

擴(kuò)展--日志收集平臺(tái)elk與上述過程基本一致跟畅,不同之處:

1咽筋,Logstash的input不是連接mysql,而是去收集控制臺(tái)或日志文件徊件;

2奸攻,需要安裝kibana軟件,該軟件與Elasticsearch對接虱痕,用戶通過kibana查看Elasticsearch的日志

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睹耐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子部翘,更是在濱河造成了極大的恐慌硝训,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捎迫,居然都是意外死亡配名,警方通過查閱死者的電腦和手機(jī)橄教,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泛烙,你說我怎么就攤上這事叹谁∈改澹” “怎么了瓶殃?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長位谋。 經(jīng)常有香客問我山析,道長,這世上最難降的妖魔是什么掏父? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任笋轨,我火速辦了婚禮,結(jié)果婚禮上赊淑,老公的妹妹穿的比我還像新娘爵政。我一直安慰自己,他們只是感情好陶缺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布钾挟。 她就那樣靜靜地躺著,像睡著了一般饱岸。 火紅的嫁衣襯著肌膚如雪掺出。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天苫费,我揣著相機(jī)與錄音汤锨,去河邊找鬼。 笑死黍衙,一個(gè)胖子當(dāng)著我的面吹牛泥畅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播琅翻,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼柑贞!你這毒婦竟也來了方椎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤钧嘶,失蹤者是張志新(化名)和其女友劉穎棠众,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闸拿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年空盼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片新荤。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揽趾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苛骨,到底是詐尸還是另有隱情篱瞎,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布痒芝,位于F島的核電站俐筋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏严衬。R本人自食惡果不足惜澄者,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望请琳。 院中可真熱鬧闷哆,春花似錦、人聲如沸单起。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘀倒。三九已至屈留,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間测蘑,已是汗流浹背灌危。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碳胳,地道東北人勇蝙。 一個(gè)月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像挨约,于是被迫代替她去往敵國和親味混。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容