Logstash将数据导⼊⾄MYSQL
Logstash 版本:6.2.4
Logstash 经常做的事情,是将⽇志⽂件进⾏解析,并且导⼊⾄ ElasticSearch 中
但是⽬前碰到的问题是,怎么将数据导⼊⾄ DB 中,⽐如 MYSQL。
这就需要下⾯这个神器了!
JDBC output for Logstash
⾸先,安装 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.
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,不
2、放在任意⽬录,但是要配置参数 driver_jar_path ,确保能到 mysql-connector-java-5.1.46-bin.jar ⽂件
OK,我们来测试⼀下
⾸先,创建配置⽂件:f
input {
stdin{}
}
filter{
json{
source => "message"
}
}
output {mysql下载jar包
stdout{
codec=>rubydebug{}
}
jdbc {
driver_jar_path => "/xxxxxxx/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar"
driver_class => "sql.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
由于 input 输⼊是标准输⼊,我这⾥在命令⾏⾥输⼊:
{"test_name":"feblilac","test_age":"18"}
Logstash 输出:
{
"@timestamp" => 2018-05-14T08:14:44.069Z,
"user_age" => "18",
"host" => "p.qihoo",
"@version" => "1",
"message" => "{\"test_name\":\"feblilac\",\"test_age\":\"18\"}",
"user_name" => "feblilac"
}
让我们看看数据库吧:
瞧,数据进来了!
后记:⾄于其他 DB,这⾥没有进⾏测试,⼤家可以参考 logstash-output-jdbc/examples/ ⽬录下的例⼦

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。