美文网首页
elasticsearch5xx使用logstash同步mysq

elasticsearch5xx使用logstash同步mysq

作者: 全科 | 来源:发表于2017-11-06 15:59 被阅读117次
  • 转载请注明出处,谢谢

安装

下载logstash

下载地址:https://www.elastic.co/downloads/logstash

当时我下载的是5.6.3版本

https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.tar.gz

解压:

tar -zxvf logstash-5.6.3.tar.gz

进入安装目录

运行:

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

等待几秒钟 出现

The stdin plugin is now waiting for input:

然后输入

hello world

得到类似的结果

2017-10-30T02:49:59.005Z test-env hello world
安装logstash-input-jdbc插件

1.安装 ruby 和 rubygems(注意:需要 ruby 的版本在 1.8.7 以上)

yum install -y ruby rubygems

检查 ruby 版本:

ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

替换国内的镜像

gem sources --remove http://rubygems.org/
gem sources -a http://gems.ruby-china.org/

验证是否成功

gem sources -l
*** CURRENT SOURCES ***

http://rubygems.org/
http://gems.ruby-china.org/

修改Gemfile的数据源地址

vim Gemfile

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

vim  Gemfile.jruby-1.9.lock 

找到 remote 修改它的值为:https://gems.ruby-china.org/

开始安装:

./bin/logstash-plugin install --no-verify  logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful

使用

配置语法

最基本的配置文件定义,必须包含input 和 output。如果需要对数据进操作,则需要加上filter段

配置 java mysql 连接驱动 mysql-connector-java-5.1.42-bin.jar

https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.42.tar.gz

input {
  stdin {

  }
  jdbc {
    jdbc_connection_string => "jdbc:mysql://dbs1:3306/db2_utan_cs"
    jdbc_user => "root"
    jdbc_password => "123456"
    jdbc_driver_library => "/data/arrow/logstash/mysql-connector-java-5.1.42-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    statement => "SELECT * FROM crawler_data WHERE id > (SELECT MAX(t1.id) FROM db2_utan_cs.crawler_data AS t1)-70000 AND updatetime > :sql_last_value"
    use_column_value => true
    tracking_column => "updatetime"
    schedule => "* * * * *"
    type => "baby_crawler"
  }
}


filter {
  mutate {
    remove_field => [ "@timestamp", "@version", "id" ]
  }
}

 
output {
  elasticsearch {
    hosts => "192.168.1.21:9201"
    index => "baby_crawler_b"
    document_id => "%{uniquekey}"
  }
  stdout {
    codec => json_lines
  }
}

启动方式


# 通过手动指定配置文件启动
 
/bin/logstash -f /etc/logstash/conf.d/nginx_logstash.conf
 
# 以daemon方式运行,则在指令后面加一个 & 符号
 
/bin/logstash -f /etc/logstash/conf.d/nginx_logstash.conf &
 
 
# 如果是通过rpm包安装的logstash则可以使用自带的脚本启动
 
/etc/init.d/logstash start 
 
# 通过这种方式启动,logstash会自动加载 /etc/logstash/conf.d/ 下的配置文件

参考

http://tchuairen.blog.51cto.com/3848118/1840596/

全科龙婷▼升职加薪

全科龙婷

相关文章

网友评论

      本文标题:elasticsearch5xx使用logstash同步mysq

      本文链接:https://www.haomeiwen.com/subject/yxmlmxtx.html