安装logstash
进入logstash下的bin文件夹
cd /Users/zc/Documents/logstash-7.15.2/bin
运行
sudo ./logstash -f mysql/jdbc.conf
配置
在logstash/bin文件夹下创建mysql文件夹
在mysql文件夹下新建jdbc.conf 和 sql.sql文件 以及导入mysql驱动
jdbc.conf文件
input {
stdin {
}
jdbc {
# mysql数据库连接
jdbc_connection_string => "jdbc:mysql://localhost:3306/shopxxb2b2c?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false"
# mysqly用户名和密码
jdbc_user => "root"
jdbc_password => "root"
# 驱动配置
jdbc_driver_library => "/Users/zc/Documents/logstash-7.15.2/bin/mysql/mysql-connector-java-8.0.27.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
#设置分页,一页1000条数据
jdbc_paging_enabled => "true"
jdbc_page_size => "10000"
# 执行指定的sql文件
statement_filepath => "/Users/zc/Documents/logstash-7.15.2/bin/mysql/sql.sql"
# 是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false);
#lowercase_column_names => false
#执行的sql语句
#statement => "SELECT * FROM items"
# 设置监听 各字段含义 分 时 天 月 年 ,默认全部为*代表含义:每分钟都更新
#schedule => "* * * * *"
#10秒刷新一次
#schedule => "*/10 * * * * *"
# 索引类型
#type => "sku"
}
}
output {
elasticsearch {
#es服务器
hosts => ["localhost:9200"]
#ES索引名称
index => "test"
#自增ID
document_id => "%{id}"
#索引类型
document_type => "_doc"
}
stdout {
codec => json_lines
}
}
sql.sql文件
select * from student
Tips
logstash的版本必须与elasticsearch版本一致
elasticsearch/logstash/kibana的安装不做赘述
elasticsearch/kibana推荐docker安装
100万条mysql数据导入elasticsearch耗时7~8分钟