Logstash - grok配置过滤器

时间:2015-03-10 11:42:54

标签: logstash-grok

我正在尝试使用grok过滤“last”命令的输出。

grok模式仅匹配第一个变量“user”。 它不匹配任何模式。

你能否告诉我这里缺少的东西。

日志:

sam     pts/0        172.19.16.3     Tue Mar  3 11:32 - 11:39  (00:07)

使用的Grok模式:

match => [ "message", "%{USER:user} %{TTY:terminal}  %{IPORHOST:client} %{TIMESTAMP_ISO8601:date} %{NUMBER:duration}" ]

1 个答案:

答案 0 :(得分:1)

您的模式有几个问题:

  1. 列表项
  2. 你必须照顾空白

    如果您有以下数据:

    username    foobar
    

    模式:

    %{USER:user} %{WORD}
    

    将不匹配,因为您在两个单词之间有几个空格。如果你这样做:

    %{USER:user} +%{WORD}

    模式将匹配,因为您告诉grok在两个单词之间寻找多个空格。 尝试一次只用http://grokdebug.herokuapp.com/检查您的模式。首先尝试为各个部分设计GROK模式,如果它们有效,请尝试将它们逐个放在一起。

    1. 模式tty与pts / 0不匹配,但需要/ dev / pts / 0
    2. 看一下模式定义。它们可以在以下位置找到: https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

      特别是TTY模式在: https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns