1. 程式人生 > >ElasticSearch5+logstash-input-jdbc實現mysql資料同步及躺坑彙總

ElasticSearch5+logstash-input-jdbc實現mysql資料同步及躺坑彙總

轉載來源 http://www.cnblogs.com/phpshen/p/6098333.html

ElasticSearch安裝就不說了上一篇有說!

安裝logstash

官方:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

1.下載公共金鑰

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2.新增yum

vim  /etc/yum.repos.d/logstash.repo

檔案中寫入

[logstash-5.x]

name=Elastic repository

for 5.x packages

baseurl=https://artifacts.elastic.co/packages/5.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

儲存退出

3.使用yum安裝

yum install logstash

4.驗證是否安裝成功

進入 logstash 安裝目錄

cd /usr/share/logstash

執行

bin/logstash -e 'input { stdin { } } output { stdout {} }'

等待幾秒鐘 出現  

The stdin plugin is now waiting for input:

然後輸入 

hello world

得到類似的結果

2016-11-24T08:01:55.949Z bogon hello world

安裝logstash-input-jdbc外掛

1.修改ruby倉庫映象

如果沒有安裝 gem 的話 安裝gem 

yum install gem

替換國內的映象

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

驗證是否成功

gem sources -l

https://images2015.cnblogs.com/blog/602490/201611/602490-20161124160443393-995883537.png

修改Gemfile的資料來源地址

whereis logstash # 檢視logstash安裝的位置, 我的在 /usr/share/logstash目錄

cd /usr/share/logstash

vim Gemfile

修改 source 的值 為: "https://gems.ruby-china.org/"

vim  Gemfile.jruby-1.9.lock # 找到 remote 修改它的值為:

https://gems.ruby-china.org/

或者直接替換源這樣你不用改你的 Gemfile source

gem install bundler

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org/

然後開始安裝

bin/logstash-plugin  install logstash-input-jdbc

如果映象地址沒有改錯的話應該可以直接安裝

2.開始同步 mysql 資料

需要建立 兩個檔案  一個  .conf字尾的 一個 .sql 字尾

 一個 mysql Java 驅動包   mysql-connector-java-5.1.40-bin.jar

filename.conf 內容:

input {

    stdin {

    }

    jdbc {

    # 資料庫地址  埠  資料庫名

      jdbc_connection_string => "jdbc:mysql://localhost:3306/shen"

    # 資料庫使用者名稱     

    jdbc_user => "root"

    # 資料庫密碼

      jdbc_password => "rootroot"

    # mysql java驅動地址

      jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.40-bin.jar"

      jdbc_driver_class => "com.mysql.jdbc.Driver"

      jdbc_paging_enabled => "true"

      jdbc_page_size => "50000"

      # sql 語句檔案

      statement_filepath => "filename.sql"

      schedule => "* * * * *"

      type => "jdbc"

    }

}

output {

 stdout {

        codec => json_lines

    }

   elasticsearch {

        hosts  => "localhost:9200"

        index => "contacts"

     document_type => "contact"

        document_id => "%{id}"

    }

}

filename.sql

select * from a

注意: 在你的資料庫裡 要有一個數據庫名字和filename.conf 裡的對應就可以了   表明 filename.sql 裡的對應就可以了   在表中  有一個id欄位是為了和filename.conf  document_id => "%{id}" 這個引數對應 可以執行修改

然後開始執行

bin/logstash -f fielname.conf

如果出現錯誤 或者沒有結果 可以進入 logs 目錄中檢視日誌

https://images2015.cnblogs.com/blog/602490/201611/602490-20161124162013300-1853801559.png

出現類似這樣的內容  就可以了

可以通過地址 http://192.168.199.115:9200/contacts/contact/1?pretty=true

檢視

https://images2015.cnblogs.com/blog/602490/201611/602490-20161124162149596-1019443831.png

url 引數說明  contacts 是對應 filename.conf  index => "contacts"  contact 對應document_type => "contact"   1表示id1 的資料

logstash-input-jdbc外掛安裝

安裝

參考:https://www.cnblogs.com/phpshen/p/6098333.html

躺坑彙總

yum報錯之DNS問題

命令

vi /etc/resolv.conf

新增:

nameserver 8.8.8.8

安裝  logstash-input-jdbc報錯

javac環境變數

Filename.conf報錯

靜態ip設定

vi /etc/sysconfig/network-scripts/ifcfg-ensxxxxxxx

注意xxxxx每個pc這裡不一樣建議輸入vi /etc/sysconfig/network-scripts/ifcfg-ens

然後tab聯想出來

編輯ip設定如下

重啟網路

service network restart

elk許可權失效導致報錯

解決參考

解決核心從新用root給elk賦權

圖形介面和命令列介面設定

安裝和解除安裝圖形介面

https://www.cnblogs.com/qichunlin/p/8898170.html

雖然說text模式下系統佔用資源小,但是有時候確實在圖形介面下操作更方便,所以,學會在centos下安裝圖形介面是必須會的。圖形介面有兩個,可以任選其中一個,看你的更新源當中有哪個就安裝哪個吧。

centos 安裝 X window

程式碼如下:

#yum groupinstall 'X Window System' -y

centos 安裝 GNOME桌面環境

程式碼如下:

#yum groupinstall 'GNOME Desktop Environment' -y

centos下安裝KDE桌面環境

程式碼如下:

#yum groupinstall 'KDE (K Desktop Environment)' -y

我自己再centos下安裝,用的是網易163的源,坑爹的沒有gnomeKDE,最後只好用X window了,69M191包,真心蠻大的。我這裡夠坑爹,本來指望yum安裝能省點心,但是事與願違,提示少了個檔案,只要自己去找對應的rpm包,安裝上

程式碼如下:

#rpm -i 對應的rpm

RT,裝完提示成功了,startx不能啟動,報錯,額,算了,這個明天去看下log,慢慢整吧

有安裝就有解除安裝,我們用的yum安裝的,自然也是用yum去解除安裝了,要不有的刪。

解除安裝Xwindows

程式碼如下:

#yum groupremove 'X Window System' -y

解除安裝GNOME桌面環境

程式碼如下:

#yum groupremove "GNOME Desktop Environment"

解除安裝KDE桌面環境

程式碼如下:

#yum groupremove "KDE (K Desktop Environment)"