使用logstash将Oracle数据导入到Elasticsearch

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

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

1、进入logstash路径

logstash路径:

使用logstash将Oracle数据导入到Elasticsearch_第1张图片

configs:里面存放配置文件。

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

sql:存放sql文件

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

cd ./sql
vim GXJX_KCSJLB.sql

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

使用logstash将Oracle数据导入到Elasticsearch_第2张图片

在这个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虽然表中是大写,但是这里要转为小写,不然不能识别。

索引信息:

使用logstash将Oracle数据导入到Elasticsearch_第3张图片

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

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

使用logstash将Oracle数据导入到Elasticsearch_第4张图片

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"

使用logstash将Oracle数据导入到Elasticsearch_第5张图片

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

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

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

service logstash stop

重新启动:

service logstash start

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

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

使用logstash将Oracle数据导入到Elasticsearch_第6张图片

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

vim /var/log/messages

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

使用logstash将Oracle数据导入到Elasticsearch_第7张图片

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

使用logstash将Oracle数据导入到Elasticsearch_第8张图片

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

 

你可能感兴趣的:(API)