Logstash同步mysql数据库到ElasticSearch

1、先安装ElasticSearch

可以查看我的上篇文章,内容比较详细:传送门

2、安装同版本的logstash

现在给出我下载的连接:传送门

3、安装解压后,在bin的同目录下创建一个mysql文件夹
4、在mysql文件夹里面放进自己maven仓库里面mysql文件夹下的mysql驱动

名称一般都是mysql-connector-java-***.jar

我在这里使用的是mysql8的

5、因为我们需要在ElasticSearch上面select数据库里面的内容

所以我们在logstash的mysql文件夹下面创建一个find.sql里面的内容为:

select * from user

注意:(user为你自己mysql里面存在的表)

6、创建一个logstash连接数据库和ElasticSearch的jdbc.conf文件

jdbc.conf的内容为:

input {
	stdin{
	}
    jdbc {
      # mysql 数据库链接,center为数据库名
      jdbc_connection_string => "jdbc:mysql://localhost:3306/flower?serverTimezone=UTC"
      # 用户名和密码
      jdbc_user => "root"
      jdbc_password => "123456"
      # 驱动
      # jdbc_driver_library => "G:\logstash\logstash-7.4.2\logstash-7.4.2\mysql\mysql-connector-java-8.0.18.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行的sql 就是上一步创建的sql文件的绝对路径+文件名字
      statement_filepath => "G:\logstash\logstash-7.4.2\logstash-7.4.2\mysql\find.sql"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
      # 索引类型
      type => "flower"
    }
}


filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}


output {
    elasticsearch {
        # ES的IP地址及端口
        hosts => ["localhost:9200"]
        # 索引名称
        index => "user"
        # 自增ID id必须是待查询的数据表的序列字段
        document_id => "%{userid}"
    }
    stdout {
       # JSON格式输出
        codec => json_lines
    }
}
7、然后我们运行ElasticSearch.bat启动ElasticSearch
8、进入到logstash的bin目录下

按住shift+鼠标右键,打开powershell窗口,输入以下命令

.\logstash -f …/mysql/jdbc.conf

你会看见你数据库里面被select的数据内容

9、启动并打开ElasticSearch-Head

在首页就会看见索引,然后还可以查看数据浏览就能看到所有的mysql表数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值