windows上使用logstash-input-jdbc


 

(一)安裝logstash

下載鏈接  選擇下載你要的對應的logstash版本,這個東西解壓就能使用了

(二)安裝logstash-input-jdbc

就是用執行logstash-plugin.bat install logstash-input-jdbc,linux上其實也是大同小異

(三)mysql數據庫

在mysql中創建一個可以用於測試的數據庫

執行以下腳本,創建一個表:

create table testtable (PersonID int, LastName varchar(255), FirstName varchar(255), City varchar(255), Date datetime(6)); 

可以看到:

往表中插入數據:

INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
VALUES ('4005','Kallis','Jaques','Cape Town','2016-05-23 16:12:03.568810');
INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
VALUES ('4004','Baron','Richard','Cape Town','2016-05-23 16:12:04.370460');
INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
VALUES ('4003','McWell','Sharon','Cape Town','2016-05-23 16:12:06.874801'); 

結果:

 

(四)將數據導入es

Logstash 配置

在logstash文件夾中,我們要有一個logstash.conf文件,該文件是要配置並運行以獲取必要結果的文件。

logstash.conf如下(注意:windows下的文本編碼需要為ANSI,否則運行將會出錯, 另外注意是"hosts", 我這邊如果寫成"host"會出錯,另外下面長長的一段連接后面是我加上去的,如果不加上去,運行的時候會報時間什么的錯誤,mysql驅動要跟你的mysql數據庫版本對應起來,否則會出錯):

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/logstash_jdbc_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
        jdbc_user => "root"
        jdbc_password => "123456"
        jdbc_driver_library => "D:\logstash-5.3.1\mysql-connector-java-8.0.13\mysql-connector-java-8.0.13.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"
        statement_filepath => "D:\logstash-5.3.1\bin\jdbc.sql"
        schedule => "* * * * *"
        type => "jdbc"
    }
}

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

output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "test-migrate"
        document_type => "data"
        document_id => "%{person_id}"
    }
    stdout {
        codec => json_lines
    }
}

 jdbc.sql內容如下:

 

然后你系統上要有elasticsearch以及安裝一個elasticsearch-head方便查看數據。

在上面的配置文件中,提到了許多參數,例如:JDBC連接器應檢查哪個數據庫的數據,JDBC插件的位置,MySql訪問的用戶名和密碼以及查詢語句。將上述設置應用於“logstash.conf”文件后,通過鍵入以下命令運行:

logstash.bat -f logstash.conf

即可啟動監聽,然后你會發現你的數據已經導入到es之中,而且insert和update的時候也會同步進去。

 我將Sharont改為SharontTest,你會發現es之中也已經同步進去了:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM