mysql2es

input {
  # 用于接收控制台输入数据,进行测试
  stdin { }
  jdbc {
      # 数据库  数据库名称为elk,表名为book_table
      jdbc_connection_string => "jdbc:mysql://192.168.25.129:3306/elk?characterEncoding=UTF-8"
      # 数据库用户名
      jdbc_user => "root"
      # 数据库密码
      jdbc_password => ""
      # jar包的位置
      jdbc_driver_library => "mysql/mysql-connector-java-5.1.40.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      # 开启分页
      jdbc_paging_enabled => "true"
      # 每页条数
      jdbc_page_size => "100"
      # 需要执行的mysql文件的位置,会执行文件中的sql语句
      #statement_filepath => "mysql/test.sql"
      statement => "select * from book_table where id > :sql_last_value"
      # 调度时间,默认为1分钟执行一次
      schedule => "* * * * *"
      #是否记录上次执行结果, 如果为true,将会把上次执行到的 tracking_column 字段的值记录下来,保存到 last_run_metadata_path 指定的文件中
      record_last_run => true
 
      #是否需要记录某个column 的值,如果 record_last_run 为true,可以自定义我们需要 track 的 column 名称,此时该参数就要为 true. 否则默认 track 的是 timestamp 的值.
      use_column_value => true
 
      #如果 use_column_value 为true,需配置此参数. track 的数据库 column 名,该 column 必须是递增的.比如:ID.
      tracking_column => id
 
      #指定文件,来记录上次执行到的 tracking_column 字段的值
      #比如上次数据库有 10000 条记录,查询完后该文件中就会有数字 10000 这样的记录,下次执行 SQL 查询可以从 10001 条处开始.
      #我们只需要在 SQL 语句中 WHERE MY_ID > :sql_last_value 即可. 其中 :sql_last_value 取得就是该文件中的值(10000).
      last_run_metadata_path => "mysql/metadata"
 
      #是否清除 last_run_metadata_path 的记录,如果为true那么每次都相当于从头开始查询所有的数据库记录
      clean_run => false
 
      #是否将 column 名称转小写
      #lowercase_column_names => false
      # 标识输入的类型,自定义字符串,可以用于输出类型选择
      type => "book_table"
    }
}
filter {
 # 默认使用的是Unix时间,我们需要将logstash同步数据到ES时间+8小时
#  数据库中的时间字段也可以这样设置
   ruby {
      code => "event.set('@timestamp',event.get('@timestamp').time.localtime + 8*60*60)"
   }
}

output {
 if [type] == "book_table" {
  elasticsearch {
    hosts => ["http://192.168.25.129:9200"]
    user => "esuser"
        password => "esuser_123"
    #按分钟
    #index => "mysql-%{+YYYY.MM.dd.HH.mm}"
    #按小时
    # 索引名字,必须小写
    index => "book_table"
    #index => "logstash-%{[fields][document_type]}-%{+YYYY.MM.dd}"
        #index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    # 数据唯一索引(建议使用数据库主键 KeyID)
    document_id => "%{id}"
  }
  # 以json格式输出到控制台
  stdout {
        codec => json_lines
  }
 }
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值