在工作中,需要把mysql中的數據寫入到es中進行分析;
官方文檔:https://www.elastic.co/guide/en/logstash/6.3/plugins-inputs-jdbc.html
下面是配置方法:
input { jdbc { #數據庫驅動路徑 jdbc_driver_library => "/data/mysql-connector-java-5.1.41-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" #數據庫連接相關配置 jdbc_connection_string => "jdbc:mysql://10.10.10.10:3306/test" jdbc_user => "root" jdbc_password => "123456" #任務計劃,多久執行一次,在此每5分鐘執行一次 schedule =>"*/5 * * * *" #啓用追蹤,如果爲true,則需要指定tracking_column,默認是timestamp use_column_value => true #指定追蹤的字段,在此我設置的追蹤的字段爲id tracking_column => id #是否將字段名稱轉小寫,當字段已經爲小寫時,不用此項 lowercase_column_names => false #追蹤字段的類型,目前只有數字(numeric)和時間類型(timestamp),默認是數字類型 tracking_column_type => "numeric" #記錄最後一次運行的結果 record_last_run => true #上面運行結果的保存位置 last_run_metadata_path => "/data/jdbc-position.txt" #執行的語句,也可以通過statement_filepath指定sql的文件 statement => "SELECT * FROM student where id > :sql_last_value" #statement_filepath => "/data/test.sql" } } filter { json { source => "message" remove_field => ["message"] } } output { #輸出到控制檯進行調試,也可以寫到kafka或者es中 stdout { codec => rubydebug } }