logstash中的自定义模式使logstash停止编译

时间:2017-05-02 10:58:28

标签: regex logstash logstash-grok logstash-configuration

我在我的日志中创建了特定日期格式的正则表达式(在其中创建了./patterns目录和文件custom_time_pattern):

日期格式:2013-11-05T12:05:46.123456 + 03:00

CUSTOMTIMESTAMP ([0-9]{4,4})\-([0-9]{2,2})\-([0-9]{2,2})([A-Za-z])(:?2[0123]|[01]?[0-9])(:?[0-5][0-9])(:?(:?[0-5]?[0-9]|60)(:?[:.,][0-9]+)?)(\+?([0-5][0-9]):?([0-9][0-9]))

然后我在我的过滤器中使用它:

filter {
    if [type] == "syslog" {
        grok {
            patterns_dir => ["./patterns"]
            remove_tag => ["_grokparsefailure"]
            match => {
                "message" => ["%{CUSTOMTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}", "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}", "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(\(etc/cron\.hourly\))(?:\[%{POSINT:syslog_pid}) %{GREEDYDATA:syslog_message}", "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\]) %{GREEDYDATA:syslog_message}"]
            }
   add_field => [ "received_at", "%{@timestamp}" ]
   add_field => [ "received_from", "%{host}" ]
        }
    }  
}

logstash停止工作(等等,它不再编译)。

问题是,添加自定义模式后,logstash会完全停止编译。通过尝试一些选项,我得到的问题在于那个部分:"%{CUSTOMTIMESTAMP:syslog_timestamp}"。但我不明白理由。

0 个答案:

没有答案