Logstash多行输入适用于本地,但不适用于EC2实例

时间:2019-05-26 16:45:07

标签: logstash logstash-grok logstash-configuration

我尝试使用json,json_lines甚至多行输入插件来解析它,但无济于事。多行在我的本地计算机上运行良好,但在我的s3和ec2实例上似乎不起作用。

我将如何编写grok过滤器来对此进行解析?

这是我的JSON文件的样子

{  
       "sourceId":"94:54:93:3B:81:6F1",
       "machineId":"c1VR21A0GoCBgU6EMJ78d3CL",
       "columnsCSV":"timestamp,state,0001,0002,0003,0004",
       "tenantId":"iugcp",
       "valuesCSV":"1557920277890,1,98.66,0.07,0.1,0.17 ",
       "timestamp":"2019-05-15T11:37:57.890Z"
}

这是我的配置-

input {
file{
         codec => multiline
        {
            pattern => '^\{'
            negate => true
            what => previous                
        }
        path => "/home/*myusername*/Desktop/data/*.json"
        start_position => "beginning"
        sincedb_path => "/dev/null"
}
}
filter {

 mutate
    {
        replace => [ "message", "%{message}}" ]
        gsub => [ 'message','\n','']
    }
    if [message] =~ /^{.*}$/ 
    {
        json { source => message }
    }

}

//输出标记正确,此处未包含

我得到的结果只是“消息”字段中存在的json文件。 我想要的是每个json标签,文档中应该有一个单独的字段。

0 个答案:

没有答案