logstash将mysql数据导入es

1、logstash简介

Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到指定的存储位置(可以使es、json、mysql等)。本文主要介绍mysql数据导入ElasticSearch

2、下载并安装logstash

官网下载地址:https://www.elastic.co/downloads/past-releases#

将文件下载后上传到服务器解压即可

测试发现logstash和es版本之间的兼容要求并不严苛,本人安装的es5.5,但使用logstash6.6可以将数据导入

3、下载mysql的连接包

下载版本(自定义):mysql-connector-java-5.1.45.jar

下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.45

将jar下载后上传到服务器任意目录下,

4、编写导入脚本(input_mysql.conf)并上传

input{
	stdin{
	}
	jdbc{
                #数据库连接地址
		jdbc_connection_string => "jdbc:mysql://10.18.100.57:3306/eco"
		jdbc_user => "eco" #用户名
		jdbc_password => "Eco2019@"
                #mysql连接的jar包
		jdbc_driver_library => "/home/elastic/es/logstash-6.6.1/plugins/mysql-connector-java-5.1.45.jar"
		jdbc_driver_class => "com.mysql.jdbc.Driver"
		jdbc_paging_enabled => "true"
		jdbc_page_size => "50000"
		statement => "select * from eco_mnt_air_monitor"
		schedule => "* * * * *"
                #es的type名
		type => "supermap"
	}
}
 
output{
	elasticsearch{
                #es集群地址
		 hosts => ["10.18.101.52:9200","10.18.101.53:9200","10.18.101.54:9200","10.18.101.81:9200"]
               #es中数据存放的索引名
		index => "jsons"
                #定义es中主键的生成规则,沿用mysql表中的主键
		document_id => "%{id}"
		user => "elastic"
	}
}


5、执行导入脚本

    我将脚本上传到了在logstash的根目录下的config目录中

bin/logstash -f config/input_mysql.conf

猜你喜欢

转载自blog.csdn.net/superGrant/article/details/88293715