使用logstash将Oracle数据导入到Elasticsearch

今天总结一下如何使用logstash将Oracle数据导入到Elasticsearch,然后后面会分享怎么在KONGA中配置API接口给用户。

首先要安装好Logstash并且在服务端安装好Elasticsearch!!然后开始操作:

1、进入logstash路径

logstash路径:

configs:里面存放配置文件。

libs:存放可能需要使用的jar包。

sql:存放sql文件

2、进入sql路径下,创建sql并编辑

cd ./sql
vim GXJX_KCSJLB.sql

通篇我讲其中一个具体的例子,某高校的课程数据类数据(GXJX_KCSJLB):

在这个GXJX_KCSJLB.sql文件中输入我们的查询数据指令:

select 'gxjx_kcsjlb' as es_index,ROWNUM,KCH,KCMC,KCYWMC,XF,ZHXS,ZXS,LLXS,SYXS,KCJJ,JC,CKSM,KCFZRH,KCKSDWH,SJXS,KCJXDG,KCJBM,KCLBM,KCLXM,SFTK,TKRQSJ,KSRQSJ,ZHGXSJ,SCBZ,KCXZ,KKBMDM from GXJX_KCSJLB;

注意:

  1. 我们定义的 es_index 会在configs文件中配置为es的索引,不能使用大写字母,否则会导致不能识别。
  2. 注意如果是从Oracle数据库中使用数据,可以加上ROWNUM这个属性。在config配置中与 document_id 对应。sql指令后面可以不带封号。
     

3、进入configs路径下,创建config文件并编辑

cd ./configs
vim GXJX_KCSJLB.config

GXJX_KCSJLB.config 配置文件内容:

input {
  jdbc {
    jdbc_driver_library => "/home/logstash/libs/ojdbc6-11.1.0.6.0.jar"
    jdbc_driver_class => "Java::oracle.jdbc.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@192.168.99.19:1521:jcxydb"
    jdbc_user => "sjbzk"
    jdbc_password => "sjbzk"
    schedule => "* * * * *"
    statement_filepath => "/home/logstash/sql/GXJX_KCSJLB.sql"
  }
}
filter {
        #以下grok和date添加了时区信息,解决后续创建index时的时区差8个区的问题
        json {
                source => "message"
                remove_field => ["message"]
        }

}
output {
    elasticsearch {
        hosts => [ "192.168.102.17:9200","192.168.102.18:9200","192.168.102.19:9200" ]
                index => "%{es_index}_index"
                document_type => "doc"
                document_id => "%{kch}"
                #elasticsearch 的用户名与密码
                user => "logstash_internal"   
                password => "logstash@PWD2020"
    }
}

注意:

  1. schedule中的值意思是一分钟执行一次。
  2. statement_filepath中填写我们之前创建好对应的sql路径。
  3. index => "%{es_index}_index"中“es_index”是之前在sql文件中定义新增的列,作为这里的索引,具体效果如下图。
  4. document_id => "%{kch}"中的kch虽然表中是大写,但是这里要转为小写,不然不能识别。

索引信息:

4、在configs路径下创建vr_edition_config文件夹

为了更好的传输数据,在configs路径下创建vr_edition_config文件夹,然后将我们刚刚创建的config放到这个路径下:

5、修改logstash的配置文件

vim /etc/logstash/pipelines.yml

添加内容:

  pipeline.id: vr_edit
  pipeline.workers: 1
  pipeline.batch.size: 1
  path.config: "/home/logstash/configs/vr_edition_config/*.config"

这里配置path.config,将配置路径指向我们存放config的位置。

6、重新启动logstash并查看运行日志

先将logstash关闭,时间可能比较长,耐心等待:

service logstash stop

重新启动:

service logstash start

其中如图有错误或者问题可以查看logstash的运行日志:

tail -f /var/log/logstash/logstash-plain.log 

报错的话,也可以的查看报错信息:

vim /var/log/messages

然后可以打开 http://192.168.102.17:9200/_plugin/head/ 中的Elasticsearch查看到刚刚导入的数据:

可以通过基本查询查看里面详细的信息:

为后面使用KONGA通过API访问返回数据做好前提工作。

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青山孤客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值