1. 程式人生 > >安裝logstash-input-jdbc外掛

安裝logstash-input-jdbc外掛

安裝 logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.zip

解壓:

unzip logstash-5.5.0.zip

之後將檔案移動到自己存放的目錄即可。

啟動服務測試一下是否安裝成功:

cd bin
./logstash -e 'input { stdin { } } output { stdout {} }'

如果出現下面的東西就表示成功:

image.png

輸入隨便什麼內容:

HelloWorld

image.png

安裝logstash-input-jdbc外掛

在我安裝完這東西之後,看到好像可以不用安裝這個就可以直接和資料庫同步的,但是由於重新安裝太麻煩了,而且沒有其他的伺服器給我試,就沒有去試試看行不行。


我主要參考的是http://blog.csdn.net/yeyuma/article/details/50240595這位老鐵的方法。


安裝logstash是一件比較蛋疼的事,因為這東西適用ruby開發的,我對ruby這東西是一點也不懂,所以比較不好弄。

如果沒有gem命令的話,需要先安裝一下子(root使用者才可以)

替換ruby映象庫為國內的庫,因為國外的庫,國內是訪問不到的,然後國內有兩個庫,兩個庫都是可以用的:


1、替換成ruby-china的庫

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

 檢視是否成功

gem sources -l

image.png

2、進入logstash中的bin 修改Gemfile檔案裡面的資料來源

image.png

3、進入到logstash的bin下

cd bin
./plugin install logstash-input-jdbc

4、在bin下新建一個目錄config-mysql建立mysql.conf檔案:


mkdir config-mysql
cd config-mysql
vim mysql.conf

在檔案中輸入下面的內容

input {
    stdin {
    }
    jdbc {
      # 資料庫
      jdbc_connection_string => "jdbc:mysql://localhost:3306/test01"
      # 使用者名稱密碼
      jdbc_user => "root"
      jdbc_password => "123456"
      # jar包的位置
      jdbc_driver_library => "/usr/local/logstash-5.5.0/mysql-connector-java-6.0.6.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      #statement_filepath => "config-mysql/test02.sql"
      statement => "select * from test02"
      schedule => "* * * * *"
	  #索引的型別
      type => "test02"
    }
}

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

output {
    elasticsearch {
        hosts => "127.0.0.1:9200"
        # index名
		index => "test01"
		# 需要關聯的資料庫中有有一個id欄位,對應索引的id號
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}

注意關聯的資料庫表中需要有id欄位用來對映形成的索引的id號。

終於把工作都做完了。

進入bin目錄下:

./logstash -f config-mysql/mysql.conf

image.png