使用JSON模式验证Logstash输入

时间:2016-06-01 11:48:32

标签: json validation schema logstash

我使用HTTP插件将JSON数据推送到logstash。我正在使用JSON插件解析它,一切正常。我还为这些数据创建了一个JSON模式。

问题是:是否有可能直接在Logstash中使用JSON模式验证数据?我想确保所有类型都匹配我的架构,在某些情况下,某些字段中的值与JSON架构中的“枚举”数组之一匹配。

1 个答案:

答案 0 :(得分:0)

logstash 目前不支持,您需要安装自定义插件。

在寻找解决方案时,我发现这个插件解决了我的问题 https://github.com/ebuildy/logstash-filter-schema_validation

这是对整个事件的验证,而不是您在此处的 rb 代码中看到的特定字段 => https://github.com/ebuildy/logstash-filter-schema_validation/blob/master/lib/logstash/filters/schema_validation.rb#L47

使用以下命令安装插件后:

logstash-plugin install logstash-filter-schema_validation

您可以将其添加到 logstash 过滤器:

 schema_validation
            {
                schema => "/path/to/schemas/logschemav2.json"
                report_field => "_json_validation_errors"
                strict => false
            }

然后您可以在 logstash 逻辑中使用 _json_validation_errors 字段。

报告字段将包含以下消息:

The property '#/log' did not contain a required property of 'timestamp' in schema file:///path/to/schemas/logschemav2.json#,