1、版本介紹
Elasticsearch:
版本:2.4.0
Logstash:
版本:2.4.0
所需要的安裝文件,到官網下載即可。
還需要對應的數據庫JDBC,這里使用的是
mysql-connector-java-5.1.39.jar
2、
Logstash安裝配置
Logstash直接下載后解壓即可,主要是配置文件的內容編寫。
安裝logstash-input-jdbc的Logstash插件,用來進行mysql、oracle等的數據同步。
[zsz@VS-zsz logstash-2.4.0]$ bin/plugin install logstash-input-jdbc
The use of bin/plugin is deprecated and will be removed in a feature release. Please use bin/logstash-plugin.
Validating logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful
The use of bin/plugin is deprecated and will be removed in a feature release. Please use bin/logstash-plugin.
Validating logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful
配置文件(自行指定文件名,這里命名為logstash-mysql.conf
):
[zsz@VS-zsz conf]$ vi logstash-mysql.conf
input {
jdbc {
jdbc_driver_library => "/usr/local/logstash-2.4.0/mysql-connector-java-5.1.39.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://192.168.****:3306/******?characterEncoding=UTF-8&useSSL=false"
jdbc_user => "*****"
jdbc_password => "*********"
statement => "SELECT * FROM news limit 0,1"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
schedule => "* * * * *"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "192.168.****" //所有同步elasticsearch的集群信息
index => "myindex"
}
}
jdbc {
jdbc_driver_library => "/usr/local/logstash-2.4.0/mysql-connector-java-5.1.39.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://192.168.****:3306/******?characterEncoding=UTF-8&useSSL=false"
jdbc_user => "*****"
jdbc_password => "*********"
statement => "SELECT * FROM news limit 0,1"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
schedule => "* * * * *"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "192.168.****" //所有同步elasticsearch的集群信息
index => "myindex"
}
}
啟動Logstash
[zsz@VS-zsz conf]$ /usr/local/logstash-2.4.0/bin/logstash -f /usr/local/logstash-2.4.0/conf/
logstash-mysql.conf
Settings: Default pipeline workers: 2
Pipeline main started
{
"pk" => 8,
"user_pk" => 11,
"media_pk" => 5,
"topic_pk" => 0
}
{
"pk" => 8,
"user_pk" => 11,
"media_pk" => 5,
"topic_pk" => 0
}
Pipeline main started
{
"pk" => 8,
"user_pk" => 11,
"media_pk" => 5,
"topic_pk" => 0
}
{
"pk" => 8,
"user_pk" => 11,
"media_pk" => 5,
"topic_pk" => 0
}
........
這個進程會一直執行下去,因為設置的schedule => "* * * * *"(每分鍾執行一次),如果想結束進程需要kill掉進程。
查看elasticsearch是否同步數據成功
[root@VS-zsz conf]# curl '192.168.31.79:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 924.7kb 457.6kb
[root@VS-zsz conf]# curl '192.168.31.78:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 925kb 457.8kb
[root@VS-zsz conf]# curl '192.168.31.79:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 925kb 457.8kb
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 924.7kb 457.6kb
[root@VS-zsz conf]# curl '192.168.31.78:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 925kb 457.8kb
[root@VS-zsz conf]# curl '192.168.31.79:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open test 5 1 0 0 1.5kb 795b
green open myindex 5 1 494 0 925kb 457.8kb
說明數據成功導入,而且在設置了定時任務的情況下, myindex索引的容量不斷增加。
5、常見錯誤:
(1)Pipeline aborted due to error {:exception=>"LogStash::ConfigurationError", :backtrace=>..................stopping pipeline {:id=>"main"}
原因:
logstash-mysql.conf 文件配置錯誤,對於>=2.*的版本, elasticsearch 的參數名應為hosts,如果設置為host則會報錯。此處應該是可以配置多個數據源。