es配置elk实现增量同步以及全量同步

需要配置这个文件

input {
    stdin {
    }
    jdbc {
      # mysql 数据库链接,center为数据库名,jdbc版本比较大的要加上?后面那串字符
      jdbc_connection_string => "jdbc:mysql://192.168.161.131:3307/mz-master"
      # 用户名和密码

      jdbc_user => "root"
      jdbc_password => "123456"
      # 驱动  需要手动上传jar
      jdbc_driver_library => "/opt/mysql-connector-java-8.0.29.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "1000"

      # 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值;
        use_column_value => true
        # 需要记录的字段,用于增量同步,需是数据库字段
        tracking_column => user_id

        # record_last_run上次数据存放位置;
        record_last_run => true
        #上一个sql_last_value值的存放文件路径, 必须要在文件中指定字段的初始值
        last_run_metadata_path => "/opt/last_id.txt"
        # 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false;
        clean_run => false



      statement=> "select * from sys_users where user_id > :sql_last_value"


      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"

         }
 }


output {
    elasticsearch {
        # ES的IP地址及端口
          hosts => ["192.168.161.128:9200"]
        # 索引名称,elasticsearch叫做索引 和实体类中的索引要一致
          index => "users_index"
        # 自增ID id必须是待查询的数据表的序列字段 没有可以不写
         document_id => "%{user_id}"
    }
    stdout {
       # JSON格式输出
         codec => json_lines
    }
}

然后执行 /opt/logstash-7.9.3/bin/logstash -f /opt/logstash-7.9.3/config/jdbc.conf 

优点 可以实时监控mysql来更新更新es数据

缺点  需要定期清理日志文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值