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