elasticsearch使用2:使用Logstash7.1.1同步MySql数据到ES

1.准备工作
下载Logstash:https://www.elastic.co/products/logstash
2.安装部署
下载完成后解压,之后在config文件夹中创建mysql.conf
文件名可修改,启动的时候修改成对应的脚本命令就行
打开刚创建的文件加入以下代码(已经确定7版本以上取消了type,所以我没加type)

input {
	stdin {}
	jdbc{
		jdbc_connection_string => "jdbc:mysql://localhost:3306/spring"

		jdbc_user => "root"
		jdbc_password => "数据库密码"

		jdbc_driver_library => "D:\ES\logstash-7.1.1\mysql\mysql-connector-java-5.1.38-bin.jar"

		jdbc_driver_class => "com.mysql.jdbc.Driver"
		jdbc_paging_enabled => "true"
		jdbc_page_size => "50000"
		
		statement => "select * from user"
		schedule => "* * * * *"
	}
}
  
output {
	stdout {
		codec => json_lines
	}
    elasticsearch {
		hosts => "http://127.0.0.1:9200"
		index => "user"
		document_id => "%{id}"
	}
}

需要修改:
1.jdbc_connection_string
2.jdbc_user
3.jdbc_password
4.jdbc_driver_library
5.statement
6.document_id
注意:改的时候尽量负责粘贴不然有错误很难找出来。
3.启动运行
在Logstash根目录下打开小黑窗运行bin\logstash.bat -f config\mysqltoes.conf

4.遇到的问题

[2019-06-21T11:35:00,300][ERROR][logstash.inputs.jdbc     ] Unable to connect to database. Tried 1 times {:error_message=>"Java::ComMysqlJdbcExceptionsJdbc4::MySQLNonTransientConnectionException: Could not create connection to database server."}

出现这个问题是因为连接不上本地的数据库,我是在本地测试的,成功后改成了我要导入的表。结果一直报错。后来直接把配置重新粘贴的一遍。所以估计是我哪里出问题了。
解决方法:
1.直接删了重来
2.直接连接测试库或正式库。反正不会修改表
3.打开logstash-7.1.1\logs\logstash-plain.log。查看里面的错误日志,然后百度

error reading or parsing D:/maven... settings.xml

出现这个问题是因为settings.xml之前通过文本编辑器打开的时候会自己加进去一些找不到的字符串。
解决方法:重新创建一个文件,把里面的内容沾进去保存。然后把之前的文件替换掉。替换之前记得备份

你可能感兴趣的:(elasticsearch)