Logstash写数据到Mysql
准备工作
- JDK -1.8+
- Logstash -5.6.4(版本随意看你心情)
第一步,去官网下载Logstash安装包,并解压。
第二步,安装目录执行install,当看到successful恭喜你成功了。
logstash-plugin install logstash-output-jdbc
第三步,Mysql创建测试表
#建表语句 CREATE TABLE `student` ( `age` INT(10) NULL, `name` VARCHAR(50) NULL ) COLLATE='utf8mb4_general_ci' ENGINE=InnoDB;
第四步,配置Logstash的conf。
读取就不在演示了,不是重点,以命令行方式代替。
input { #命令行输入 stdin{} } filter{ grok { #简单的正则匹配 match => { "message" => "(?<age>\S+) (?<name>\S+)"} } } output { stdout{ codec=>rubydebug{} } jdbc { driver_class => "com.mysql.jdbc.Driver" connection_string => "jdbc:mysql://127.0.0.1:3306/test?user=root&password=" statement => [ "INSERT INTO student (name, age) VALUES(?, ?)", "name", "age" ] } }
第五步 启动
logstash -f ../config/mysql.conf

报错了!!!
仔细观察,原来是没有驱动jar包,去官网下载支持一下,mysql-connector-java
重新配置下conf
jdbc { #指定jar包路径 driver_jar_path => "E:/logstash-6.5.4/lib/mysql-connector-java-5.1.47-bin.jar" driver_class => "com.mysql.jdbc.Driver" connection_string => "jdbc:mysql://127.0.0.1:3306/test?user=root&password=" statement => [ "INSERT INTO student (name, age) VALUES(?, ?)", "name", "age" ] }

这次OK了
看下数据库

至此,Logstash整合Mysql就结束了。
当然这只是一个简单的Demo