windows中logstash5.6.8同步mysql数据库数据到elasticsearch中
前提
1.已经安装好elasticsearch,安装教程可以参考:
https://www.cnblogs.com/hualess/p/11540477.html(非常详细)
2.mysql数据库安装好
3.安装好ruby,跟新gem,教程可参考:
https://blog.csdn.net/qq_32454347/article/details/87968706
第一步、在logstash中安装logstash-input-jdbc和logstash-output-jdbc
进入到logstash安装目录下的bin目录:E:\logstash-5.6.8\bin,最上面文件路径那输入cmd进入dos
在dos命令中输入:logstash-plugin install logstash-input-jdbc 回车

可能出现如下信息:
E:\logstash-5.6.8\bin>logstash-plugin install logstash-input-jdbc
Validating logstash-input-jdbc
Installing logstash-input-jdbc
WARNING: can not set Session#timeout=(0) no session context
原因:国外仓库连接问题,更改仓库,打开logstash安装目录,找到Gemfile打开,编辑,将source后面的内容改为https://gems.ruby-china.com(使用ruby在国内的仓库)

再重新执行上面两个安装:安装成功
E:\logstash-5.6.8\bin>logstash-plugin install logstash-input-jdbc
Validating logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful
二、在logstash安装目录下新建文件夹myconfig(随自己取),以及配置文件mysql.conf(随自己取),同时数据库驱动复制到该文件夹下
在mysql.conf文件下添加如下信息
input {
jdbc {
#刚才拷入的mysql驱动
jdbc_driver_library => "E:\logstash-5.6.8\myconfig\mysql-connector-java- 5.1.46.jar"
#驱动类
jdbc_driver_class => "com.mysql.jdbc.Driver"
# 8.0以上版本:一定要把serverTimezone=UTC天加上
jdbc_connection_string => "jdbc:mysql://localhost:3306/tensquare_article?characterEncoding=utf8"
#数据库用户名
jdbc_user => "root"
#密码
jdbc_password => "123"
#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
#以下对应着要执行的sql的绝对路径。
statement => "select id,title,content from tb_article"
#是否分页
jdbc_paging_enabled =>"true"
#每页大小
jdbc_page_size =>"50000"
}
}
output {
elasticsearch {
# ES的IP地址及端口
hosts => "localhost:9200"
# 索引名称 可自定义
index => "tensquare"
# 需要关联的数据库中有有一个id字段,对应类型中的id
document_id => "%{id}"
document_type => "article"
}
stdout {
# JSON格式输出
codec => json_lines
}
}
保存,退出,启动,在刚才安装logstash-input-jdbc那输入命令logstash -f E:\logstash-5.6.8\myconfig\mysql.conf
三、启动数据库和elasticsearch,可以看到如下内容,说明搞成功了(等一等,差不多一分钟)

版权声明:本文为xiao_bai_cai_bai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。