logstash從sqlite中獲取內容

1 使用logstash-input-sqlite插件

1.1 插件安裝

官方提供了sqlite插件。
因爲不是默認提供的插件,需要手工安裝:

bin/logstash-plugin install logstash-input-sqlite

在安裝的這一步遇到了很多坑,包括但不限於:

  • ruby源的問題。因爲需要在線安裝,由於國內的互聯網環境,一直處於installing
  • 切換成國內的源(https://gems.ruby-china.com/)之後,又提示SSL證書的問題,不能正常下載安裝
  • 直接下載gem文件進行離線安裝(https://www.elastic.co/guide/en/logstash/5.6/working-with-plugins.html),因爲上面兩個步驟導致Gemfile文件異常,需要手工刪除最後一行logstash-input-sqlite,才能執行命令

bin/logstash-plugin install /path/to/logstash-plugin.gem

  • 終於正常了,但還是很慢,一度想要放棄

1.2 插件使用

按照官方示例(如下圖)配置了我的conf,並啓動:
在這裏插入圖片描述
報錯。。

1.3 插件放棄

主要考慮到上面的報錯在Google和百度都沒有找到參考。官方的示例又太簡單(單表),而且還不支持自定義statement語句,而我要找的內容又得關聯3張表才能查到。遂放棄

2 使用jdbc插件

機緣巧合之下,Google到了一篇文章:《From a SQL database using Logstash》。 柳暗花明又一村。 sqlite本身和MySQL一樣也是數據庫(logstash和MySQL的demo早已跑通),那麼自然就可以使用jdbc來連接sqlite數據庫,也就可以使用statement來按照需求來獲取想要檢索的內容。