jdbc插件用于解决Logstash采集数据库数据问题,基本上所有的关系数据库都支持jdbc接口,例如: MYSQL、Oracle等。
jdbc插件通过定时任务,定时的执行SQL语句,从数据库中读取数据,定时任务语法类似linux的crontab的写法。
例子
input {
# 配置jdbc数据源
jdbc {
# 指定jdbc驱动路径
jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
# jdbc驱动类
jdbc_driver_class => "com.mysql.jdbc.Driver"
# 数据库连接配置
jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
# 数据库账号
jdbc_user => "mysql"
# 数据库密码
jdbc_password => "123456"
# SQL绑定的参数
parameters => { "favorite_artist" => "Beethoven" }
# 定时任务配置
schedule => "* * * * *"
# SQL语句
statement => "SELECT * from songs where artist = :favorite_artist"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "tizi365"
}
}
详细的例子可以参考:同步MYSQL数据到Elasticsearch
jdbc Input插件参数
参数名 | 类型 | 默认值 | 说明 |
jdbc_driver_library | string | 指定jdbc驱动路径, 不同数据库jdbc驱动不一样 | |
jdbc_driver_class | string | jdbc驱动类,新版的MYSQL驱动类为:com.mysql.cj.jdbc.Driver | |
jdbc_connection_string | string | 数据库连接配置, 格式: jdbc:数据库类型://地址:端口/数据库,例子:jdbc:mysql://localhost:3306/mydb | |
jdbc_user | string | 数据库账号 | |
jdbc_password | string | 数据库密码 | |
schedule | string | 定时任务配置,语法可以参考linux的cron | |
statement | string | 需要执行的SQL语句 | |
parameters | hash | SQL绑定参数,例子:{ "target_id" => "321" } | |
use_column_value | boolean | false | 当设置为true时,使用tracking_column定义的列作为:sql_last_value的值。当设置为false时,:sql_last_value等于上次执行查询的时间。 |
tracking_column | string | 定义使用SQL查询结果中的哪一个字段值作为sql_last_value的值 | |
jdbc_paging_enabled | boolean | false | 激活分页处理 |
jdbc_page_size | number | 100000 | 分页大小 |