logstash 中的错误-plain.log 无法创建管道

Error in logstash-plain.log cannot create pipeline

需要一点帮助来弄清楚管道未启动的原因。

[ERROR][logstash.agent] Cannot create pipeline {:reason=>"Expected one of #, => at line 39, column 52 (byte 563) after filter {\n grok {\n patterns_dir =>  \"/etc/logstash/patterns.d\" \n match => {\n \"%{SYSLOGBASE} %{POSTFIXSMTPDCONNECTS}\""}

这是我的 grok 文件:

input {
        file {
        type => "postfix"
        path => "/var/log/maillog"
    }
}

filter {
    grok {
        patterns_dir =>  ["/etc/logstash/patterns.d"]
        match => {
            "%{SYSLOGBASE} %{POSTFIXSMTPDCONNECTS}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDACTIONS}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDTIMEOUTS}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDLOGIN}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDCLIENT}",
            "%{SYSLOGBASE} %{POSTFIXSMTPRELAY}",
            "%{SYSLOGBASE} %{POSTFIXSMTPCONNECT}",
            "%{SYSLOGBASE} %{POSTFIXSMTP4XX}",
            "%{SYSLOGBASE} %{POSTFIXSMTP5XX}",
            "%{SYSLOGBASE} %{POSTFIXSMTPREFUSAL}",
            "%{SYSLOGBASE} %{POSTFIXSMTPLOSTCONNECTION}",
            "%{SYSLOGBASE} %{POSTFIXSMTPTIMEOUT}",
            "%{SYSLOGBASE} %{POSTFIXBOUNCE}",
            "%{SYSLOGBASE} %{POSTFIXQMGR}",
            "%{SYSLOGBASE} %{POSTFIXCLEANUP}"
        }
        named_captures_only => true
    }
}

我正在使用 logstash v5.6.5。我读到 conf.d 文件夹中的所有文件在读取时合并在一起。是否有我需要查找的特定文件才能查看代码的特定第 39 行。

您编写 grok 过滤器的方式有误。由于有多种模式,您应该使用数组。而且您忘记指出要在哪个字段上进行匹配。有关详细信息,请参阅 the documentation

编写 grok 过滤器的正确方法是(假设您想在 message 字段上应用 grok 过滤器):

grok {
    patterns_dir =>  ["/etc/logstash/patterns.d"]
    match => { 
        "message" => [
            "%{SYSLOGBASE} %{POSTFIXSMTPDCONNECTS}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDACTIONS}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDTIMEOUTS}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDLOGIN}",
            "%{SYSLOGBASE} %{POSTFIXSMTPDCLIENT}",
            "%{SYSLOGBASE} %{POSTFIXSMTPRELAY}",
            "%{SYSLOGBASE} %{POSTFIXSMTPCONNECT}",
            "%{SYSLOGBASE} %{POSTFIXSMTP4XX}",
            "%{SYSLOGBASE} %{POSTFIXSMTP5XX}",
            "%{SYSLOGBASE} %{POSTFIXSMTPREFUSAL}",
            "%{SYSLOGBASE} %{POSTFIXSMTPLOSTCONNECTION}",
            "%{SYSLOGBASE} %{POSTFIXSMTPTIMEOUT}",
            "%{SYSLOGBASE} %{POSTFIXBOUNCE}",
            "%{SYSLOGBASE} %{POSTFIXQMGR}",
            "%{SYSLOGBASE} %{POSTFIXCLEANUP}"
        ]
    }
    named_captures_only => true
}