安装Logstash | 博客Bujarra.com

Logstash 同步 MySQL 到 Elasticsearch

下載 logstash-7.6.2 mysql-connector-java-8.0.20

/bin/logstash -f logstash-es-mysql.conf

code
input{
     stdin {
     }
     jdbc {
         # 驅動方式
         jdbc_driver_library => "D:\Programming\mysql-connector-java-8.0.20\mysql-connector-java-8.0.20.jar"
         # 驅動類名
         jdbc_driver_class => "com.mysql.jdbc.Driver"
         # mysql 數據庫鏈接,blog為數據庫名 &useSSL=false 這個是為了防止不支持ssl連接的問題
         jdbc_connection_string => "jdbc:mysql://localhost:3306/stock?serverTimezone=UTC&characterEncoding=utf8&useSSL=false"
         # 連接數據庫用戶名
         jdbc_user => "root"
         # 連接數據庫密碼
         jdbc_password => "root"
         # 是否啟用分頁
         jdbc_paging_enabled => "true"
         jdbc_page_size => "50000"
         # 設置監聽間隔 各字段含義(由左至右)分、時、天、月、年,全部為*默認含>義為每分鐘都更新
         schedule => "* * * * * "
         type => "jdbc"
         # 執行sql文路徑及名稱
         # statement_filepath => "/home/logstash/blog.sql"
         # 直接寫sql語句用這個
         #statement => "select `article_detail`.article_id,article_title as title,article_detail_content as content from `article` LEFT JOIN `article_detail` ON `article`.`article_id` = `article_detail`.article_id"
statement => "SELECT * FROM `1216tw`"
         # use_column_value => true
         # tracking_column => "updatetime"
         # 保存上一次運行>的信息(tracking_column)
         # last_run_metadata_path => "./logstash_jdbc_last_run"
       }
}

filter{
    json{
        source => "message"
        remove_field => ["message"]
    }
}
#output插件配置
output{
      elasticsearch {
         #這裡可以是數組,可以是多個節點的地址,會自動啟用負載均衡
         hosts => ["192.168.99.100:9200"]
         #index名稱
         index => "kafei"
         #document_type => "haoyebao" #文檔類型
         document_type =>"_doc"
         #文檔id,必須設置,且表達式的變量存在,否則只>能插入一條記錄
         document_id => "%{id}"
template_overwrite => true
      }
      #控制台打印json
      stdout {
         codec => json_lines
     }
 }

使用之前做資料回測的東西 測試