Logstash連接MySQL
下載MySQL驅動
打開驅動jar包下載地址:https://dev.mysql.com/downloads/connector/j/
選擇平台無關的版本
下載zip版本,在本地打開,解壓出jar文件
因為logstash在ubuntu下的默認配置文件路徑是 /etc/logstash,所以我在/etc/logstash目錄下新建了一個drivers文件夾,用來放置各種驅動。
# 切換目錄 cd /etc/logstash # 創建文件夾 mkdir drivers
然后將解壓好的驅動放到drivers文件夾中。
配置Logstash
在logstash存放配置文件的文件夾中,新建一個連接MySQL的配置文件。
# 切換目錄 cd /etc/logstash/conf.d # 創建文件 touch logstash-mysql.conf
logstash-mysql.conf文件內容如下(注意,這里的jar包用的是8.0.20):
input { stdin { } jdbc { # 數據庫連接 jdbc_connection_string => "jdbc:mysql://你的數據庫IP:3306/你的數據庫" # 用戶名密碼 jdbc_user => "用戶名" jdbc_password => "密碼" # 驅動jar包的位置 jdbc_driver_library => "/etc/logstash/drivers/mysql-connector-java-8.0.20.jar" # mysql的Driver jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" statement => "select * from 表名" schedule => "* * * * *" # elastic search的索引名,相當於mysql的表名 #type => "information_summary" } } filter { json { source => "message" remove_field => ["message"] } } output { elasticsearch { hosts => "localhost:9200" # index名 index => "index名" # 需要關聯的數據庫中有有一個id字段,對應索引的id號 document_id => "%{id}" } stdout { codec => json_lines } }
啟動Logstash
切換到ubuntu下logstash執行文件目錄:
cd /usr/share/logstash/bin/
運行命令,使新的配置文件生效:
./logstash -f /etc/logstash/conf.d/logstash-mysql.conf
如果你的機器上已經啟動過logstash實例的話,可能會報如下錯誤:
Logstash could not be started because there is already another instance using the configured data directory.
If you wish to run multiple instances, you must change the "path.data" setting
這時候需要把命令改為:
./logstash -f /etc/logstash/conf.d/logstash-mysql.conf --path.data=/usr/logstash_data/你的index名
這樣就會把通過這個配置拿到的數據落在新的文件夾中,也不會報錯了。