我正在尝试解析所获取的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
}
}
}
`