zoukankan      html  css  js  c++  java
  • windows上使用logstash-input-jdbc

    (一)安装logstash

    下载链接  选择下载你要的对应的logstash版本,这个东西解压就能使用了

    (二)安装logstash-input-jdbc

    就是用执行logstash-plugin.bat install logstash-input-jdbc,linux上其实也是大同小异

    (三)mysql数据库

    在mysql中创建一个可以用于测试的数据库

    执行以下脚本,创建一个表:

    create table testtable (PersonID int, LastName varchar(255), FirstName varchar(255), City varchar(255), Date datetime(6)); 

    可以看到:

    往表中插入数据:

    INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
    VALUES ('4005','Kallis','Jaques','Cape Town','2016-05-23 16:12:03.568810');
    INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
    VALUES ('4004','Baron','Richard','Cape Town','2016-05-23 16:12:04.370460');
    INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
    VALUES ('4003','McWell','Sharon','Cape Town','2016-05-23 16:12:06.874801'); 

    结果:

    (四)将数据导入es

    Logstash 配置

    在logstash文件夹中,我们要有一个logstash.conf文件,该文件是要配置并运行以获取必要结果的文件。

    logstash.conf如下(注意:windows下的文本编码需要为ANSI,否则运行将会出错, 另外注意是"hosts", 我这边如果写成"host"会出错,另外下面长长的一段连接后面是我加上去的,如果不加上去,运行的时候会报时间什么的错误,mysql驱动要跟你的mysql数据库版本对应起来,否则会出错):

    input {
        jdbc {
            jdbc_connection_string => "jdbc:mysql://localhost:3306/logstash_jdbc_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
            jdbc_user => "root"
            jdbc_password => "123456"
            jdbc_driver_library => "D:logstash-5.3.1mysql-connector-java-8.0.13mysql-connector-java-8.0.13.jar"
            jdbc_driver_class => "com.mysql.jdbc.Driver"
            jdbc_paging_enabled => "true"
            jdbc_page_size => "50000"
            statement_filepath => "D:logstash-5.3.1injdbc.sql"
            schedule => "* * * * *"
            type => "jdbc"
        }
    }
    
    filter {
        json {
            source => "message"
            remove_field => ["message"]
        }
    }
    
    output {
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "test-migrate"
            document_type => "data"
            document_id => "%{person_id}"
        }
        stdout {
            codec => json_lines
        }
    }

     jdbc.sql内容如下:

    然后你系统上要有elasticsearch以及安装一个elasticsearch-head方便查看数据。

    在上面的配置文件中,提到了许多参数,例如:JDBC连接器应检查哪个数据库的数据,JDBC插件的位置,MySql访问的用户名和密码以及查询语句。将上述设置应用于“logstash.conf”文件后,通过键入以下命令运行:

    logstash.bat -f logstash.conf

    即可启动监听,然后你会发现你的数据已经导入到es之中,而且insert和update的时候也会同步进去。

     我将Sharont改为SharontTest,你会发现es之中也已经同步进去了:

  • 相关阅读:
    work 2
    chapter02
    7.23作业
    第五章
    三层交换机
    基于nginx结合openssl实现https
    chapter10--进程和计划任务管理
    Linux系统管理08--服务器RAID及配置实战
    chapter07-- LVM逻辑卷
    Linux系统管理07--文件系统与LVM
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/10106899.html
Copyright © 2011-2022 走看看