如何设置Logstash JDBC输出以写入JSON字段?

时间:2018-09-05 20:49:24

标签: logstash logstash-jdbc

我想使用类似这样的架构将数据从LogStash流传输到MS SQL Server工作表:

CREATE TABLE [dbo].[WorkingTable] (
    [MessageId] bigint,       //Auto Incrementing primary key.
    [Data]      nvarchar(MAX) //JSON data.
)

我希望[Data]字段包含LogStash的全部消息,序列化为JSON字符串,并且不希望一半使用sprintf对其进行显式格式化。

如何使用JDBC输出插件或其他一些插件来完成此操作?

1 个答案:

答案 0 :(得分:0)

output {
jdbc {
    driver_jar_path => 'jar file path'
    connection_string => "jdbc:sqlserver://sqlserver:port;databaseName=databaseName;user=user;password=pass"
    enable_event_as_json_keyword => true
    statement => ["INSERT INTO [dbo].[WorkingTable] (MessageId, Data) VALUES(?, ?)", "%{[Data][MessageId]}", "@event"]
}}

您应将enable_event_as_json_keyword设置为true,然后在语句中使用魔术@event