LogStash 同步 MySQL 数据到控制台

时间 2020/8/1 0:19:58 加载中...

LogStash 版本: logstash-7.6.2

在上一个示例中,我们演示了从标准输入到标准输出和到 ES 的过程。

此次我们将 MySQL 中的数据同步到标准输出,也就是输出到控制台。

插件 logstash-input-jdbc

LogStash 要访问 MySQL 数据库需要安装 jdbc 插件。
由于我们使用的 LogStash 的版本为 7.6.2 因此我们不用安装 logstash-input-jdbc 插件。
旧版本的话可能需要安装。安装命令如下:

.\bin\logstash-plugin install logstash-input-jdbc

创建配置文件

在 LogStash 目录下创建一个名为 my 的新目录(名称随意),新目录来存放配置文件。

在目录下创建文件 logstash-mysql-simple-short.conf
内容如下:

  1. input {
  2. jdbc {
  3. jdbc_driver_library => "./my/mysql-connector-java-8.0.19.jar"
  4. jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
  5. jdbc_connection_string => "jdbc:mysql://192.168.0.2:3306/template?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
  6. jdbc_user => "root"
  7. jdbc_password => "123456"
  8. schedule => "* * * * *"
  9. statement => "select * from user"
  10. }
  11. }
  12. output{
  13. stdout { codec => rubydebug }
  14. }

对比一下之前的配置文件内容:

  1. input { stdin { } }
  2. output {
  3. elasticsearch { hosts => ["localhost:9200"] }
  4. stdout { codec => rubydebug }
  5. }

新的配置文件,input 即输入不再是 stdin,而是 jdbc。
而后 jdbc_driver_library、jdbc_driver_class、jdbc_connection_string、jdbc_user、jdbc_password 都是对连接数据库进行的配置。
schedule 是类似 Corn 表达式的一种写法。这里的 * 表示每分钟同步一次数据。
statement 是执行的语句,也就是我们把 user 表里面的记录同步了过来。

下载 Java 驱动

上面的配置文件中指定了 Java 驱动的 Jar 包,因此我们需要自己下载。

驱动下载地址:
https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.19/mysql-connector-java-8.0.19.jar

下载页面:
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.19

下载好的 jar 包也放在 my 目录下即可。

执行

在 LogStash 目录下运行命令
./bin/logstash -f ./my/logstash-mysql-simple-short.conf

运行之后,就可以在控制台看到输出的 mysql 记录了。

重要
一定要在 LogStash 目录下执行。因为 jdbc_driver_library 的路径配置是相对路径。

扫码分享
版权说明
作者:SQBER
文章来源:http://www.sqber.com/articles/logstash-mysql-to-stdout.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。