Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件
Windows环境:
1、下载logstash
地址: https://www.elastic.co/cn/downloads/logstash
2、下载: mysql-connector-java.jar
在logstash目录下创建一个mysql目录,把驱动文件放进去。
2、修改配置文件
在安装目录下,创建新的配置文件,命名为:mysqltoes.conf
这个文件名可以换成其他的,启动时脚本命令改成对应的就可以了。
在文件中加入以下内容:
input { # 多张表的同步只需要设置多个jdbc的模块就行了 jdbc { # mysql 数据库链接,shop为数据库名 jdbc_connection_string => "jdbc:mysql://数据库IP地址:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC" # 用户名和密码 jdbc_user => "root" jdbc_password => "" # 驱动 jdbc_driver_library => "E:/DevelopEnvironment/Logstash/logstash-7.2.0/mysql/mysql-connector-java-8.0.16.jar" # 驱动类名 jdbc_driver_class => "com.mysql.jdbc.Driver" #是否分页 jdbc_paging_enabled => "true" jdbc_page_size => "50000" #直接执行sql语句 statement =>"select * from employee" # 执行的sql 文件路径+名称 # statement_filepath => "/hw/elasticsearch/logstash-6.2.4/bin/test.sql" #设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新 schedule => "* * * * *" # 索引类型 #type => "jdbc" } } output { elasticsearch { #es的ip和端口 hosts => ["http://ip:9200"] #ES索引名称(自己定义的) index => "blog" #文档类型 document_type => "log" #设置数据的id为数据库中的字段 document_id => "%{id}" } stdout { codec => json_lines } }
需要配置好:
数据库地址、数据库账号密码、数据库驱动路径、查询语句、定时扫描时间
es地址、索引、类型、主键字段
配置好后,打开cmd窗口,敲入启动命令:binlogstash.bat -f configmysqltoes.conf 如下图所示:
如果找不到文件,请检查命令路径,以及文件名称。
运行成功: