1、下載logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz
2. 解壓logstash
tar -zxvf logstash-6.6.0.tar.gz
3. 在logstash 目錄創建 mysql 文件夾
[root@VM_0_17_centos logstash-6.6.0]# mkdir mysql
4. 將 mysql 驅動文件和數據庫查詢文件 放進mysql中
5. 在config 目錄下創建 mysqltoes.conf 文件
6. mysqltoes.conf 配置
input { # 多張表的同步只需要設置多個jdbc的模塊就行了 jdbc { # mysql 數據庫鏈接,shop為數據庫名 jdbc_connection_string => "jdbc:mysql://ip:3306/mall?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true" # 用戶名和密碼 jdbc_user => "root" jdbc_password => "" # 驅動 jdbc_driver_library => "/usr/local/logstash-6.6.0/mysql/mysql-connector-java-8.0.16.jar" # 驅動類名 jdbc_driver_class => "com.mysql.jdbc.Driver" #是否分頁 jdbc_paging_enabled => "true" jdbc_page_size => "50000" #直接執行sql語句 # statement =>"select * from t_item" # 執行的sql 文件路徑+名稱 statement_filepath => "/usr/local/logstash-6.6.0/mysql/item.sql" # 默認列名轉換為小寫 lowercase_column_names => "false" #設置監聽間隔 各字段含義(由左至右)分、時、天、月、年,全部為*默認含義為每分鍾都更新 schedule => "* * * * *" # 索引類型 #type => "jdbc" } } output { elasticsearch { #es的ip和端口 hosts => ["http://ip:9200"] #ES索引名稱(自己定義的) index => "mall" #文檔類型 document_type => "mall_item" #設置數據的id為數據庫中的字段 document_id => "%{iteId}" } stdout { codec => json_lines } }
7. 啟動 logstash
前台啟動:
[root@VM_0_17_centos bin]# ./logstash -f ../config/mysqltoes.conf
后台啟動:
[root@VM_0_17_centos bin]# nohup ./logstash -f ../config/mysqltoes.conf >logstash.log &
啟動成功