使用logstash 同步elasticsearch与mysql

#/etc/logstash/conf.d/logstash.conf

  jdbc {
    jdbc_driver_library => "/home/xxx/mysql-connector-java-5.1.40-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/kuname?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=yes&characterEncoding=UTF-8"
    jdbc_user => "xxxx"
    jdbc_password => "xxxxx"
    statement => "select * from tablename"
    jdbc_paging_enabled => true
    jdbc_page_size => 200000
    type => "xxxx"
  }
  
  filter {
  ...
  }
  
  output {
      stdout { codec => rubydebug }
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "xxxxx"
      }
}

说明:
useSSL=false 关闭SSL
useUnicode=yes&characterEncoding=UTF-8 指定编码
zeroDateTimeBehavior=convertToNull 如果有时间字段值为0000-00-00时会报错,转化为null

jdbc_paging_enabled => true 开启分页

如果遇到内存不足错误
Error: Your application used more memory than the safety cap of 10240M.
Specify -J-Xmx####m to increase it (#### = cap size in MB).
Specify -w for full OutOfMemoryError stack trace

修改以下文件手动指定

#/etc/default/logstash
LS_HEAP_SIZE="xxxxm"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容