原csdn地址https://blog.csdn.net/wt|

蜗牛使劲冲

园龄:7年6个月粉丝:3关注:10

本地logstash同步数据至阿里云的elastic

参考:https://blog.csdn.net/weixin_42047790/article/details/90667783
https://blog.csdn.net/qq_31871785/article/details/89533058(java)
https://www.cnblogs.com/wang-yaz/p/10232417.html(后期挺有用的)
https://blog.csdn.net/crazyo2jam/article/details/104938817?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-6&spm=1001.2101.3001.4242(话多小哥)

本地安装logstash

官网下载,
下载地址

  • logstash安装插件 bin/logstash-plugin install logstash-input-jdbc
    这个不需要了
    bin/logstash-plugin install logstash-output-elasticsearch
    这个可以装
  • 把从阿里云那下载下来的mysql驱动的jar包传上来,因为logstash读取mysql时候要用到这个,最好放logstash文件夹里头
  • 阿里云那的elasticsearch开启公网访问在这里插入图片描述

在bin下新建个文件database.conf
再在bin下新建个保存时间的文件jdbc-position-save,并chmod 777

input {
 jdbc {
   jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/blog?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
   jdbc_user => "root"
   jdbc_password => "xxx"
   jdbc_driver_library => "/usr/local/logstash-7.10.2/lib/mysql-connector-java-5.1.48.jar"
   jdbc_driver_class => "com.mysql.jdbc.Driver"
   tracking_column => "updateTime"  #这个是es的对应字段不是sql#可不加
   record_last_run => true
   clean_run => false
   jdbc_default_timezone => "Asia/Shanghai"
   # 设置监听 各字段含义 分 时 天 月  年 ,默认全部为*代表含义:每分钟都更新
   schedule => "* * * * *"
   type => "jdbc"#可不加
   codec => plain { charset => "UTF-8"}
   #保存记录时间的文件,创建了给下权限就行
   last_run_metadata_path => "/usr/local/logstash-7.10.2/bin/jdbc-position-save"
   statement => "select id,question_txt from s_question where updated_at > :sql_last_value"
   #statement_filepath => "/usr/local/logstash-7.10.2/bin/jdbc-position-sql.sql"
   }
}
filter {
 json {
   source => "message"
 }
}
output {
  stdout {
    codec => json_lines
  }
  elasticsearch {
    hosts => "http://es-cn-mxxxxxmpn.public.elasticsearch.aliyuncs.com:9200"
    index => "question"
    user => "elastic"
    password => "xxxxxx"
    document_id => "%{id}"
    #cluster => "logstash-elasticsearch"
  }
}

以上配置意思是:执行你的sql语句,然后同步到elastic那指定的索引上去,如果id相同

然后命令行执行同步操作,这个是schedule每分钟执行一次

bin/logstash -f bin/database.conf --debug

然后登录阿里云的kibana,通过页面入口点进去,执行

POST test_index/_search
{
  "query":{
    "match_all":{}
  }
}

有了🤗

本文作者:蜗牛使劲冲

本文链接:https://www.cnblogs.com/warrenwt/p/18074547

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   蜗牛使劲冲  阅读(4)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起