使用logstash文件输入时出现意外异常-“;例外情况=&燃气轮机#&书信电报;命名错误:未定义的方法';拆分';对于零:零级>;

使用logstash文件输入时出现意外异常-“;例外情况=&燃气轮机#&书信电报;命名错误:未定义的方法';拆分';对于零:零级>;,logstash,Logstash,我在处理邮件日志文件时遇到问题 当我使用标准输入时,一切正常。但是当我使用文件输入时,我有一个异常“nil:NilClass的未定义方法'split'”: 我觉得logstash没有读取日志文件。 类型字段的值为空 我现在怎么解决这个问题 你不需要经历整个ruby的事情。只需将配置更改为以下内容: if [message] =~ "type=statistics" { grok { // stats grok here } } else if [message] =~

我在处理邮件日志文件时遇到问题

当我使用标准输入时,一切正常。但是当我使用文件输入时,我有一个异常“nil:NilClass的未定义方法'split'”:

我觉得logstash没有读取日志文件。 类型字段的值为空


我现在怎么解决这个问题

你不需要经历整个ruby的事情。只需将配置更改为以下内容:

if [message] =~ "type=statistics" {
   grok { 
       // stats grok here
   }
} else if [message] =~ "type=spam" {
   grok { 
       // spam grok here
   }
}

对不起,我在你的照片里什么都看不到。不要发布截图。图片中确实不太清楚。在fortimail日志文件中,我有两种类型的日志(垃圾邮件和统计数据)。每种类型都有其正确的grok,因此我使用ruby筛选器检查日志的类型(使用if语句):ruby{code=>“event['type']=event['message'].split('type=')[1]。split(''[0]”)}if[type]==“statistics”{grok{grokparser-statistics}}if[type]==“spam”{grokparser-spam}}请发布所有有问题的正文,并使用标记格式化代码,包括所有。
ruby { 
  code => "event['type'] = event['message'].split('type=')[1].split(' ')[0]" 
} 
if [type] == "statistics" { 
   grok { grokparser -statistics } 
}
if [type] == "spam" { 
   grok { grokparser -spam } 
}
if [message] =~ "type=statistics" {
   grok { 
       // stats grok here
   }
} else if [message] =~ "type=spam" {
   grok { 
       // spam grok here
   }
}