记一次ES整合logstash所遇的坑

记一次ES整合logstash所遇的坑

  1. 安装与ES版本的相同的logstash,例:ES版本为6.2.1,那么logstash的版本需保持一致。

    ​ 下载网址:https://www.elastic.co/cn/downloads/past-releases

  2. 下载,下载时建议使用迅雷下载,速度较快。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fqlq5ATR-1578023832730)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103112214977.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oUivonTb-1578023832732)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103112235481.png)]

    下载完成

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8oCfcMOY-1578023832733)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103112331370.png)]

  3. 解压安装,结业完成后的目录如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P2LOIAJS-1578023832734)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103112454259.png)]

  4. 如没有插件,则需要自己下载。

    1. 由于logstash-input-jdbc是ruby开发的,所以需要下载ruby,并且完成安装。

      ruby下载地址:https://rubyinstaller.org/downloads/,下载如下图版本即可,安装一路next即可

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEFfjsDU-1578023832735)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103113121481.png)]

    2. 验证ruby是否安装成功:ruby -v

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahsE5zMm-1578023832736)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103113428885.png)]

    3. 安装logstash-input-jdbc插件,注意进入logstash的bin目录,执行下列命令

      .\logstash-plugin.bat install logstash-input-jdbc
      

      等待安装完成即可,安装完成后查看,我自己下载的logstash压缩包解压后,已经存在logstash-input-jdbc插件

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fedCsB2Q-1578023832736)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103112612841.png)]

  5. 安装完成后配置相关文件

    进入logstash的安装目录下的config目录,新建配置文件mysql.conf(名称自己随便起),配置文件内容如下:

    input {
     stdin { }
        jdbc {
            jdbc_connection_string => "jdbc:mysql://localhost:3306/xc_course?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
    
            jdbc_user => "root"
    
            jdbc_password => "123456"
    
            jdbc_driver_library => "D:/develop/software/apache-maven-3.6.2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar"
    
            jdbc_driver_class => "com.mysql.jdbc.Driver"
    
            jdbc_paging_enabled => "true"
    
            jdbc_page_size => "50000"
            statement => "select * from course_pub where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)"
            schedule => "* * * * *"
    		record_last_run => true
    		last_run_metadata_path => "D:/develop/software/elasticsearch/logstash-6.2.1/config/logstash_metadata"
        }
     }
    
     output {
         stdout {
            codec => json_lines
        }
        elasticsearch {
            hosts => "localhost:9200"
            index => "xc_course"
            document_type => "doc"
            document_id => "%{id}"
        }
    }
    

    注意修改相应的连接,如数据库地址,数据库驱动jar包位置,我这里的配置是由于需要根据数据库的一个时间戳字段来实现实时更新,所以配置了[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAXl3x5o-1578023832737)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103114640279.png)]

    logstash_metadata文件里面存放主要是更新的时间[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3EH6Htsy-1578023832738)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103114732521.png)]

  6. 配置完成后,进入bin目录,完成启动。

    logstash -f ..\config\mysql.conf
    
  7. 启动成功如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D5N9PPac-1578023832739)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103115100715.png)]

  8. 当控制台打印相应数据的记录表示同步成功,然后通过head插件查看

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-76U8ESoj-1578023832740)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200103115222931.png)]

    最后期间我自身由于数据的一个时间字段不是date类型,导致失败,后面更新数据库字段的类型即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值