ElasticSearch同步Mysql解决方案

谯振国
2023-12-01

一.准备内容

1.开放访问权限的mysql账号

2.logstash

3.es服务

二.脚本编辑

我们在启动logstash服务时,需要自己创建一个配置文件,起名随意,以下作者用mysql.conf表示

mysql.conf 内容:

input {
    jdbc {
      # 数据库
      jdbc_connection_string => "jdbc:mysql://xxxx:3306/库名"
      # 用户名密码
      jdbc_user => "用户名"
      jdbc_password => "密码"
      # Mysql-jdbc jar包的位置  路径不能写错 ,版本要对应
      jdbc_driver_library => "mysql-connector-java-5.1.47.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      #清除第一次同步的时间,日志时间
      #clean_run => true 
	  # mysql.sql内写sql 例如 select  *  from 你需要导入的表
      statement_filepath => "mysql.sql"
      # canel  时间参数,定时导入
      schedule => "* * * * *"
      #索引的类型  分词器类型
      type => "monitor_task_video_manual_history"
    }
}
 
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}
 
output {
    elasticsearch {
        hosts => "es地址"
        # index名
        index => "需要导入的index名字"
        # 需要关联的数据库中一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
} 

通过脚本启动logstash服务

./logstash -f mysql.conf

即可完成定时监听同步mysql数据

 类似资料: