springboot整合elasticsearch2.0+logstach-干货满满实战篇(下)

一 背景

承接上篇: springboot整合elasticsearch2.0+logstach-干货满满实战篇-上
此篇功能: 使用logstash将mysql大批量数据导入es

二 环境搭建

1 安装logstach

1、下载logstash-6.6.0安装包,下载路径:logstash-6.6.0,然后解压之es的同级目录(方便管理);或直接在服务器上下载:

    wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz

2、将安装包上次到服务器,然后解压安装包,例如解压到:/usr/local/

        tar –zxvf logstash-6.6.0.tar.gz 

2 编写执行脚本

进入conf目录
mkdir app

创建同步文件脚本
touch logstash-mysql-es-testIndexl-app.conf


3 logstash-mysql-es-testIndexl-app.conf

input {
  jdbc {
    
    jdbc_connection_string => "jdbc:mysql://test.****/appstore"
    jdbc_user => "数据库用户名"
    jdbc_password => "数据库密码"
    # 将数据库驱动拷贝到此目录
    jdbc_driver_library => "/usr/****/elk/logstash-5.2.2/mysql-connector-java-5.1.36.jar"
   
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000000"
        
    
    # 查询语句 
    statement => "select id, name,name namePinyin from app "
    
    # 设置监听间隔 各字段含义(从左至右)分、时、天、月、年,全为*默认含义为每分钟都更新
    # "*/5 * * * *" 每五分钟同步一次
    # 每天2点更新
    # schedule => "0 0 2 1/1 *"
    # 每天2:00 执行一次与北京时间相差-13时区
    schedule => "0 13 * * *"
    
    # 是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录
    clean_run => true

    # 数据库查询出来的字段转小写,默认为true
    lowercase_column_names => false
 
    # es文档type
    type => "app"
 
    #索引设置时区
    jdbc_default_timezone => "Asia/Shanghai"
 
  }
}
# 过滤器
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
  elasticsearch {
    # es集群 : 集群必须填写数组
    hosts => ["172.0.0.1:9201","172.0.0.1:9202" ]

    # 索引名称
    index => "testIndexl"
    # 数据库id与es的id同步
    document_id => "%{id}"
     
    template_overwrite => true
    #document_type => "contact" 

    # 先删除原纪录,再创建新纪录 默认是update
    #action => "delete"

  
    doc_as_upsert => true
 }

  # 这里输出调试,正式运行时可以注释掉
  stdout {
      # codec => json_lines
  } 
}

4 执行线程

1   进入服务器 172.0.0.1
    2   进入地址: cd /usr/local/server/elk/logstash-5.2.2
    3   查看logstash是否开启: ps -ef | grep logstash
            可查看带有如下两个信息的进程 cd /usr/local/server/elk/logstash-5.2.2/conf/test
                logstash-mysql-es-testIndel-app.conf
            如果为开启执行下一步
    4   执行如下两条指令(分开执行,两条进程),开启之后不要终止进程.
            bin/logstash -f ./conf/appstoreserver/logstash-mysql-es-testIndel-app.conf
    出现 Successfully started Logstash API endpoint 即可
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值