在学习 ElasticSearch想通过logstash把数据库数据同步到ElasticSearch中,安装好后发现运行报错如下:
解决方法:
1、打开注册表编辑器,修改chcp 65001为chcp 65001 > nul
2、修改logstash-sample.conf配置文件,格式一定要正确,可以用复制下面的配置格式
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
stdin {
}
jdbc {
# mysql数据库连接
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/guli?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
# mysqly用户名和密码
jdbc_user => "root"
jdbc_password => ""
# 驱动配置 这里填写你自己的mysql-connector-java-8.0.13.jar路径
jdbc_driver_library => "D:\\elasticsearch\\logstash-6.3.2\\mysql-connector-java-5.1.7-bin.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
#指定每页显示300000条
jdbc_page_size => "300000"
# 执行指定的sql文件
#执行的sql语句
statement => "select * FROM t_blog WHERE update_time > :sql_last_value AND update_time < NOW() ORDER BY update_time desc"
# 设置监听 各字段含义 分 时 天 月 年 ,默认全部为*代表含义:每分钟都更新
schedule => "* * * * *"
# 索引类型
#type => ""
}
}
output {
elasticsearch {
#es服务器
hosts => ["localhost:9200"]
#ES索引名称
index => "blog"
#主键自增ID
document_id => "%{id}"
}
#设置json格式
stdout {
codec => json_lines
}
}