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来按照需求来获取想要检索的内容。