使用弹性搜索解析日志

时间:2019-04-22 05:29:53

标签: elasticsearch logstash logstash-grok

我正在尝试解析所获取的Cisco ASA日志,但我希望对特定日志进行解析,保存并在Kibana上显示。我已经写了一个代码,但是它仍然显示很多我不想要的日志。我不确定为什么它不能正确解析代码,我感觉到它是我要匹配的变量。

我需要它仅向我显示标记为ASA严重性1-4的任何日志并记录ASA-6-106100

`

filter {
    if [type] == "syslog" {
        if [%{GREEDYDATA:syslog_message}] =~ \b(\w*ASA-[1-4]\w*)\b {
            grok {
                match => { "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}" ]
            }
            date {
                match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
            }
        }
        else if [%{GREEDYDATA:syslog_message}] =~ \b(\w*106100\w*)\b {
            grok {
                match => { "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}" ]
            }
            date {
                match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
            }
        }
        else {
            break_on_match
        }
    }
}

`

0 个答案:

没有答案