我在我的Windows 7機器上本地安裝了Logstash和Elasticsearch。 我在Logstash中安裝logstash-input-jdbc。Logstash沒有讀入MySQL的新條目
我有MySql數據庫中的數據,我使用Logstash發送給Elasticsearch,因此我可以做一些報告生成。
執行此操作的Logstash配置文件。
input {
jdbc {
jdbc_driver_library => "C:/logstash/lib/mysql-connector-java-5.1.37-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test"
jdbc_user => "root"
jdbc_password => ""
statement => "SELECT * FROM transport.audit"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "transport-audit-%{+YYYY.mm.dd}"
}
}
這個工程和Logstash當我運行數據發送到Elasticsearch:
bin\logstash agent -f \logstash\conf\01_input.conf
這是從命令
io/console not supported; tty will not be manipulated
Default settings used: Filter workers: 4
Logstash startup completed
Logstash shutdown completed
的反應怎麼,Logstash關機?
當我檢查Elasticsearch數據時,如果再次運行該命令,數據將被重新索引(重複)。
下面是MySQL數據庫的數據:
我所試圖做的(實現):
我想Logstash運行,並聽取關於審覈新項目表並且只索引該數據(當新的審計條目輸入到表Logstash中時將知道並將該條目發送給Elasticsearch。)
另外,爲什麼Logstash在我運行該命令時會停止,是否應該不運行?我是Logstash和Elasticsearch的新手。
感謝
摹
我也貼了同樣的問題在Elastic forum,如果我得到的答案,我會張貼在這裏幫助別人。
感謝@val爲您提供的幫助和編輯,我將在今天嘗試,並將問題標記爲已回答。是的,我同意日期字段,並會按照建議添加。 – Gman
該計劃工作良好感謝與select語句,我重新創建表,添加了時間戳字段。當我添加WHERE子句時,什麼都不打印出來或發送到elasticsearch? 'code statement =>「SELECT * FROM transport。審計WHERE時間戳> =:sql_last_start「' – Gman
你爲新的時間戳字段設置了什麼值? – Val