logstash的logstash-output-jdbc插件安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/goodstudy168/article/details/81364480

突然来的一个需求,将日志文件中json串的内容写入到数据库中,作为一个偷懒coder,第一个时间想到就是偷懒的做法:将logstash扫描的结果直接输入到mysql库表中。

关于logstash的安装就不再详述,后面如果写安装的介绍时再回头补充链接,我安装的logstash版本是5.6.6。

从google上查了下logstash关于mysql的output插件:https://github.com/theangryangel/logstash-output-jdbc。看了下说明

1、从官网上的说明,我们先要安装插件。进入logstash目录下执行./bin/logstash-plugin install logstash-output-jdbc,如果因网络的原因你将master下载下来配置也是可以的。

2、从https://mvnrepository.com/artifact/mysql/mysql-connector-java下载一个相对较新的版本,我这里下载的是8.0.11。在logstash的vendor下建立jar/jdbc目录,并将下载的mysql-connector-java-8.0.11.jar包上传到这个目录下。

3、logstash的配置,具体如下:

input {
    file {
        path => "/home/linxiaojie1/logstash-5.6.6/test.log"
        start_position => "end"
        sincedb_path => "/home/linxiaojie1/logstash-5.6.6/sincedb-access"
    }
}

filter {
    grok {
        match => {
            "message" => ["result:%{GREEDYDATA:matched_result}"]
        }
    }

    json {
        source => "matched_result"
    }

    mutate {
        "remove_field" => ["@timestamp", "logsource", "pid", "program", "@version", "host", "path", "message", "time", "matched_result"]
    }
}
output {
    jdbc{
        driver_jar_path => "/home/linxiaojie1/logstash-5.6.6/mysql-connector-java-8.0.11.jar"
        driver_class => "com.mysql.jdbc.Driver"
        connection_string => "jdbc:mysql://183.36.121.66:8066/douyin?autoReconnect=true&user=ysec_craw@crawler&password=u5TgQIaGkU"
        statement => ["insert into tb_videos(md5, Id, view, timestamp) values(?,?,?,?)","[md5]", "[Id]", "[view]", "[timestamp]"]
    }
    stdout { codec => rubydebug }
}

上述插入数据库的字段是json串中的key.

一切搞定,好来运行下logstash,logstash -f logstash.conf。

查下数据库确认下是否插入成功了:

mysql> select count(1) from tab_test;
+----------+
| count(1) |
+----------+
|       81 |
+----------+
1 row in set (0.05 sec)

mysql> 

关于logstash-output-jdbc插件已经成功安装并且验证了。

展开阅读全文

没有更多推荐了,返回首页