首页 > 数据库 >es 集成logstash 同步mysql数据

es 集成logstash 同步mysql数据

时间:2023-02-22 18:25:28浏览次数:43  
标签:jdbc last ## sql mysql true logstash es

安装

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz

解压

tar -zxvf logstash-7.14.0-linux-x86_64.tar.gz 

移动

 mv logstash-7.14.0 /usr/local/logstash7_14_0/

授权

chown -R es:es /usr/local/logstash7_14_0

切换es用户

su es

 在config目录下创建配置文件mysql.conf 配置如下


input {
jdbc {
# 设置 MySql/MariaDB 数据库url以及数据库名称
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&allowMultiQuerie=true&characterEncoding=utf-8&serverTimezone=UTC"
# 用户名和密码
jdbc_user => "root"
jdbc_password => "root"
# 数据库驱动mysql-connector-java-8.0.19.jar所在位置,可以是绝对路径或者相对路径
jdbc_driver_library => "/usr/local/logstash7_14_0/logstash-7.14.0/lib/mysql-connector-java-8.0.17.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
# 是否开启分页,ture为开启,我这里sql比较复杂所以就放弃使用这个,后面细讲
jdbc_paging_enabled => false
# 分页每页数量
jdbc_page_size => "50"
# 设置时区
jdbc_default_timezone =>"Asia/Shanghai"
# 执行的sql文件路径
#statement_filepath => "/usr/local/nbin/logstash-7.12.0/my/my.sql"
#使用这个可以直接写sql语句,但是复杂的语句最好是写在文件内
#statement =>
statement => "select * from test_user where create_date>:sql_last_value"
# 设置定时任务间隔 含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务
schedule => "* * * * *"
#是否需要记录某个字段值,如果为true,我们可以自定义要记录的数据库某个字段值,例如id或date字段。如果为false,记录的是上次执行的标记,默认是一个timestamp
use_column_value => true
#记录上次执行字段值路径。我们可以在sql语句中这么写:WHERE ID > :last_sql_value。其中 :sql_last_value 取得就是该文件中的值,这个last_id会以文件形式存在,上面截图有
last_run_metadata_path => "/usr/local/logstash/logstash-7.14.0/sql_last_value/sql_last_value.txt"
#如果use_column_value为真,需配置此参数. 指定增量更新的字段名。当然该字段必须是递增的,比如id或date字段。
tracking_column => "create_date"
# tracking_column 对应字段的类型,只能选择timestamp或者numeric(数字类型),默认numeric,所以可以不写这个配置
# tracking_column_type => "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 => true
}
}
##过滤、格式化数据 这段单独有讲解,这里就不细说了
##filter{
## mutate {
## add_field => {"temp_ts" => "%{actionTimeStamp}"}
## }
## date {
## match => ["temp_ts", "ISO8601"]
## target => "@timestamp"
## }
## mutate {
## remove_field => ["@version","temp_ts","actionTimeStamp"]
## }
##}
output {
elasticsearch {
# es地址 集群数组hosts => ["127.0.0.1:9200","127.0.0.1:9201"]
hosts => ["127.0.0.1:9200"]
# 同步的索引名必须要有@timestamp 不然yyyyMM不起效
# index => "ps_sign_log%{+yyyy}"
index => "mes_jinlon_dev"
# 设置_docID和数据相同
document_id => "%{id}"
#自定的模板名称
# template_name => "ps_seal_log"
#自定义的模板配置文件
# template => "/usr/local/nbin/logstash-7.12.0/my/ps_test_log_template.json"
#是否重写模板
# template_overwrite => true
}
# 日志输出形式设置
stdout {
codec => json
#codec => rubydebug
}
}
 

lib目录下加入mysql驱动

在bin目录启动logstash

./logstash -f ../config/mysql.conf

在kibana界面可以看到数据已经同步过来了

 

标签:jdbc,last,##,sql,mysql,true,logstash,es
From: https://www.cnblogs.com/jiaqirumeng/p/17145324.html

相关文章

  • ESlint的使用
    一.网址参考1.  Eslint超简单入门教程2. 在Vscode中,如何使用eslint来lint和format二.实践1.在vscode中使用eslint1.1vscode安装es......
  • [ds 记录] P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I
    首Ynoi。这题用CF765F那个方法能做但是肯定慢得飞起(\(n\sqrt{n}\)个longlong)。这个方法挺依赖逆序对性质,比如可减性,以及方便通过值域上的前缀和求贡献。算法流程:......
  • es 集成kibana
    安装kibanawgethttps://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz解压tar-zxvfkibana-7.14.0-linux-x86_64.tar.gz移动 mvkiba......
  • mysql 中实现递归树,类似oralce CONNECT BY PRIOR... START WITH
    CREATEDEFINER=`root`@`%`FUNCTION`getChildList`(rootIdVARCHAR(255))RETURNSmediumtextCHARSETutf8mb4BEGINDECLAREsTempMEDIUMTEXT;DECLA......
  • Linux忘记mysql密码,重置ysql密码
    1.修改配置文件,无需密码登录sudovim/etc/my.cnf在最底下添加一行:skip-grant-tables重启mysqlsystemctlrestartmysqld  2.登录mysql,修改密码输入mysql......
  • LinearRegression_1
    LinearRegressionpackagesimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_modelmodelreg=Linear_model.Li......
  • 带您了解TiDB & MySQL数据库中关于日期、时间的坑
    (带您了解TiDB&MySQL数据库中关于日期、时间的坑)时间的基础知识什么是时间时间是人们根据自然现象而进行的一种抽象概念。人类通过观察日月星辰、季节交替、动植物生......
  • Charles配置教程
    步骤一:首先配置证书:Help→SSL→Proxying→InstallCharlesRootCertificate,进入证书的安装界面  步骤二:端口号配置,默认8888,建议不修改 步骤三:开启SSL监听:点击P......
  • The Best Chest Binder: A Comprehensive Guide with Unicmi
    Formanypeople,chestbindersareanessentialpartoftheirdailylives.Chestbinderscompressthechestareatogiveaflatterappearance,whichcanbeesp......
  • 1 Pytest测试框架入门篇
    1pytest简介pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化pytest......