修复graylog2 Web界面的严重性

我正在使用logstash从一组web应用程序中收集日志,并将它们发送到graylog2进行集中查看。

我有以下用于标记化的filter:

grok { type => "webapps" pattern => "^%{TIME:timestamp} \[%{NOTSPACE:thread}\]%{SPACE}%{WORD:loglevel}%{SPACE}%{JAVACLASS:class} - %{GREEDYDATA:short_message}" drop => false debug => "true" add_tag => [ "%{loglevel}" ] } 

Loglevel将沿着TRACE,DEBUG,INFO,NOTICE,ERROR,FATAL。

最初,所有内容都显示为“警报”(在ruby / graylog-server中数值为5,并在源中标记为“未知”)。

然后我添加了一系列mutatefilter,比如这个:

  mutate { type => "webapps" tags => "INFO" add_tag => [ "ll_%{@level}", "mutated" ] replace => [ "@level", "6" ] # informational } 

这让我更接近web界面中显示的适当的日志级别/严重性,但是所有“INFO”消息都显示为“debugging消息”。

我写了一个脚本来查看弹性search数据,并根据它应该设置的级别字段。

  • debugging:7
  • 信息:6
  • 警告:4
  • 错误:3
  • 关键:2

没有使用0,1和5级,因为这些来源表示这些是保留的。

但是这个脚本在资源方面是很昂贵的,而且当它试图更新的数据集以每秒几百或几千条的速度增长时,我认为它不会工作太好。

另一件我注意到的是,当我在标签中使用“@source”之类的东西时,正确的值就显示出来了。 当我做“@level”时,我把它作为一个文字插入,这表明它不是一个已经被指定的预定义字段。

我已经看了一些资料,但并不详尽,所以有可能我错过了。

问题是,我需要改变我的mutatefilter,使“信息”显示为“信息”在graylog2接口?

没有任何我尝试过,邮件列表也无法帮助。

我所做的就是停止使用logstash,并添加一个logback-gelf jar并添加到我的logbackconfiguration中。

从那时起它就像一个魅力。