windows配置启动es,logstash同步mysql数据库
windows配置部署es+logstash同步mysql数据库
一、版本:
jdk--11.0.9
elasticsearch--7.10.0 https://www.elastic.co/cn/downloads/past-releases#elasticsearch
logstash--7.10.0 https://www.elastic.co/cn/downloads/past-releases#logstash
ik分词器--7.10.0 https://github.com/medcl/elasticsearch-analysis-ik/releases
jdbc--8.0 https://repo1.maven.org/maven2/mysql/mysql-connector-java/
二、启动es:
1、elasticsearch、logstash、ik下载好之后放在一个没有空格的目录内,解压即可。
2、在elasticsearch/plugins
目录下解压elasticsearch-analysis-ik
,并把目录名字改为ik
3、双击elasticsearch\bin\elasticsearch.bat
即可启动es,默认端口localhost:9200
三、启动logstash:
在logstash\bin
目录下创建logstash.conf
文件
input {
jdbc {
#jdbc连接数据库的格式
jdbc_connection_string => "jdbc:mysql:url\db_name?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai"
jdbc_user => "数据库用户"
jdbc_password => "密码"
#指定jdbc的路径
jdbc_driver_library => "mysql-connector-java-8.0.15.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
#是否分页
jdbc_paging_enabled => "true"
jdbc_page_size => "5000"
#数据库的查询语句,两种方法:1、statement_filepath指定sql路径;2、sql语句
# statement_filepath => "filename.sql"
statement => "SELECT * FROM tablename WHERE keyId >= :sql_last_value"
#多久执行一次同步。
schedule => "* * * * *"
type => "_doc"
# 是否需要记录某列的值,用于实时同步更新。
use_column_value => true
# 需要记录的字段,一般用于记录主键id,或者更新时间,用于sql查询最新。
tracking_column => "keyid"
# 是否清除记录的字段。
clean_run => false
#记录字段保存的位置。
last_run_metadata_path => "./logstash_capital_bill_last_id"
#写入es数据的key,默认会被转成小写,该字段用于控制是否小写。
#lowercase_column_names => True
jdbc_default_timezone => "Asia/Shanghai"
plugin_timezone => "local"
}
}
#ElasticSearch中默认使用UTC时间,和中国时间相差8小时,加入以下配置
filter {
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
}
ruby {
code => "event.set('@timestamp',event.get('timestamp'))"
}
mutate {
remove_field => ["timestamp"]
}
ruby {
code => "event.set('myTimeField', event.get('myTimeField').time.localtime + 8*60*60)"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
document_id => "%{keyid}"#对应主键id,默认全部小写
index => "test" #index名字
document_type => "_doc"
}
stdout {
# JSON格式输出
codec => json_lines
}
}
进入logstash\bin
目录,输入logstash -f logstash.conf
启动logstash