1. 下载 logstash 对应elasticsearth 版本
https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.tar.gz
2. 在elasticsearth 根目录下新建一个配置文件夹(叫什么都行)
jdbc驱动 可以在maven 仓库里复制出来
另外两个文件是新建的
mysql.sql 随便写个select语句
select dept_id, dept_name from sys_dept
mysql.config
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://2xx.xx.xx.x7:3306/es?serverTimezone=GMT%2B8&useSSL=false"
#这个useSSL=false后缀是为了解决closing inbound before receiving peer's close_notify错误
jdbc_user => "root"
jdbc_password => "xxxxxxx"
jdbc_driver_library => "/var/es/esjdbc/logstash-7.9.1/mysql/mysql-connector-java-8.0.13.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "/var/es/esjdbc/logstash-7.9.1/mysql/mysql.sql"
schedule => "* * * * *"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => ["2xx.xx.xx.x7:9200"]
index => "synces"
# 需要关联的数据库中有有一个id字段,对应类型中的id
document_id => "%{id}"
#索引名
document_type => "deptName"
}
stdout {
codec => json_lines
}
}
3.启动
./logstash -f ../mysql/mysql.conf
因为
schedule => "* * * * *"
这里配置的意思是每分钟所以每分钟会同步一次数据库
4. 用elasticsearch-head查看数据
没有elasticsearch-head 怎么办
Chrome插件方式
安装地址:https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm/
本地项目方式
https://github.com/mobz/elasticsearch-head
下载代码,然后npm 安装 启动
logstash只支持增量 相关问题请查看https://blog.csdn.net/laoyang360/article/details/51747266