在實現的路上遇到了各類坑,再次驗證官方文檔只能產考不能全信!php
ElasticSearch安裝就不說了上一篇有說!html
安裝logstashjava
官方:https://www.elastic.co/guide/en/logstash/current/installing-logstash.htmlmysql
1.下載公共密鑰git
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2.添加yum源github
vim /etc/yum.repos.d/logstash.repo
文件中寫入sql
[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安裝json
yum install logstash
4.驗證是否安裝成功vim
進入 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
修改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
若是鏡像地址沒有改錯的話應該能夠直接安裝
或者 進入源碼地址的release頁面logstash-input-jdbc
2.開始同步 mysql 數據
須要創建 兩個文件 一個 .conf後綴的 一個 .sql 後綴
一個 mysql 的Java 驅動包 : mysql-connector-java-5.1.40-bin.jar
filename.conf 內容:
裏面的參數能夠參考 logstash-input-jdbc官方參考文檔
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 目錄中查看日誌
出現相似這樣的內容 就能夠了
能夠經過地址 http://192.168.199.115:9200/contacts/contact/1?pretty=true
查看
url 參數說明 contacts 是對應 filename.conf 中 index => "contacts" contact 對應document_type => "contact" 1表示id爲1 的數據
轉載請註明來源http://www.cnblogs.com/phpshen/p/6098333.html