mysql long转string_用Java编写Logstash输出到MySQL的插件

导读:基于上篇文章 Logstash Java Output 插件构建与使用 ,我们可以实现将官方提供的 logstash-output-java_output_example 项目在本地构建、测试和打包使用。本文将基于此 Demo 之上讨论如实现一个输出到 MySQL 的 output插件,本例子只是一个简单的例子,并未达到生产可用。目的是想通过该例子让各位熟悉如何用 Java 编写 Logstash 插件及分享我编写和设计插件的思路供各位参考。

// logstash-outup-java-mysql-plugin 插件 github 地址https://github.com/senlizishi/logstash-outup-java-mysql-plugin
d562640d45da459c9ba833fcfdff997e.png

项目结构及核心文件

1、主要项目结构可划分为三块

  • 核心处理逻辑类
  • 测试类
  • Gradle 依赖管理
310b775e24550cacafe92545bfd9bc3a.png

2、核心文件 JavaOutputExample.class

// 官方文档 How to write a Java output pluginhttps://www.elastic.co/guide/en/logstash/7.x/java-output-plugin.html#_package_and_deploy_4

在官方文档中已详细描述 JavaOutputExample 这个类每一部分的作用和含义,大致为以下几部分

  • 构造方法:插件必须提供一个可收 id,、Configuration、Context 的构造方法,初始化参数
  • PluginConfigSpec:允许开发人员通过设置名称、数据类型、弃用状态、必需状态和默认值来指定该插件支持的setting设置。
  • Output 方法:编写核心输出逻辑,们将在该方法中具体编写输出到 MySQL 的逻辑
  • Stop and await Stop

编写和设计的思路

我在编写该插件时参考了 Github 上一个采用 Ruby 语言编写的 logstash-output-jdbc 项目,该项目这个插件允许您使用 JDBC 适配器输出到 SQL 数据库(支持多种数据库)。关于如何使用该插件可以参考Logstash实时读取Nginx日志并存储到MySQL思路 。

// logstash-output-jdbc GitHubhttps://github.com/theangryangel/logstash-output-jdbc

在该项目中其使用了 Hikari 作为数据源,并引入各种数据库对应的 JDBC 驱动。通过安装该插件后我们在 logstash.conf 配置以下代码即可实现输入到 mysql 数据库中。

output {   jdbc {      driver_jar_path => "/usr/local/logstash/jdbc/mysql-connector-java-8.0.19.jar"      driver_class => "com.mysql.jdbc.Driver"      #数据库连接      connection_string => "jdbc:mysql://xxxxxxxxx.ads.aliyuncs.com:3306/数据库名?user=xxxxx&password=xxxxxx"      #insert语句      statement => [ "insert into v2_ods_media_show_log (`idfa`) value(?)",             "idfa"]   }}

参考了该项目,我尝试使用 Java 语言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值