Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logstash处理文件中的多行记录_Logstash_Multiline - Fatal编程技术网

Logstash处理文件中的多行记录

Logstash处理文件中的多行记录,logstash,multiline,Logstash,Multiline,我的日志示例如下所示: 2017-01-03 03:38:18+0000字段1:123字段2:321 字段3:1133字段4:0901 2017-01-03 03:38:19+0000字段1:523字段2:521 字段3:533字段4:509 我对这个很陌生。我应该如何编写正则表达式 对于文件{}输入,您应该使用而不是多行{}过滤器,例如: input { file { path => "..." codec => multiline { negate

我的日志示例如下所示:

2017-01-03 03:38:18+0000字段1:123字段2:321 字段3:1133字段4:0901 2017-01-03 03:38:19+0000字段1:523字段2:521 字段3:533字段4:509
我对这个很陌生。我应该如何编写正则表达式

对于文件{}输入,您应该使用而不是多行{}过滤器,例如:

input {
  file {
    path => "..."
    codec => multiline {
      negate => "true"
      pattern => "^%{YEAR}"
      what => "previous"
    }
  }
}

您可以这样理解,如果行不是以年份开头,请与前一行保持一致。

您没有明确说明,但文件是由logstash在本地读取的,还是您使用的是像filebeat这样的发货人?该文件是本地文件。它与logstash位于同一个驱动器中。那么^%{YEAR}中的“^”是什么意思呢?插入符号的意思是以开头。充分利用logstash需要对正则表达式有很好的了解。