Logstash将数据导入至MYSQL

Logstash 版本:6.2.4

Logstash 经常做的事情,是将日志文件进行解析,并且导入至 ElasticSearch

但是目前碰到的问题是,怎么将数据导入至 DB 中,比如 MYSQL

这就需要下面这个神器了!

JDBC output for Logstash

下载地址:https://github.com/theangryan...

首先,安装 Logstash 6.2.4,并确保 JDK 的版本是 1.8

然后进入 Logstash 目录,安装插件 logstash-output-jdbc,执行以下命令:

bin/logstash-plugin install logstash-output-jdbc

JDBC 插件依赖 mysql-connector-java-5.1.46 包,So,我们去官网下载吧

提供了两种格式的包文件

1、mysql-connector-java-5.1.46.tar.gz
2、mysql-connector-java-5.1.46.zip

这里随便下一个,然后解压。

至于解压后的文件放哪儿,这里有两种方式

1、在 Logstash 目录下,创建目录:/vendor/jar/jdbc,将 mysql-connector-java-5.1.46-bin.jar 文件放在里面,默认就能找到 mysql-connector-java-5.1.46-bin.jar,不需要配置参数 driver_jar_path。

2、放在任意目录,但是要配置参数 driver_jar_path ,确保能找到 mysql-connector-java-5.1.46-bin.jar 文件

OK,我们来测试一下

首先,创建配置文件:Logstash.conf

input {
  stdin{}
}

filter{
    json{
        source => "message"
    }
}

output {
  stdout{
        codec=>rubydebug{}
  }
  jdbc {
    driver_jar_path => "/xxxxxxx/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar"
    driver_class => "com.mysql.jdbc.Driver"
    connection_string => "jdbc:mysql://数据库IP:数据库端口/数据库名称?user=数据库的用户名&password=数据库的密码"
    statement => [ "INSERT INTO test (name, age) VALUES(?, ?)", "test_name", "test_age" ]
  }
}

注意JDBC 模块中还可以配置一些其他参数,如:connection_timeout,可以参考 Github 上的文档。

然后,我们来运行一下 logstash

./bin/logstash -f logstash.conf

由于 input 输入是标准输入,我这里在命令行里输入:

{"test_name":"feblilac","test_age":"18"}

Logstash 输出:

{
    "@timestamp" => 2018-05-14T08:14:44.069Z,
      "user_age" => "18",
          "host" => "dev01v.mg.corp.qihoo.net",
      "@version" => "1",
       "message" => "{\"test_name\":\"feblilac\",\"test_age\":\"18\"}",
     "user_name" => "feblilac"
}

让我们看看数据库吧

clipboard.png

瞧,数据进来了!

后记:至于其他 DB,这里没有进行测试,大家可以参考 logstash-output-jdbc/examples/ 目录下的例子

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是使用LogstashMySQL导入数据到Elasticsearch的步骤: 1. 安装Logstash: ```shell sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo yum install logstash ``` 2. 安装Logstash插件: ```shell cd /usr/share/logstash/bin/ sudo ./logstash-plugin install logstash-input-jdbc sudo ./logstash-plugin install logstash-output-elasticsearch ``` 3. 将MySQL的Java连接器复制到Logstash的目录: ```shell scp mysql-connector-java-8.0.13.tar.gz python@10.211.55.7:~/ tar -zxvf mysql-connector-java-8.0.13.tar.gz ``` 4. 创建Logstash配置文件,例如`mysql_to_elasticsearch.conf`,并将以下内容添加到文件中: ```shell input { jdbc { jdbc_driver_library => "/path/to/mysql-connector-java-8.0.13.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://localhost:3306/database_name" jdbc_user => "username" jdbc_password => "password" statement => "SELECT * FROM table_name" } } output { elasticsearch { hosts => ["localhost:9200"] index => "index_name" document_type => "document_type" } } ``` 请注意,你需要将`/path/to/mysql-connector-java-8.0.13.jar`替换为实际的MySQL连接器的路径,`localhost:3306`替换为实际的MySQL主机和端口,`database_name`替换为实际的数据库名称,`username`和`password`替换为实际的数据库用户名和密码,`table_name`替换为实际的表名,`index_name`替换为要创建的Elasticsearch索引名称,`document_type`替换为要创建的文档类型。 5. 启动Logstash并指定配置文件: ```shell sudo ./logstash -f mysql_to_elasticsearch.conf ``` Logstash将会从MySQL中查询数据,并将其导入到Elasticsearch中。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值