# logstash配置mysql数据导入


# 一、复制logstash-sample.conf 数据


cd /data0/logstash/logstash-7.1.0/config

cp logstash-sample.conf  logstash-mysql-es.conf

# 二、编辑配置 这里以主表为例

input{
jdbc {
jdbc_driver_library => "/data0/logstash/logstash-7.1.0/lib/mysql-connector-java-8.0.18.jar""
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_connection_string => "测试库地址"
jdbc_user => "测试库账号"
jdbc_password => "测试库密码"
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
jdbc_default_timezone =>"Asia/Shanghai"
schedule => "* * * * *"
statement => "select * from co_order_main where LAST_UPDATE_TIME > :sql_last_value"
use_column_value => true
tracking_column => "LAST_UPDATE_TIME"
last_run_metadata_path => "./logstash_jdbc_last_run"
}
}
output{
elasticsearch {
hosts => "127.0.0.1:9200"
index => "coOrderMain"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}

TIP

这里注意: /data0/logstash/logstash-7.1.0/lib/mysql-connector-java-8.0.18.jar"
这个包要自己准备。我们数据库用的是8.0的 input中的 schedule参数用于配置数据刷新频率,schedule => " *"表示每分钟刷新一次,这也是MySQL数据同步的最小频率。Logstash支持丰富的参数配置, 详情请参考Elasitc官网文档 (opens new window)

# 三、启动

把样例文件复制一份成为正式文件,然后修改配置文件。

启动logstash:进入bin目录:

./bin/logstash -f /data0/logstash/logstash-7.1.0/configs/logstash-mysql-es.conf

如果需要长期挂起运行

nohup ./logstash -f ./configs &

nohup的意思是:当终端断开(hang up)后,服务仍然在后台执行,需要注意的是,我们需要在nohup命令执行后,按任意键回到shell提示符后,再退出终端。

对于上面的logstash的nohup脚本,我们使用的是默认输出,即输出到当前目录的nohup.out文件中,如果当前目录的nohup.out文件不可写,那么回输出到$HOME/nohup.out文件中。

然而,我们可以更改command命令,让它输出到我们指定的文件中,如下:

nohup ./logstash -f ./configs > myout.file 2>&1 &
Last Updated: 1/3/2023, 5:03:49 PM