话不多说开始操作,先把步骤分一下
1:下载LogStash地址:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
2:因为我ElasticSearch用的是7.8.0版本,所以Logstash版本也要相呼应
3:下载安装完之后,在bin目录下创建一个my_logstash.conf文件,附上文件配置
input {
stdin{
}
jdbc {
# 设置 MySql/MariaDB 数据库url以及数据库名称
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/scrm_date?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
# 用户名和密码
jdbc_user => "root"
jdbc_password => ""
# 数据库驱动mysql-connector-java-8.0.19.jar所在位置,可以是绝对路径或者相对路径,下载地址:https://download.csdn.net/download/qq_30667039/86490851
jdbc_driver_library => "E:/mysql-connector-java-8.0.27/mysql-connector-java-8.0.27.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
# 是否开启分页,ture为开启
jdbc_paging_enabled => false
# 分页每页数量
jdbc_page_size => "50"
# 设置时区
jdbc_default_timezone =>"Asia/Shanghai"
# 执行的sql文件路径
statement_filepath => "E:/logstash-7.8.0/bin/scrm.sql"
#使用这个可以直接写sql语句,但是复杂的语句最好是写在文件内
#statement =>""
# 设置定时任务间隔 含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务
schedule => "*/5 * * * * *"
#是否需要记录某个字段值,如果为true,我们可以自定义要记录的数据库某个字段值,例如id或date字段。如果为false,记录的是上次执行的标记,默认是一个timestamp
use_column_value => true
#记录上次执行字段值路径。我们可以在sql语句中这么写:WHERE ID > :last_sql_value。其中 :sql_last_value 取得就是该文件中的值,这个last_time会以文件形式存在
last_run_metadata_path => "E:\logstash-7.8.0\bin\last_time"
#如果use_column_value为真,需配置此参数. 指定增量更新的字段名。当然该字段必须是递增的,比如id或date字段。
tracking_column => "updateTime"
# tracking_column 对应字段的类型,只能选择timestamp或者numeric(数字类型),默认numeric。
tracking_column_type => "timestamp"
#如果为true,每次会记录所更新的字段的值,并保存到 last_run_metadata_path 指定的文件中
record_last_run => true
# 是否清除 last_run_metadata_path 的记录,true则每次都从头开始查询所有的数据库记录
clean_run => false
# 是否将字段名称转小写。默认是true。这里注意Elasticsearch是区分大小写的
lowercase_column_names => false
}
}
output {
elasticsearch {
# es地址 集群数组hosts => ["127.0.0.1:9200"]
hosts => ["127.0.0.1:9200"]
# 同步的索引名必须要有@timestamp 不然yyyyMM不起效
index => "user"
# 设置_docID和数据相同
document_id => "%{id}"
#自定的模板名称
#template_name => "ps_seal_log"
#自定义的模板配置文件
#template => "/usr/local/logstash/logstash-7.12.1/mysqlnote/ps_test_log_template.json"
#是否重写模板
#template_overwrite => true
}
stdout{
}
}
4:conf文件配置好之后,启动命令:logstash -f xxx.conf
我们在数据库中增加一条数据你会发现在logStash日志里会打印出来
查询Es接口。我们可以看到数据已经同步过来了。
别看了没了。再见