赞
踩
需要配置这个文件
input { stdin { } jdbc { # mysql 数据库链接,center为数据库名,jdbc版本比较大的要加上?后面那串字符 jdbc_connection_string => "jdbc:mysql://192.168.161.131:3307/mz-master" # 用户名和密码 jdbc_user => "root" jdbc_password => "123456" # 驱动 需要手动上传jar jdbc_driver_library => "/opt/mysql-connector-java-8.0.29.jar" # 驱动类名 jdbc_driver_class => "com.mysql.cj.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "1000" # 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值; use_column_value => true # 需要记录的字段,用于增量同步,需是数据库字段 tracking_column => user_id # record_last_run上次数据存放位置; record_last_run => true #上一个sql_last_value值的存放文件路径, 必须要在文件中指定字段的初始值 last_run_metadata_path => "/opt/last_id.txt" # 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false; clean_run => false statement=> "select * from sys_users where user_id > :sql_last_value" # 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新 schedule => "* * * * *" } } output { elasticsearch { # ES的IP地址及端口 hosts => ["192.168.161.128:9200"] # 索引名称,elasticsearch叫做索引 和实体类中的索引要一致 index => "users_index" # 自增ID id必须是待查询的数据表的序列字段 没有可以不写 document_id => "%{user_id}" } stdout { # JSON格式输出 codec => json_lines } }
然后执行 /opt/logstash-7.9.3/bin/logstash -f /opt/logstash-7.9.3/config/jdbc.conf
优点 可以实时监控mysql来更新更新es数据
缺点 需要定期清理日志文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。