1、环境

windows10,elastic search 6.0.0,logstash 6.0.0,MySQL 5.7.26,mysql-connector-java-8.0.19

建议从中文社区 https://elasticsearch.cn/download/ 使用迅雷下载elastic search 和 logstash,速度会比较快。

2、logstash 配置

​ 1) 将mysql-connect-java驱动放在logstash目录下

​ 2) 创建...\logstash-6.0.0\config\logstash-mysql.conf文件用来配置数据库信息:

input {
  jdbc {
    jdbc_driver_library => "D:\ELK\logstash-6.0.0\mysql-connector-java-8.0.19.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/es_blog?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
    jdbc_user => "root"
    jdbc_password => "1234567890"
    #是否记录上一次的值
    record_last_run => true
    #使用指定的追踪字段追踪,不设置的话会使用时间追踪
    use_column_value => true
    #追踪的字段
    tracking_column => id
    #存放上一个sql_last_value的值,需要在文件中初始化指定字段值
    last_run_metadata_path => "D:\ELK\logstash-6.0.0\config\station_parameter.txt"
    clean_run => false
    statement => "SELECT id, title, author, content FROM t_article where id > :sql_last_value"
    #开启分页查询
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    #调度时间"分 时 天 月 年",默认为一分钟
    schedule => "* * * * *"
    #设置时区
    jdbc_default_timezone =>"Asia/Shanghai"
  }
}

filter {
   json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => "127.0.0.1:9200"
    index => "logstash-blog"
    document_id => "%{id}"
    document_type => "article"
  }        
} 

3、启动

​ .\logstash -f ..\config\logstash-mysql.conf

图片说明

观察到追踪的id值发生了变化(初始为0)
图片说明