ELK - Logstash連接MySQL


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名

這樣就會把通過這個配置拿到的數據落在新的文件夾中,也不會報錯了。


免責聲明!

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



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